| Autor |
Beitrag |
Novo
      
Beiträge: 90
Win XP, Win 7
Delphi 7 Enterprise, Delphi 2009
|
Verfasst: So 07.10.07 15:50
Ich habe ein Projekt hier:
www.delphi-forum.de/viewtopic.php?p=465623
Sourcecode zum Nachvollziehen gibts im Link oben!
Dazu habe ich ein paar fragen:
Ich habe eine TListView mit 3 Spalten (Links, Größe, Status) und X Einträgen
Ich kann die Dateigröße ermitteln von einem Link... wie aber kann ich
von allen Links die Dateigröße ermitteln und anzeigen lassen?
greez Novo
Moderiert von Gausi: Topic aus VCL (Visual Component Library) verschoben am So 07.10.2007 um 16:25
Zuletzt bearbeitet von Novo am So 07.10.07 19:00, insgesamt 1-mal bearbeitet
|
|
Gausi
      
Beiträge: 8554
Erhaltene Danke: 481
Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
|
Verfasst: So 07.10.07 16:24
Solange du mit dem Download nicht anfängst, geht das so weit ich weiß überhaupt nicht. Woher soll dein Programm auch wissen, wie groß irgendeine Datei irgendwo im Netz ist.
Wenn der DL läuft, hängt das wohl davon ab, wie du das genau runterlädst - die Indys können sowas bestimmt 
_________________ We are, we were and will not be.
|
|
IceBube
      
Beiträge: 231
|
Verfasst: So 07.10.07 16:55
Alle Links mit einer Schleife durchgehen....
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26:
| var client : TidHttp; Size : real; i : integer; begin client := TidHttp.Create(nil); client.AllowCookies := false; client.HandleRedirects := true; for i := 0 to ListView.Items.Count-1 do begin Application.ProcessMessages; client.Head(ListView.Items.Item[i].Caption); Size := client.Response.ContentLength;
Size := Size / 10000; ListView.Items.Item[i].SubItems.Strings[0] := floatToStr(Size) + ' Mb';
client.Disconnect; end;
client.Free; |
lg
|
|
Novo 
      
Beiträge: 90
Win XP, Win 7
Delphi 7 Enterprise, Delphi 2009
|
Verfasst: So 07.10.07 16:55
Gausi hat folgendes geschrieben: | | Solange du mit dem Download nicht anfängst, geht das so weit ich weiß überhaupt nicht. Woher soll dein Programm auch wissen, wie groß irgendeine Datei irgendwo im Netz ist. |
Das geht schon, denn ich hab ein Programm, beidem deas Funktioniert:
Der läd erst die Links aus der .ini Datei und dann werden nach und nach die Dateigrößen angezeigt.
EDIT:
So kann ich die Dateigröße einer Datei kommen, wenn ich sie Runterladen will.
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8:
| procedure TForm1.IdHTTP1Work(ASender: TObject; AWorkMode: TWorkMode; AWorkCount: Integer); lblDatei.Caption := IntToStr(AWorkCount div 1024) + ' KB von ' + KB+' KB';
procedure TForm1.IdHTTP1WorkBegin(ASender: TObject; AWorkMode: TWorkMode; AWorkCountMax: Integer); KB := IntToStr(AWorkCountMax div 1024); |
Siehe Screen:
EDIT:
Das ist das Original Programm, was ich da aus Spass versuche, nachzuprogrammieren!

|
|
IceBube
      
Beiträge: 231
|
Verfasst: So 07.10.07 17:06
|
|
Novo 
      
Beiträge: 90
Win XP, Win 7
Delphi 7 Enterprise, Delphi 2009
|
Verfasst: So 07.10.07 17:13
IceBube hat folgendes geschrieben: | Alle Links mit einer Schleife durchgehen....
...
lg |
Habe es genau so unter Form1.Create eingegeben, aber es kommt:
---------------------------
Benachrichtigung über Debugger-Exception
---------------------------
Im Projekt Project1.exe ist eine Exception der Klasse EStringListError aufgetreten. Meldung: 'Listenindex überschreitet das Maximum (0)'. Prozess wurde angehalten. Mit Einzelne Anweisung oder Start fortsetzen.
---------------------------
OK Hilfe
---------------------------
|
|
IceBube
      
Beiträge: 231
|
Verfasst: So 07.10.07 17:40
^Weil
Delphi-Quelltext 1:
| ListView.Items.Item[i].SubItems.Strings[0] := floatToStr(Size) + ' Mb'; |
Ich wusste nicht wieviel SubItems du hast^
P.s: In der Fehlermeldung steht es bereits - das der Index von 0 überschritten ist! Dann gibts das "SubItems.Strings[0] nicht!!!
Ich denke du hast beim Hinzufügen des Items in die ListView folgendes vergessen:
Delphi-Quelltext 1: 2: 3: 4:
| var Item : TListItem; begin Item := ListView.Items.Add; Item.SubItems.Apppend('') |
|
|
Novo 
      
Beiträge: 90
Win XP, Win 7
Delphi 7 Enterprise, Delphi 2009
|
Verfasst: So 07.10.07 19:13
EDIT:
Ok habs jetzt, aber als wass wird denn Size angegeben?
In Kilobyte?
na weil 8945,9477 MB kan nnet stimmen
KB sind a aber au net
|
|
Novo 
      
Beiträge: 90
Win XP, Win 7
Delphi 7 Enterprise, Delphi 2009
|
Verfasst: So 07.10.07 22:50
-> FAST ERLEDIGT, die richtige Formatierung fehlt noch .. also XXX.XXX oder XX.XXX <-
Wie in dem Screenshot paar posts obendrüber!
Also ich mein
entweder 100.000 KB
oder 10.000 KB
immer 3 stellen von hinten ein '.'
|
|
Novo 
      
Beiträge: 90
Win XP, Win 7
Delphi 7 Enterprise, Delphi 2009
|
Verfasst: Mo 08.10.07 20:47
Novo hat folgendes geschrieben: | -> FAST ERLEDIGT, die richtige Formatierung fehlt noch .. also XXX.XXX oder XX.XXX <-
Wie in dem Screenshot paar posts obendrüber!
Also ich mein
entweder 100.000 KB
oder 10.000 KB
immer 3 stellen von hinten ein '.' |
keiner?
FormatFload bringts da irgendwie nicht
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mo 08.10.07 21:09
Aber Format ganz bestimmt.
|
|
Novo 
      
Beiträge: 90
Win XP, Win 7
Delphi 7 Enterprise, Delphi 2009
|
Verfasst: Di 09.10.07 20:10
Luckie hat folgendes geschrieben: | | Aber Format ganz bestimmt. |
Danke hättst gleich code dazugeben könn aber ok thx
werd mal F1 bemühen
greez Novo
|
|
IceBube
      
Beiträge: 231
|
Verfasst: Di 09.10.07 20:53
|
|
Novo 
      
Beiträge: 90
Win XP, Win 7
Delphi 7 Enterprise, Delphi 2009
|
Verfasst: Mi 10.10.07 18:09
Nach langem wühlen
www.dsdt.info/tipps/?id=151
aber ich schaffs bloss, 3 stellen von vorne...
3 stellen von hinten net
greez Novo
|
|
Masteryugi
Hält's aus hier
Beiträge: 6
|
Verfasst: Do 11.10.07 22:49
Titel: Die lösung naht^^
|
|