![]() |
Strings bearbeiten (suchen/ersetzen) und in Pchar unwandeln?
Hi,
ich bin grad auf arbeit und ich muss einen aus anderen strings und integer bzw. float werten zusammengesetzten string nach einen komma abfragen diesen durch einen punkt ersetzen und dann in ein Pchar unwandeln damit ich diesen in eine Datei (TFileStream) schreiben kann. kann mir wer helfen ? MfG Krümel :coder: :shock: |
Eigentlich brauchst Du keinen PChar. Kurzes Beispiel
Code:
Fertig.
var
FinalString: String; begin ... FinalString := 'Erster Teil' + varZweiterTeil + IntToStr(DritterTeil) + 'Vierter Teil'; FileStream.Write[@FinalString[1], Length(FinalString)); ... end; |
Moin Kruemel,
Code:
Wozu brauchst Du einen PChar?
[color=#000080]// Nur um die Typen zu klären[/color]
[b]var[/b] iPos : integer; sWork : [b]string[/b]; fsWork : TFileStream; [b]begin[/b] [color=#000080]// Komma gegen Punkt tauschen[/color] iPos := pos(',',sWork); [b]while[/b] iPos <> 0 [b]do[/b] [b]begin[/b] sWork[iPos] := '.'; iPos := pos(',',sWork); [b]end[/b]; [color=#000080]// und die Zeile wegschreiben[/color] fsWork.Write(sWork[1],Length(sWork)); [b]end[/b]; [EDIT] @sakura: :mrgreen: [/EDIT] |
@chriss
sieht ganz gut aus, aber inder folgenden zeile : sWork[iPos] := '.'; sagt der compiler mir das 'Left side cannot be assigned to' das problem hatte ich beim EDH auch schon PS: PChar wollte ich verwenden weil ich vorher WriteBuffe benutzt habe |
Moin Kruemel,
also die Meldung vom Compiler kann ich mir nicht erklären. Dazu wäre mal ein ein wenig Sourcecode ganz hilfreich (u.a. mit den Deklarationen). Bei mir funktioniert das so problemlos, egal ob ich sWork nun als array of char, pchar, Huge String oder Short String deklariere. Bei WriteBuffer brauchst Du übrigens auch keinen PChar. Wenn der Buffer ein String ist, ist es nur wichtig, dass man die Position mit angibt, eben sWork[1] (z.B.). Wenn ich mich nicht sehr irre gilt das für alle Zugriffe, die einen untypisierten Buffer verwenden, nicht nur bei TFileStream. |
Habs hinbekommen. der fehler war
statt function convert( S :String):String; hatte ich function convert(var S : String):String; stehen. jetzt klappt es. danke. Mfg krümel |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:22 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