AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi ListBox.Items.LoadFromFile geht nur bis NULL Zeichen

ListBox.Items.LoadFromFile geht nur bis NULL Zeichen

Ein Thema von Alex.P · begonnen am 18. Jan 2010 · letzter Beitrag vom 19. Jan 2010
Antwort Antwort
Seite 1 von 2  1 2   
Alex.P

Registriert seit: 7. Okt 2009
Ort: Ingolstadt
24 Beiträge
 
#1

ListBox.Items.LoadFromFile geht nur bis NULL Zeichen

  Alt 18. Jan 2010, 17:39
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
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.658 Beiträge
 
Delphi 7 Personal
 
#2

Re: ListBox.Items.LoadFromFile geht nur bis NULL Zeichen

  Alt 18. Jan 2010, 17:43
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
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Alex.P

Registriert seit: 7. Okt 2009
Ort: Ingolstadt
24 Beiträge
 
#3

Re: ListBox.Items.LoadFromFile geht nur bis NULL Zeichen

  Alt 18. Jan 2010, 17:54
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.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie
(Moderator)

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

Re: ListBox.Items.LoadFromFile geht nur bis NULL Zeichen

  Alt 18. Jan 2010, 18:06
Zitat von p80286:
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.
Richtig. Aber der Inhalt einer Listbox wird wie eine Zeichenkette mit Zeilenumbrüchen behandelt. Und 0x00 definiert unter Windows bzw. C/C++ das Ende einer Zeichenkette.

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.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.658 Beiträge
 
Delphi 7 Personal
 
#5

Re: ListBox.Items.LoadFromFile geht nur bis NULL Zeichen

  Alt 18. Jan 2010, 18:16
Zitat von Alex.P:
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.
Ich hab die Hexwerte nicht mehr im Kopf, aber das sieht so aus als hättest du eine Terminalsitzung mitgeschnitten.
Wenn Du
Code:
'Das ist text'
mit writeln schreibst, dann steht
Code:
 Das ist text0x0D0x0A
in der Datei. Seit seligen Dos-Zeiten sind Zeichen wie BEL oder BS eigentlich überflüssig (in Text-Dateien).

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]
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Alex.P

Registriert seit: 7. Okt 2009
Ort: Ingolstadt
24 Beiträge
 
#6

Re: ListBox.Items.LoadFromFile geht nur bis NULL Zeichen

  Alt 18. Jan 2010, 18:41
@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.
Ich hätt die LogFiles eigendlich gern zu 100% wie die Daten aus der Leitung kommen.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
16.900 Beiträge
 
Delphi 10.4 Sydney
 
#7

Re: ListBox.Items.LoadFromFile geht nur bis NULL Zeichen

  Alt 18. Jan 2010, 18:46
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?
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.658 Beiträge
 
Delphi 7 Personal
 
#8

Re: ListBox.Items.LoadFromFile geht nur bis NULL Zeichen

  Alt 18. Jan 2010, 18:52
Zitat von Alex.P:
Ich hätt die LogFiles eigendlich gern zu 100% wie die Daten aus der Leitung kommen.
warum dann mit einer Listbox arbeiten?
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
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Alex.P

Registriert seit: 7. Okt 2009
Ort: Ingolstadt
24 Beiträge
 
#9

Re: ListBox.Items.LoadFromFile geht nur bis NULL Zeichen

  Alt 18. Jan 2010, 18:57
Notepad++ sagt es ist ANSI
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
38.607 Beiträge
 
Delphi 10.4 Sydney
 
#10

Re: ListBox.Items.LoadFromFile geht nur bis NULL Zeichen

  Alt 18. Jan 2010, 19:01
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.).
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +2. Es ist jetzt 07:14 Uhr.
Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf