Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Progress Bar (https://www.delphipraxis.net/78340-progress-bar.html)

RobinHood 3. Okt 2006 13:52


Progress Bar
 
Hallo

Ich hab ein Programm geschrieben in dem ich eine Textdatei in ein Array einlese.
Die Textdatei hat nen paar KB, also dauert das Einlesen ein Paar Sekunden.
Gibt es eine Möglichkeit mit TProgressBar den Fortschritt des Einlesens anzuzeigen?

Wäre nett wenn ihr mir helfen könntet ...
Marc

_frank_ 3. Okt 2006 13:55

Re: Progress Bar
 
grundsätzlich ja,
dazu bräuchten wir aber ein bisschen code der Einlese-Routine und/oder die Struktur der Datei.

du musst ja ein Verhältnis ausrechnen...

Gruß Frank

RobinHood 3. Okt 2006 14:05

Re: Progress Bar
 
Also die Textdatei ist ein Logfile ....
In jeder zeile steht in einer bestimmten Syntax ein Datum und ein Name.
Ich erstelle dann ein Array mit einem Record ... also einmal das Datum und der Name.
Delphi-Quellcode:
type

  TUhrzeit = record
                std : integer;
                min : integer;
              end;

  TDatum = record
              tag : integer;
              monat : integer;
              jahr : integer;
            end;

  TWann = record
              datum : TDatum;
              uhrzeit : TUhrzeit;
             end;

  TEintrag = record
                 name : string[50];
                 wann : TWann;
                end;

  TEintraege = array of TEintrag;

implementation

Delphi-Quellcode:
  procedure einlesen(var eintraege : TEintraege; pfad : string);
  var d : textfile;
      i : integer;
      tmprec : TEintrag;
      tmpstr : string;
  begin
    i := 0;
    assignfile(d,pfad);
    reset(d);

    while not eof(d) do
      begin
        readln(d,tmpstr);

        tmprec.name := copy(copy(tmpstr,22,length(tmpstr)-21),1,pos(' ',copy(tmpstr,22,length(tmpstr)-21)));
        with tmprec.wann do
          begin
            datum.tag := StrToInt(copy(tmpstr,2,2));
            datum.monat := StrToInt(copy(tmpstr,5,2));
            datum.jahr := StrToInt(copy(tmpstr,8,4));
            uhrzeit.std := StrToInt(copy(tmpstr,15,2));
            uhrzeit.min := StrToInt(copy(tmpstr,18,2));
          end;

        setlength(eintraege,i+1);
        eintraege[i] := tmprec;
        inc(i);
      end;
    closefile(d);
  end;

EWeiss 3. Okt 2006 14:12

Re: Progress Bar
 
Progressbar.max = anzahl der zeilen im logfile

Den rest kanst du dir vielleicht selbst denken.

gruß

RobinHood 3. Okt 2006 14:14

Re: Progress Bar
 
:wall: ja is richtig .... hätt mir auch alles selber denken können aber danke für den kleinen Anstoß :thumb:


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:05 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