Autor Beitrag
Novo
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 90

Win XP, Win 7
Delphi 7 Enterprise, Delphi 2009
BeitragVerfasst: 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 user profile iconGausi: 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8554
Erhaltene Danke: 481

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: 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 :nixweiss:

_________________
We are, we were and will not be.
IceBube
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 231



BeitragVerfasst: So 07.10.07 16:55 
Alle Links mit einer Schleife durchgehen....

ausblenden 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
//Erstelle Client
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;

//Umrechnen in Mb, Kb oder bytes -
Size := Size / 10000//Umrechnung weiß ich jetzt nicht - ausprobieren...

//Eintragen
ListView.Items.Item[i].SubItems.Strings[0] := floatToStr(Size) + ' Mb';

//Disconnect
client.Disconnect;
end;

//Freigeben
client.Free;


lg
Novo Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 90

Win XP, Win 7
Delphi 7 Enterprise, Delphi 2009
BeitragVerfasst: So 07.10.07 16:55 
user profile iconGausi 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.

ausblenden 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!
user defined image
IceBube
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 231



BeitragVerfasst: So 07.10.07 17:06 
ausblenden Delphi-Quelltext
1:
Das geht schon, denn ich hab ein Programm, beidem deas Funktioniert:					


Nein....um an die Dateigröße einer Datei im Internet zu kommen muss man erst kontakt mit der Datei bekommen(siehe oben Code)....Mit der Funktion "client.Head" werden halt nur die Header heruntergeladen - !

.: Das Programm von dem du sprichst macht das bestimmt auch soo!

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
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);


^Auch eine Möglichkeit nur meiner Meinung etwas aufwendiger(unötige Proceduren) - wenn man es auch einfach mit "ContentLength" bekommen kann .)

Moderiert von user profile iconChristian S.: Quote- durch Delphi-Tags ersetzt
Novo Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 90

Win XP, Win 7
Delphi 7 Enterprise, Delphi 2009
BeitragVerfasst: So 07.10.07 17:13 
user profile iconIceBube 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 231



BeitragVerfasst: So 07.10.07 17:40 
^Weil

ausblenden 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:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
var Item : TListItem;
begin
Item := ListView.Items.Add;
Item.SubItems.Apppend(''//Wenn du das nicht hinzufügst...tritt der Fehler auf!
Novo Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 90

Win XP, Win 7
Delphi 7 Enterprise, Delphi 2009
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 90

Win XP, Win 7
Delphi 7 Enterprise, Delphi 2009
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 90

Win XP, Win 7
Delphi 7 Enterprise, Delphi 2009
BeitragVerfasst: Mo 08.10.07 20:47 
user profile iconNovo 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



BeitragVerfasst: Mo 08.10.07 21:09 
Aber Format ganz bestimmt.
Novo Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 90

Win XP, Win 7
Delphi 7 Enterprise, Delphi 2009
BeitragVerfasst: Di 09.10.07 20:10 
user profile iconLuckie hat folgendes geschrieben:
Aber Format ganz bestimmt.

Danke hättst gleich code dazugeben könn aber ok thx
werd mal F1 bemühen :P



greez Novo
IceBube
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 231



BeitragVerfasst: Di 09.10.07 20:53 
Novo Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 90

Win XP, Win 7
Delphi 7 Enterprise, Delphi 2009
BeitragVerfasst: Mi 10.10.07 18:09 
user profile iconIceBube hat folgendes geschrieben:
Suche bei Google FORMAT :DELPHI


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



BeitragVerfasst: Do 11.10.07 22:49 
Titel: Die lösung naht^^
also hier, des is der code:
ausblenden Delphi-Quelltext
1:
edit2.Text:=Format('%3.0n',[strtofloat(edit1.Text)])					

was folgendes ergibt:
ausblenden Quelltext
1:
2:
10425 -->10.425
104254356 -->104.254.356

So um deine anderen Probleme kümmere ich mich noch- eins haste jetzt weniger :wink: