AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

progressbar/dateien

Ein Thema von Heinziheinz · begonnen am 13. Apr 2011 · letzter Beitrag vom 15. Apr 2011
Thema geschlossen
Seite 1 von 4  1 23     Letzte »    
Heinziheinz

Registriert seit: 13. Apr 2011
28 Beiträge
 
#1

progressbar/dateien

  Alt 13. Apr 2011, 22:02
hi leute ich habe einen code zusammengebastelt der mir erlaubt auf meinem pc mittels FindAllfiles rekursiv nach datein zu suchen, die links der gefundenen dateien werden bei mir in einer combobox ausgegeben und ich möchte diesen vorgang gerne entweder in einer progressbar darstellen oder zumindest den fortschritt angezeigt bekommen wie viele dateien schon gefunden wurden wobei ich das finden der dateien life miterleben will. ich möchte nicht nur das endergebnis wissen wie viele datein gefunden wurde, sondern beim programmlauf sehen dass die zahl der gefundenen dateien größer wird.über eine der beiden mögligkeiten würd ich mich freuen am besten natürlich über beide. Ich bin noch ein programmieranfänger deshalb wäre ein codeschnipsel nicht schlecht. am besten gleich mit erklärung wie ich das auszuführen habe und welche sachen ich dafür brauch

delphi code:


Delphi-Quellcode:
procedure GetFilesInDirectory(Directory: string; const Mask: string;
                              List: TStrings;
                              WithSubDirs, ClearList: Boolean);

procedure ScanDir(const Directory: string);
var
  SR: TSearchRec;
begin
  if FindFirst(Directory + Mask, faAnyFile and not faDirectory, SR) = 0 then try
    repeat
    counter := counter +1;
      List.Add(Directory + SR.Name)
    until FindNext(SR) <> 0;
  finally
    FindClose(SR);
  end;

  if WithSubDirs then begin
    if FindFirst(Directory + '*.*', faAnyFile, SR) = 0 then try
      repeat
        if ((SR.attr and faDirectory) = faDirectory) and
           (SR.Name <> '.') and (SR.Name <> '..') then
          ScanDir(Directory + SR.Name + '\');
      until FindNext(SR) <> 0;
    finally
      FindClose(SR);
    end;
  end;
end;

begin
  List.BeginUpdate;
  try
    if ClearList then
      List.Clear;
    if Directory = 'then Exit;
    if Directory[Length(Directory)] <> '\then
      Directory := Directory + '\';
    ScanDir(Directory);
  finally
    List.EndUpdate;
  end;
end;


{ TForm1 }

procedure TForm1.Button1Click(Sender: TObject);
begin
  GetFilesInDirectory(edit1.text, '*.'+edit2.text, Listbox1.Items, checkbox1.Checked, True);
  if counter >1 then
  begin
  label1.caption := 'Es wurden '+inttostr(counter)+' '+edit2.text+' Dateien gefunden.';
  end
  else
  label1.caption := 'Es wurde '+inttostr(counter)+' '+edit2.text+' Datei gefunden.';
  counter:=0;
end;

Geändert von mkinzler (14. Apr 2011 um 06:56 Uhr) Grund: Delphi-Tag eingefügt
 
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: progressbar/dateien

  Alt 13. Apr 2011, 22:29
Erst mal ein Willkommen in der DP

Das von dir gewünschte wirst du nur über einen separaten Thread vernünftig hinbekommen.
Der Thread kümmert sich um das Suchen der Dateien und meldet dann immer wieder an den Hauptthread wie weit er schon ist.

Schau mal über die SuFu nach Threads - da wirst du einiges finden.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
 
Heinziheinz

Registriert seit: 13. Apr 2011
28 Beiträge
 
#3

AW: progressbar/dateien

  Alt 13. Apr 2011, 22:36
ach tu kage das is ja viel zu lesen xD...dannke fürs wilkommenheißen =) naja ich wühl mich ma durch, aba wen du ma zeit hast kanste mir ja ne zusammfassung schreiben was ich brauch ums das so zu machn und wie ichs dann umsetz =) dankö im voraus
 
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: progressbar/dateien

  Alt 13. Apr 2011, 22:48
ach tu kage das is ja viel zu lesen xD...dannke fürs wilkommenheißen =) naja ich wühl mich ma durch, aba wen du ma zeit hast kanste mir ja ne zusammfassung schreiben was ich brauch ums das so zu machn und wie ichs dann umsetz =) dankö im voraus
Hier im Forum gibt es so einige Beiträge, wo ich mich zum Thema Threads geäußert habe.
(allerdings bin ich nicht der einzige)
Weiterhin gibt es auch Tutorials dazu.

Wenn du eine konkrete Frage hast, wirst du die auch konkret beantwortet bekommen.
Eine Anfrage wie du sie gestellt hast (mach da mal was für mich), wird hier nicht gern gesehen - Ausnahme in der Sparte Jobangebote

Grund: Dir ist es freigestellt hier Fragen zu stellen und allen anderen ist es freigestellt zu antworten
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
 
Heinziheinz

Registriert seit: 13. Apr 2011
28 Beiträge
 
#5

AW: progressbar/dateien

  Alt 13. Apr 2011, 22:53
jou ich wühl mich ma kurz duch n paar turtorials durch und dan stell ich ne konkrete frage =), da ich in diesem forrum neu bin nich pös sein wen ich was überlese =) außerdem bin ich ein programmieranfänger dat heist ich höre den begriff thread zum ersten mal xD..naja mal schaun eine frage kommt bald oder auch mehrere =)
 
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#6

