Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi [Konsolenanwendung] Fortschrittsanzeige (https://www.delphipraxis.net/177009-%5Bkonsolenanwendung%5D-fortschrittsanzeige.html)

Back2Code 10. Okt 2013 10:58

[Konsolenanwendung] Fortschrittsanzeige
 
Hey Leute, ich habe eine etwas größere Schleife die Daten an einen MySQL Server überträgt. Wie würdet ihr am besten den aktuellen Fortschritt anzeigen lassen?

Im Moment hab ichs per
Delphi-Quellcode:
WriteLn(Aktuelle Line / von alle Lines)
Sieht aber irgendwie noch nicht so toll aus. Freu mich über Vorschläge:stupid:

p80286 10. Okt 2013 11:04

AW: [Konsolenanwendung] Fortschrittsanzeige
 
Delphi-Quellcode:
repeat / while...
...
  if LineNo and $0F = 0 then
    write(inttostr(LineNo)+' of '+maxlines+#13);
...
until...
writeln(inttostr(LineNo)+' of '+maxlines);
Gruß
K-H

Back2Code 10. Okt 2013 12:07

AW: [Konsolenanwendung] Fortschrittsanzeige
 
Liste der Anhänge anzeigen (Anzahl: 1)
Delphi-Quellcode:
          iProcent := i * 100 div TransNodes.Count;
          WriteLn(IntToStr(iProcent) + '% Finished');

Furtbichler 10. Okt 2013 12:17

AW: [Konsolenanwendung] Fortschrittsanzeige
 
Delphi-Quellcode:
Const
  ProgressbarWidth = 60;

begin
  for i :=1  to maxCount do begin
     progess := muldiv(progressBarWidth,i,maxCount);
     write (#13,'['+StringOfChar(progress,'*')+StringOfChar(progressBarWidth-Progress,'-')+']';
  end
end;
Endlose Möglichkeiten.

Sehr beliebt auch :
Delphi-Quellcode:
Const
  Spin = '|/-\';

begin
  for i :=1  to maxCount do begin
     percent := muldiv(100,i,maxCount);
     write (#13, spin[i mod length(Spin) + 1],' ',percent+' % done.);
  end
end;
Der Phantasie sind keine Grenzen gesetzt.

Weiß nich, ob das überhaupt funktioniert. Will sagen: Getippt und nicht getestet.

Wichtig ist der "Trick" mit dem #13 (Carriage return = Wagenrücklauf).

Back2Code 10. Okt 2013 12:25

AW: [Konsolenanwendung] Fortschrittsanzeige
 
@Furtbichler

Musste dein Sample gering anpassen gefällt mir jedenfalls sehr viel besser als die 1000 Angabe in Prozent von mir da oben :oops:

Delphi-Quellcode:
          iProcent := muldiv(100,i,TransNodes.Count);
          write (#13, spin[i mod length(Spin) + 1],' ',IntToStr(iProcent)+' % done.');


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