![]() |
Re: Fortschrittsanzeige bei Ladevorgang mir Read();
Versteh ich net :roll:
|
Re: Fortschrittsanzeige bei Ladevorgang mir Read();
Du liest doch die einzelnen Datensätze (in diesem Fall Records) in einer Schleife aus der Datei. Da du den Maximalwert kennst, wäre eine for-Schleife am geeignetesten. Somit gibt der Wert der Schleifenvariable den Fortschritt an.
Benutzt du eine repeat- oder while-Schleife, musst du selbst eine Integer-Variable als Zähler deklarieren und pro Lesevorgang um eins hochzählen. |
Re: Fortschrittsanzeige bei Ladevorgang mir Read();
Ich benutze im Moment keine Schleife. Der Code, den ich oben gepostet habe ist alles. Keine for, while oder sonstige Schleife...
|
Re: Fortschrittsanzeige bei Ladevorgang mir Read();
Moin Yheeky,
dann wirst Du wohl auch keine Fortschrittsanzeige hinbekommen können. |
Re: Fortschrittsanzeige bei Ladevorgang mir Read();
Ach so, ich sehe, du liest das Array in einem Rutsch aus der Datei.
So kannst du natürlich keine Fortschrittsanzeige implementieren, da du ja nur eine Aktion durchführst. Probiers mal so:
Delphi-Quellcode:
Jetzt hast du in i deinen Fortschritt stehen.
Datei : File of TTest;
Datenliste : TTest; i: Integer; [...] AssignFile(Datei,ProgrammPfad + test.dat'); Reset(Datei); SetLength(DatenListe, FileSize(Datei)); for i := 1 to FileSize(Datei) do Read(Datei,DatenListe[i-1]); CloseFile(Datei); |
Re: Fortschrittsanzeige bei Ladevorgang mir Read();
Bekomme 2 Fehlermeldungen:
Code:
bei den Zeilen
[Fehler] Unit1.pas(84): Inkompatible Typen
[Fehler] Unit1.pas(88): Array-Typ erforderlich
Code:
SetLength(Datenliste, FileSize(Datei));
Read(Datei,Datenliste[i-1]); |
Re: Fortschrittsanzeige bei Ladevorgang mir Read();
Ach so, sorry, DatenListe muss ein Array of TTest sein, um mehrere Datensätze speichern zu können. Oder wofür sonst solltest du eine Fortschrittsanzeige brauchen, wenn nicht, um mehrere Datensätze auszulesen?
|
Re: Fortschrittsanzeige bei Ladevorgang mir Read();
Möchte einfach überprüfen, wieviel Prozent des aktuellen Datensatzes bereits geladen wurde...
|
Re: Fortschrittsanzeige bei Ladevorgang mir Read();
Bei einem einzelnen Datensatz wirst du Pech haben.
|
Re: Fortschrittsanzeige bei Ladevorgang mir Read();
Oh je, was soll denn das da werden :?: Nebenbei bemerkt, Dein Source kann so nicht gehen. Du liest nur einen Record. Und das Filesize die Anzahl der Datensätze angibt halte ich für ein Gerücht. Das mit dem Array ist auch Blödsinn. @Chewie: Nix für ungut. :wink:
Der Record-Typ ist TTest. Die Größe ermittelst Du mit
Delphi-Quellcode:
Wohlgemerkt, von EINEM Datensatz :!:
sizeof (TTest);
Die Datei ist File OF TTest. Die Dateigröße kriegst Du jetzt mit
Delphi-Quellcode:
raus.
filesize (Datei);
Und das alles in bytes. Teilst Du nun filesize / sizeof so muß eine ganze Zahl herauskommen. Das ist die Gesamtanzahl der Datensätze. Jetzt kommt der Zähler ins Spiel. Setze den am Anfang auf 0 und bei jedem gelesenen Datensatz zählst Du eins hoch. So und nun kommt die Progressbar oder die komische Gauge ins Spiel. Wie das geht weiß ich nicht, bisher noch nicht gebraucht. Du mußt da mit Sicherheit den Zähler in Bezug zur Gesamtgröße benutzen. Dürfte einfach sein, sofern die Vorarbeiten stimmen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:45 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