AW: progressbar/dateien

  Alt 13. Apr 2011, 22:58
jou ich wühl mich ma kurz duch n paar turtorials durch und dan stell ich ne konkrete frage =), da ich in diesem forrum neu bin nich pös sein wen ich was überlese =) außerdem bin ich ein programmieranfänger dat heist ich höre den begriff thread zum ersten mal xD..naja mal schaun eine frage kommt bald oder auch mehrere =)
So schnell werden wir nicht böse

Kleiner Tip Hier im Forum suchenThread FindFile
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
 
Heinziheinz

Registriert seit: 13. Apr 2011
28 Beiträge
 
#7

AW: progressbar/dateien

  Alt 13. Apr 2011, 23:10
okej es gibt gute und schlechte nachrichten xD
gute: ich weis jez was n thread is und wofür man ihn brauch
schlechte: i hab voll nich gerafft wie man son ding erstellt und wie es mir das liefern soll was ich von meinem programm brauche...um das mit der progressbar zu machen müsste ich dem 2tem thread theoretisch beibringen wärend mein hauptthread läuft die komplette festplatte zu scanen die anzahl der gesamtdateien zu bestimmen und dementsprechend die progressbar zu formen..klingt sehr kompliziert und wird mein programm warscheinlich unglaublich verlangsammen...die 2te mäöglichkeit ist: jedes mal wenn mein programm eine neue datei findet, schikt der 2te thread auf irgend eine art und weise dem hauptthread die anzahl der gefundenen dateien die auch noch aktualisiert werden müssen. soviel zum plan und da ich keine ahnung habe wie man das auch nur annärend passend zu meinem code umsetzt würde ich mich jetzt auf hilfe freuen...mist immer noch keine konkrete frage =)
 
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#8

AW: progressbar/dateien

  Alt 13. Apr 2011, 23:15
okej es gibt gute und schlechte nachrichten xD
gute: ich weis jez was n thread is und wofür man ihn brauch
schlechte: i hab voll nich gerafft wie man son ding erstellt und wie es mir das liefern soll was ich von meinem programm brauche...um das mit der progressbar zu machen müsste ich dem 2tem thread theoretisch beibringen wärend mein hauptthread läuft die komplette festplatte zu scanen die anzahl der gesamtdateien zu bestimmen und dementsprechend die progressbar zu formen..klingt sehr kompliziert und wird mein programm warscheinlich unglaublich verlangsammen...die 2te mäöglichkeit ist: jedes mal wenn mein programm eine neue datei findet, schikt der 2te thread auf irgend eine art und weise dem hauptthread die anzahl der gefundenen dateien die auch noch aktualisiert werden müssen. soviel zum plan und da ich keine ahnung habe wie man das auch nur annärend passend zu meinem code umsetzt würde ich mich jetzt auf hilfe freuen...mist immer noch keine konkrete frage =)
Sorry, aber bei dem Geschreibsel Krieg ich ja Augenkrebs
Kannst du mal etwas öfter die Return-Taste bemühen.
Auch das Verwenden der Shift-Taste zum GROSS und klein Schreiben trägt zur Lesbarkeit bei

Ach ja, so dolle nutzen die auch nicht ab dabei

So please dry again
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
 
Heinziheinz

Registriert seit: 13. Apr 2011
28 Beiträge
 
#9

AW: progressbar/dateien

  Alt 13. Apr 2011, 23:24
okej nochmal langamm und deutlich :

ich habe gut und schlechte Nachrichten (für mich):

1) ich weis jetzt was ein thread ist und wofür man ihn brauch

jetzt zu den schlechten:

zu meinen Fragen:

1) Progressbar: anscheint sehr schwer umzusetzen, da ich die Gesamtanzahl der Dokumente brauche und aus der Differenz dieser und der schon gefundenen Dateien die Position der Progressbar ermitteln kann. Verlangsamt mein Programm um ein vielfaches und für mich als Anfänger unmöglich umzusetzen.

2) Rückmeldung des threads: Schon eher mein Fall. Ich muss den code den ich da habe in einen 2ten thread packen, dieser soll dann Rückmeldungen an meinen hauptthread geben wie weit er ist und dabei meinen Hauptthread aktualisieren. Soviel zur theorie

3) Mein gröstes Problem: ich habe keinen blassen Schimmer wie ich die 2te Möglichkeit anständig in einen PASSENDEN code umsetze und anwende. Jetzt kommt die Hilfe ins spiel =)
 
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#10

AW: progressbar/dateien

  Alt 13. Apr 2011, 23:43
1)
Bei den Links gab es einen charmanten Ansatz wie man den maximalen Wert für den Fortschritt ungefähr ermitteln kann.
Man ermittelt den belegten Speicherplatz der Festplatte und nimmt diesen als Max-Wert.
Als Fortschritt summiert man die Größe der gefundenen Dateien

2)
Suche hier im Forum mal nach den Schlagwörtern Hier im Forum suchenSynchronize bzw. hier wohl besser geeignet Hier im Forum suchenQueue

3)
Ein Thread ist eigentlich relativ einfach aufgebaut.
http://www.delphipraxis.net/1081121-post39.html da ein Beispiel mit einem Thread in einem kompletten Programm (Source und Exe)
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
 
Thema geschlossen
Seite 1 von 4  1 23     Letzte »    


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 +1. Es ist jetzt 02: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