Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi TStrings maximale Länge (https://www.delphipraxis.net/171653-tstrings-maximale-laenge.html)

Tommy99 17. Nov 2012 10:49

Delphi-Version: 2010

TStrings maximale Länge
 
Hallo,

versuche einen Dateiinhalt in einen TStrings zu laden (TStringTest.Add(Dateiinhalt))

Die entsprechende Zeilenlänge ist auf 35 Zeichen begrenzt.

Die Zeilen aus der Datei werden nur bis maximal 153 Zeilen an den TStrings angefügt.

Die restlichen Zeilen werden ignoriert. Kann mir jemand weiterhelfen, woher dieses Problem kommt, bzw., ob ich es umgehen kann.

Danke und Grüße

DeddyH 17. Nov 2012 10:50

AW: TStrings maximale Länge
 
Ist evtl. ein #0 in der Datei enthalten?

Tommy99 17. Nov 2012 10:51

AW: TStrings maximale Länge
 
Nein, es handelt sich um einen reinen Textfile (Namen von Banken in Deutschland)

Sir Rufo 17. Nov 2012 11:10

AW: TStrings maximale Länge
 
Zitat:

Zitat von Tommy99 (Beitrag 1191652)
Nein, es handelt sich um einen reinen Textfile (Namen von Banken in Deutschland)

Das sagt nichts darüber aus, ob du dich davon überzeugt hast, dass kein #0 in der Datei vorkommt.
Oder ist das bei der Erstellung von einer Banknamen Datei per se ausgeschlossen?
Ich denke das BS/OS kann das nicht erkennen :mrgreen:

mkinzler 17. Nov 2012 11:21

AW: TStrings maximale Länge
 
Auch bei #D und #A kann es Probleme geben

DeddyH 17. Nov 2012 11:28

AW: TStrings maximale Länge
 
Zitat:

Zitat von mkinzler (Beitrag 1191657)
Auch bei #D und #A kann es Probleme geben

Wird dann nicht nur ein unerwünschter Zeilenumbruch eingefügt? Es fällt mir ein wenig schwer zu glauben, dass das mit einem Stringende verwechselt werden könnte, habe es aber zugegebenermaßen nicht ausprobiert.

Popov 17. Nov 2012 11:41

AW: TStrings maximale Länge
 
@Tommy99

Test das mal:

Delphi-Quellcode:
var
  s: String;
begin
  s := 'Hallo Welt';
  s[6] := #0;

  ShowMessage('Text von s: "' + s + '"'); //hier wird sogar das zweite Anführungszeichen geschluckt
  ShowMessage('Länge s: ' + IntToStr(Length(s))); //die Länge ist aber korrekt (10)

  Caption := s; //mal an die Titelleiste übergeben
  ShowMessage('Länge Caption: ' + IntToStr(Length(Caption))); //die Länge ist kürzer (5)
end;
Einige Programme haben damit kein Problem, da sie die Nullen im Text ignorieren. Andere dagegen schlucken alles dahinter.

Tommy99 17. Nov 2012 13:56

AW: TStrings maximale Länge
 
ich glaube nicht, dass es mit dem #0 zusammenhängt.

Es handelt sich hierbei um eine TXT Datei und über suchen kann ich keinen #0 Eintrag finden.

Zum Testen habe ich den Inhalt je Zeile verkürzt:

TStringTest.Add(Copy(Dateiinhalt,1,10))

Dann schafft er ein paar Zeilen mehr in die Variable aufzunehmen, bricht dann aber auch ab.

Sir Rufo 17. Nov 2012 13:59

AW: TStrings maximale Länge
 
Wenn die Datei nicht zu geheim ist, dann packe die in ein Zip-File und häng die hier mal dran.
(evtl. ist es auch ein Codepage/Encoding Problem)

Popov 17. Nov 2012 14:03

AW: TStrings maximale Länge
 
kennst du das Programm TextPad? Gibt es auch als Shareware. Ansonsten tut auch jeder Hexeditor. Zumindest kann man mit TextPad auch binär laden und da genau prüfen ob eine Null da ist. Ich glaube nicht, dass ein normaler Editor eine Null findet. Dann weißt due es genau.

Übrigens, was passiert wenn du es in ein Memo lädst? Mach aber vorher WordWrap auf False.


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:14 Uhr.
Seite 1 von 3  1 23      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz