Autor Beitrag
Bronstein
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 578
Erhaltene Danke: 1

WIN XP
Delphi 6 / Delphi 2006 / Delphi XE
BeitragVerfasst: Do 01.10.09 08:20 
Hallo,
ich habe folgenden String in einer Textdatei stehen:
ausblenden 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:

ausblenden 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,

_________________
Es gibt keine dummen Fragen nur dumme Antworten!!!
hjm
Hält's aus hier
Beiträge: 4



BeitragVerfasst: 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

ausblenden Delphi-Quelltext
1:
2:
var
tmpstr : String;


automatisch AnsiString.

Grüße
Tastaro
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 414
Erhaltene Danke: 23



BeitragVerfasst: Do 01.10.09 09:13 
user profile iconBronstein hat folgendes geschrieben Zum zitierten Posting springen:

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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 763
Erhaltene Danke: 27

Win XP, Windows 7, (Linux)
D6, D2010, C#, PHP, Java(Android), HTML/Js
BeitragVerfasst: Do 01.10.09 10:06 
Wie kommst du auf 265?
Tastaro
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 414
Erhaltene Danke: 23



BeitragVerfasst: Do 01.10.09 10:23 
user profile iconthepaine91 hat folgendes geschrieben Zum zitierten Posting springen:
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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 148
Erhaltene Danke: 2

Windows 7
Delphi XE3 Pro + HTML5Builder
BeitragVerfasst: 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...

_________________
Gruss Manfred
Tastaro
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 414
Erhaltene Danke: 23



BeitragVerfasst: Do 01.10.09 12:55 
user profile iconDonManfred hat folgendes geschrieben Zum zitierten Posting springen:
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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 578
Erhaltene Danke: 1

WIN XP
Delphi 6 / Delphi 2006 / Delphi XE
BeitragVerfasst: Do 01.10.09 18:34 
Hallo,
das Problem lag wirklich daran, dass ich die tmpStr Variable als ShortString deklariert hatte.

Vielen Dank!

_________________
Es gibt keine dummen Fragen nur dumme Antworten!!!