Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Typisierte Datei in ListBox auslesen (https://www.delphipraxis.net/74489-typisierte-datei-listbox-auslesen.html)

floralis 3. Aug 2006 22:14


Typisierte Datei in ListBox auslesen
 
Hallo!
Ich bin ziemlicher Anfänger, muss aber meine Belegarbeit weiterbringen.

Ich habe in Formular 1 eine getypte Datei erstellt (das funktioniert alles).
In einem zweiten Formular möchte ich diese getypte Datei in eine ListBox auslesen. Das funktioniert nicht...
1. scheint mir die ListBox mit getypten Dateien ein Problem zu haben, da nur der erste Record des Datensatzes angezeigt wird
2. wird eine Fehlermeldung ausgegeben, dass die über (ListBox1.Items.LoadFromFile('... .dat')) aufgerufene Datei schon von anderen benutzt wird (nämlich von Formular 1).

Kann mir da jemand helfen??
Danke!

mkinzler 4. Aug 2006 05:21

Re: Typisierte Datei in ListBox auslesen
 
Entweder in Form1 schlie0en, aus Form2 auf die File-Variable in Form1 zugreifen oder am Besten Verwaltung der Datei auslagern.

M.W. funktioniert aber .LoadFromFile nicht mit typ. Dateien.

Der_Unwissende 4. Aug 2006 08:13

Re: Typisierte Datei in ListBox auslesen
 
Zitat:

Zitat von floralis
1. scheint mir die ListBox mit getypten Dateien ein Problem zu haben, da nur der erste Record des Datensatzes angezeigt wird

Hi,
ich denke (wie mkinzler) auch, dass dies nicht durch eine ListBox unterstützt wird. Deine LoadFromFile basiert auf einem TStrings Objekt. Dieses verwaltet einfach nur Strings. Das heißt, dass eh nur ASCII Code korrekt angezeigt werden würde. Zudem kann die ListBox nicht den Typ deiner Datei erraten. Bei einer typisierten Datei stehen (imho) einfach nur die einzelnen Datensätze hintereinander in der Datei. Ein TStrings wird jetzt versuchen diese Daten als String zu lesen. Findet dein TStrings ein 0x13 0x10 (CR + LF), so wird dies als Zeilenende interpretiert. Es kann also gut sein, dass du alle Datensätze in einer Zeile stehen hast.
Du solltest (auch das sagte mkinzler ja schon) die Datei in einer anderen Unit verwalten. Hier kannst du dir eine Methode einfallen lassen, die dann ein TStrings Objekt (damit auch eine TStringList, THashedStringlist und natürlich auch die Lines einer TListBox) mit den gelesenen Daten füllt. Dazu musst du die Daten in ihren eigentlichen Typ auslesen und diesen Typ dann per Hand in einen String umwandeln.

Gruß Der Unwissende


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:44 Uhr.

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