Hallo,
ich stehe vor der Herausforderung NUL-Zeichen (\x00) aus einer einzulesenden Zeichenkette zu entfernen. Tue mich allerdings etwas schwer damit. Kann mir jemand von euch einen TIP geben?
Besten Dank
frankmannb
\x00 zeichen aus String entfernen
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Re: \x00 zeichen aus String entfernen
Wo befindet sich der String mit den 0 Bytes? Weil in einem PB String kann er nicht stehen.
Also in einem Memory, einer Datei oder in was sonst?
Also in einem Memory, einer Datei oder in was sonst?
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Re: \x00 zeichen aus String entfernen
Woher kommt denn die Zeichenkette? Aus einer Datei?frankmannb hat geschrieben:ich stehe vor der Herausforderung NUL-Zeichen (\x00) aus einer einzulesenden Zeichenkette zu entfernen. Tue mich allerdings etwas schwer damit. Kann mir jemand von euch einen TIP geben?
Du musst dann die Länge der Zeichenkette kennen, oder zum Beispiel auf EOF() prüfen.
Dann liesst Du ein Byte oder Character, und wenn es nicht 0 ist, hängst Du es an Deine
Zeichenkette an. 0 wird einfach ignoriert.
cya,
...Danilo
"Ein Genie besteht zu 10% aus Inspiration und zu 90% aus Transpiration" - Max Planck
...Danilo
"Ein Genie besteht zu 10% aus Inspiration und zu 90% aus Transpiration" - Max Planck
- NicTheQuick
- Ein Admin
- Beiträge: 8809
- Registriert: 29.08.2004 20:20
- Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti - Wohnort: Saarbrücken
Re: \x00 zeichen aus String entfernen
Wenn ich mich nicht irre liest 'ReadString()' immer entweder bis zum nächsten Zeilenumbruch oder bis zum nächsten Nullzeichen. Beim nächsten Aufruf kommt dann der String nach dem Zeilenumbruch oder eben Nullbyte.
-
- Beiträge: 47
- Registriert: 21.02.2010 13:02
Re: \x00 zeichen aus String entfernen
Super, Danke euch. Habt mir mit euren Ideen geholfen, so das ich es folgendermaßen umgesetzt habe.
Vielleicht nicht der Weisheit letzter Schluss, aber seinen Zweck erfüllt es.
Vielen Dank an euch, es ist tolll das es euch gibt
Code: Alles auswählen
files.s = ProgramParameter()
For i = 1 To (CountString(files.s,",") + 1)
If i = 1
file_old.s = StringField(files.s,1,",")
EndIf
If i = 2
file_new.s = StringField(files.s,2,",")
EndIf
Next
Procedure P_File(file_old.s,file_new.s)
If OpenFile(0,file_new.s)
If ReadFile(1, file_old.s)
While Eof(1) = 0
zahl.b = ReadByte(1)
If zahl.b <> 0
If zahl.b = 10
WriteByte(0,13)
EndIf
WriteByte(0,zahl.b)
EndIf
Wend
CloseFile(1)
Else
MessageRequester("FEHLER","Datei " + file_old.s + " kann nicht gelesen werden")
EndIf
CloseFile(0)
Else
MessageRequester("FEHLER","Datei " + file_new.s + "kann nicht erstellt werden")
EndIf
EndProcedure
P_File(file_old.s,file_new.s)
Vielen Dank an euch, es ist tolll das es euch gibt
