String in Speicher ablegen

Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Neue Antwort erstellen

Der Eisvogel

Betreff: String in Speicher ablegen

BeitragSo, Aug 01, 2010 23:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo
Wie kann ich einen String in einem mit zuvor mit MemAlloc erstellten Speicher ablegen?
Also ich habe den String "Hallo Welt". Jetzt will ich, dass der an 8. Stelle in meinem Speicher abgelegt wird. Wie mache ich das?

Also ich würde das jetzt so machen:
BlitzMax: [AUSKLAPPEN]
mem:Byte Ptr = MemAlloc(128)
For Local i:Int = 0 To Len(str) - 1
mem[i+8] = Asc(Mid(str, i, 1))
Next


Gibt es da nicht iene elegantere Methode? Also ich weis dass man mit str.ToCString einen C-String bekommt. Aber wie bekomme ich den jetzt in meinen Speicher?

MfG
Der Eisvogel
Ungarische Notation kann nützlich sein.
BlitzMax ; Blitz3D
Win 7 Pro 64 Bit ; Intel Core i7-860 ; 8 GB Ram ; ATI HD 5750 1 GB
Projekte: Window-Crasher
Ich liebe es mit der WinAPI zu spielen.

mpmxyz

BeitragSo, Aug 01, 2010 23:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Mit MemCopy kann man Speicherbereiche kopieren:
BlitzMax: [AUSKLAPPEN]
Local mem:Byte Ptr=MemAlloc(100)
Local cString:Byte Ptr=einString.toCString()
MemCopy mem+8,cString,einString.length+1

mfG
mpmxyz
Moin Moin!
Projekte: DBPC CodeCruncher Mandelbrot-Renderer

Der Eisvogel

BeitragSo, Aug 01, 2010 23:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Ah, Danke. Ich wusste es geht einfach.
Dabei kenn ich den Befehl eigentlisch schon. Embarassed

MfG
Der Eisvogel
Ungarische Notation kann nützlich sein.
BlitzMax ; Blitz3D
Win 7 Pro 64 Bit ; Intel Core i7-860 ; 8 GB Ram ; ATI HD 5750 1 GB
Projekte: Window-Crasher
Ich liebe es mit der WinAPI zu spielen.

BtbN

BeitragMo, Aug 02, 2010 12:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Danach das MemFree auf den CString nicht vergessen, sonst bleibt der für immer tot im speicher.

Der Eisvogel

BeitragMo, Aug 02, 2010 12:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Oja, gut das du das sagst. Das hätte ich auch vergessen.
Aber ich wollte schon immer mal wissen, ob man das nicht irgenwie vom GC automatisch machen lassen kann. Da muss es doch ne Möglichkeit geben oder?
Ungarische Notation kann nützlich sein.
BlitzMax ; Blitz3D
Win 7 Pro 64 Bit ; Intel Core i7-860 ; 8 GB Ram ; ATI HD 5750 1 GB
Projekte: Window-Crasher
Ich liebe es mit der WinAPI zu spielen.

BladeRunner

Moderator

BeitragMo, Aug 02, 2010 12:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Da das ein pointer auf eine externe struktur ist, nein. Woher soll BMax wissen ob der Pointer valide ist oder nicht?
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

Der Eisvogel

BeitragMo, Aug 02, 2010 13:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Keine Ahnung, ich dachte halt, weil es eine Funktion von BM selber ist.
Ungarische Notation kann nützlich sein.
BlitzMax ; Blitz3D
Win 7 Pro 64 Bit ; Intel Core i7-860 ; 8 GB Ram ; ATI HD 5750 1 GB
Projekte: Window-Crasher
Ich liebe es mit der WinAPI zu spielen.

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group