![]() |
String lässt sich nicht in die Datei schreiben...
Moin,
ich will einen String in eine TIniFile schreiben. Das Problem: Der String hat an der fünften Stelle einen "'". Daher werden immer nur die ersten vier Stellen weggeschrieben und nicht der ganze Rest. Also dachte ich mir das ich mit StringReplace das ganze modifizieren könnte ... und zwar so:
Delphi-Quellcode:
Klappt nur leider nicht. Er ersetzt das "'" nicht, bzw. nicht an allen Stellen. Den mit den anderen StringReplace Funktionen die es hier gibt, werden zwar einige ersetzt, aber nicht alle. Also habe ich mir den String nochmal in einem HEX Editor angeguckt und da steht an der fünften Stelle statt "'" nur " ". Der Ascii Code dafür ist 00, also kein "echtes" Leerzeichen. In Delphi zeigt er aber ein "'" an...
Inhalt := StringReplace(Inhalt, '''', 'NEW', [rfIgnoreCase + rfReplaceAll])
Was also tun?! Grüsse, Ricane |
Re: String lässt sich nicht in die Datei schreiben...
Hi!
Kann man in Delphi überhaupt mit "" arbeiten?? :gruebel: Der arbeitet doch glaube nur mit einzelnen Anführungszeichen. ('') Oder verwechsle ich es jetze?? :roll: |
Re: String lässt sich nicht in die Datei schreiben...
|
Re: String lässt sich nicht in die Datei schreiben...
Hi,
also du hast statt einem Leerzeichen #20 ein #0 dann ersetzt halt mit:
Delphi-Quellcode:
Gruß
Inhalt := StringReplace6(Inhalt, #20, 'NEW', [rfIgnoreCase + rfReplaceAll])
Frank |
Re: String lässt sich nicht in die Datei schreiben...
Zitat:
Code:
, der Hexwert ist 20, den müsste man in Delphi aber als Char so schreiben:
#32
Code:
#$20
|
Re: String lässt sich nicht in die Datei schreiben...
Klar hast recht ich habs verdreht.
Gruß Frank |
Re: String lässt sich nicht in die Datei schreiben...
Ganz davon abgesehen wollte Ricane das '-zeichen ersetzen -> #39
Desweiteren denke ich, das dies hier nicht stimmt: [rfIgnoreCase + rfReplaceAll] siehe definition: TReplaceFlags = set of (rfReplaceAll, rfIgnoreCase); womit [rfIgnoreCase + rfReplaceAll] sowas wie 0+1 ist, also nur 1 bei rauskommt -> also nur rfIgnoreCase! mach es einfach so:
Delphi-Quellcode:
mfg.
Inhalt := StringReplace(Inhalt, #39, 'NEW', [rfIgnoreCase , rfReplaceAll])
maximov |
Re: String lässt sich nicht in die Datei schreiben...
Hi Maximov,
ich denke es ging um #32 bzw. #0 was er ja mit Hex-Editor gefunden hat. Mit der StringReplace-Syntax hast du sicherlich recht habe ich auch nur von Ricane ohne Prüfung übernommen. Gruß Frank |
Re: String lässt sich nicht in die Datei schreiben...
Seh ich auch gerade :shock: ...hauptsache wir konnten ihm hilfen.(?)
|
Re: String lässt sich nicht in die Datei schreiben...
Hmm, ich glaub eher, es war eher folgendes gemeint:
(mein Problem, daß ich grad hab - sry, daß ich damit störe :oops: )
Delphi-Quellcode:
Hintergrund: Ich hab mir ne Datei in einen Filestream gelesen und wollte jetzt mittels StringReplace Ersetzungen darin vornehmen. Solange in der Datei kein hexadezimaler Nullwert (#0) auftaucht, ist das auch absolut kein Problem mit StringReplace, leider verweigert mir die Funktion die Zusammenarbeit, sobald sie im FileStream auf #0 trifft. :(
showmessage(StringReplace(#100#98#0#85#105#122#151#100,#0,'',[rfReplaceAll]));
Was kann ich tun? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:53 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz