![]() |
ListBox.Items.LoadFromFile geht nur bis NULL Zeichen
Hallo,
ich möchte eine Text Datei komplett einlesen und in einer ListBox anzeigen. Die Textdatei kann allerdings alle möglichen Zeichen ethalten. Ab dem ersten NULL Zeichen wird nichts mehr in die Listbox geschrieben. Gibt es da eine Möglichkeit ohne, daß ich das Textfile ändere. Greetz Alex |
Re: ListBox.Items.LoadFromFile geht nur bis NULL Zeichen
Na klar gibt es da Möglichkeiten, aber das Einlesen bis zum ersten 0x00 ist eigentlich ungewöhnlich. Das wäre Stringende und nicht Dateiende.
Könnte es sein, daß die Größe der Datei nicht stimmt? Gruß K-H |
Re: ListBox.Items.LoadFromFile geht nur bis NULL Zeichen
Dateigröße sollte in Ordung sein.
Die Datei wurde vorher vom Programm mit AssignFile und Writeln erstellt. Die Zeichenkette, die das Laden abbricht ist in Notepad++ "NUL NUL BS BS CAN BEL" Die Zeichen werden im Windows Editor nicht angezeigt. |
Re: ListBox.Items.LoadFromFile geht nur bis NULL Zeichen
Zitat:
Eine Lösung wäre die Datei zeilenweise einzulesen und jede Zeile einzel in die Listbox einzufügen. Oder man speichert es gleich so ab, dass eben keine 0x00 Zeichen innerhalb der Zeichenkette vorkommen. |
Re: ListBox.Items.LoadFromFile geht nur bis NULL Zeichen
Zitat:
Wenn Du
Code:
mit writeln schreibst, dann steht
'Das ist text'
Code:
in der Datei. Seit seligen Dos-Zeiten sind Zeichen wie BEL oder BS eigentlich überflüssig (in Text-Dateien).
Das ist text0x0D0x0A
Gruß K-H [edit]Die Datei würde mich mal interessieren[/edit] [edit1] Ich hab nicht mehr an die Feinheiten bei Tstrings und string gedacht![/edit1] |
Re: ListBox.Items.LoadFromFile geht nur bis NULL Zeichen
@p80286 Du hast es erraten was ich hier mache.
Ich hab jetzt an der Datenspeicherung angesetzt. for i := 0 to Length(LogString) do if LogString[i] = NULL then LogString[i] := ' '; entfernt fast alle NUL Zeichen, komischerweise nicht alle. :gruebel: Ich hätt die LogFiles eigendlich gern zu 100% wie die Daten aus der Leitung kommen. |
Re: ListBox.Items.LoadFromFile geht nur bis NULL Zeichen
Kann es sein das du eine Unicode-Textdatei hast? Öffne Sie mal im Notepad und gehe dann auf speichern unter. WElche Codierung wird im "Speichern unter" Dialog angeboten?
|
Re: ListBox.Items.LoadFromFile geht nur bis NULL Zeichen
Zitat:
Da bietet sich doch eher so etwas wie ein Hexeditor an. Den gibt es zwar nicht als Standardkomponente aber er ist doch relativ schnell geschrieben. Gruß K-H |
Re: ListBox.Items.LoadFromFile geht nur bis NULL Zeichen
Notepad++ sagt es ist ANSI
|
Re: ListBox.Items.LoadFromFile geht nur bis NULL Zeichen
Die gekapselten Windows-Komponenten sind in C geschrieben, also ist die #0 das Ende.
Delphi hört deßhalb, aus Kompatiblitätsgründen, auch bei einer #0 auf mit Einlesen (für TStringList und Co.). |
Re: ListBox.Items.LoadFromFile geht nur bis NULL Zeichen
Zitat:
|
Re: ListBox.Items.LoadFromFile geht nur bis NULL Zeichen
Ich möchte mir die Files direkt vom Programm anzeigen lassen um sie nicht im Filesystem suchen zu müssen.
Ich brauch was schnelles und unkompliziertes um die Fehlersuche zu erleichtern. |
Re: ListBox.Items.LoadFromFile geht nur bis NULL Zeichen
Hab kein Windows Notepad nur Windows Wordpad und das sagt Textfile.
|
Re: ListBox.Items.LoadFromFile geht nur bis NULL Zeichen
Hast du den Windows eigenen Texteditor deinstalliert oder warum hast du kein Notepad?
|
Re: ListBox.Items.LoadFromFile geht nur bis NULL Zeichen
Zitat:
|
Re: ListBox.Items.LoadFromFile geht nur bis NULL Zeichen
"öffentlich" nennt der sich nur nicht Notepad.
im deutschen Windows: Startmenü > Programme > Zubehör > Editor |
Re: ListBox.Items.LoadFromFile geht nur bis NULL Zeichen
Zitat:
|
Re: ListBox.Items.LoadFromFile geht nur bis NULL Zeichen
Hat sich versteckt...
System32\Notepad.exe sagt das gleiche wie Notepad++ --> ANSI |
Re: ListBox.Items.LoadFromFile geht nur bis NULL Zeichen
Hallo Alex,
wenn Du ein log für eine Terminalsitzung oder ähnliches erstellst, rate ich Dir nicht mit writeln sondern mit write zu arbeiten, da mit writeln "falsche" 0x0D und 0x0A in Deine Log-Datei kommen. Beim Auslesen mußt Du dann einen Filter für gültige Zeichnen einbauen und die ungültigen mit einem . oder ggf. mit einem Symbol z.B. BS,CR etc. kennzeichnen. Gruß K-H |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:12 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