Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - String aus Textdatei länger als 255 Zeichen
Bronstein - Do 01.10.09 08:20
Titel: String aus Textdatei länger als 255 Zeichen
Hallo,
ich habe folgenden String in einer Textdatei stehen:
Quelltext
1:
| 3|3|24.09.2009 22:31:04|Linie_3|1|1|1|2|33|971.395$10223507100430$10.000$RUTRONIK$RC0805JR-101ML970.458$10220912100060$5.000$RUTRONIK$RC1206FR-073R92L99990000000000100000000000000000|C_980_108_109_1|Los_75_465_442_02|FAIL|82|905352|75_465_442_02|FALSE|980109|FALSE |
Hier von habe ich mehrere Zeilen in der Datei, jetzt möchte ich mit diesem String gerne arbeiten und zwar wie folgt:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| sl := TStringList.Create; zellen := TStringList.Create; zellen.Delimiter:='|'; sl.LoadFromFile(Datei); gesperrt := false; for i:=zeile to sl.Count-1 do begin tmpStr := StringReplace(sl[i], ' ', '', [rfReplaceAll]);
zellen.DelimitedText := tmpStr; if zellen.Count >= 17 then if zellen[18] = 'TRUE' then check := true;
ShowMessage(tmpStr); [...] end; |
Nach dem StringReplace ist der String jedoch nur noch 255 Zeichen lang,
hjm - Do 01.10.09 08:29
Hallo,
als was hast Du tmpstr den deklariert.
Bei Shortstring sind es dann tatsächlich nur 255 Bytes.
Daher tmpstr als AnsiString definieren, bzw. in den Projekt-Einstellungen -> Compiler -> Huge-Strings aktivieren.
Dann ist die Deklaration
automatisch AnsiString.
Grüße
Tastaro - Do 01.10.09 09:13
Bronstein hat folgendes geschrieben : |
Nach dem StringReplace ist der String jedoch nur noch 255 Zeichen lang, |
Hm - eigentlich müsste er 265 Zeichen lang sein.
Zugegeben, doofe Frage, aber bist du sicher, dass es 255 und nicht 265 sind.
Beste Grüße
thepaine91 - Do 01.10.09 10:06
Wie kommst du auf 265?
Tastaro - Do 01.10.09 10:23
thepaine91 hat folgendes geschrieben : |
Wie kommst du auf 265? |
Ich hab die Zeichenkette oben in meinen Editor kopiert und ein Zeichen wegen dem Leerzeichen abgezogen.
Beste Grüße
DonManfred - Do 01.10.09 12:09
Und diese 265 ist der String VOR dem besagten StringReplace (wonach er DANN nur noch 255 Zeichen lang ist). Und das war ja genau die Problemstellung...
Tastaro - Do 01.10.09 12:55
DonManfred hat folgendes geschrieben : |
Und diese 265 ist der String VOR dem besagten StringReplace (wonach er DANN nur noch 255 Zeichen lang ist). Und das war ja genau die Problemstellung... |
Erst mal sichersetllen, dass das Problem korrekt beschrieben ist. Von der 265 steht oben nix und verguckt hat man sich auch schnell mal. Ansonsten finde ich es sehr nett von dir mir das Problem des TE so genau zu erklären. Danke.
@TE: Verschwinden die Daten am Ende des Strings oder sonst irgendwo?
Beste Grüße
Bronstein - Do 01.10.09 18:34
Hallo,
das Problem lag wirklich daran, dass ich die tmpStr Variable als ShortString deklariert hatte.
Vielen Dank!
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!