![]() |
Einfache Schleife kann ich nicht lösen! :-(
Hallo,
Hab ne ziehmliche Anfängerfrage. 1. WO genau kann ich schleifen zu erstellen richtig lernen?(Unser Inf-Lehrer hatte uns das nie richtig erklärt! :-( ..Leider) 2. Ich habe eine Listbox und möchte jeden eintrag durchgehen das der für eine Funktion benutzt wird genauer gesagt soll jeder wert für "HIER" (bei dHTTP1.Get(HIER, fs);)eingetragen werden und nahceinander runtergeladen in C:\Windows\Temp\
Delphi-Quellcode:
procedure TForm1.Button3Click(Sender: TObject);
var fn: TFileName; fs : TFileStream; begin fn := 'C:\Windows\Temp\'; fs := TFileStream.Create(fn, fmCreate); try try IdHTTP1.Get(HIER, fs); except end; finally FreeAndNil(fs); end; end; end; Danke für eure Hilfe?!? |
Re: Einfache Schleife kann ich nicht lösen! :-(
|
Re: Einfache Schleife kann ich nicht lösen! :-(
schau mal hier in der Forenhilfe oder in der OH nach:
for, while oder until Mfg tobi //roter kasten :-( |
Re: Einfache Schleife kann ich nicht lösen! :-(
danke das geht ja schnell hier :-)
|
Re: Einfache Schleife kann ich nicht lösen! :-(
Delphi-Quellcode:
Ist die schleife dann so richtig
For i:= 0 to listbox1.items.count - 1 do
fn := 'C:\Windows\Temp\allcover\'; fs := TFileStream.Create(fn, fmCreate); IdHTTP1.Get(HIER, fs); end; finally FreeAndNil(fs); end; Was kommt dann bei HIER(muss ja jedes mal ein andres ITEM sein)rein? |
Re: Einfache Schleife kann ich nicht lösen! :-(
Schau mal
![]() |
Re: Einfache Schleife kann ich nicht lösen! :-(
Zitat:
|
Re: Einfache Schleife kann ich nicht lösen! :-(
mhh hab ich probiert, er möchte aber das ich einen string dafür benutze wie kann ich das dann lösen?
... es gibt keine überladenen Verison von "Get" die man mit diese Argumenten..... |
Re: Einfache Schleife kann ich nicht lösen! :-(
IntToStr(i); ;-)
|
Re: Einfache Schleife kann ich nicht lösen! :-(
mist hatt ich vergessen *vorkopfhau* :-D danke!
|
Re: Einfache Schleife kann ich nicht lösen! :-(
Folgendes fiel mir bei deinem Code auf:
Delphi-Quellcode:
Pack das vor die Schleife, der Wert verändert sich ja nicht in der Schleife
fn := 'C:\Windows\Temp\allcover\';
Delphi-Quellcode:
Pack das in eine
fs := TFileStream.Create(fn, fmCreate);
IdHTTP1.Get(HIER, fs);
Delphi-Quellcode:
Damit ist sichergestellt, dass die Resource geschützt ist und das Objekt auf jedenfall freigegeben wird.
try
fs := TFileStream.Create(fn, fmCreate); IdHTTP1.Get(HIER, fs); finally fs.Free; end; Gruß, Stefan |
Re: Einfache Schleife kann ich nicht lösen! :-(
Danke es kommt jetzt nur der fehler 404 sprich dateinciht gefundne wenn ich für HIER i nehm
|
Re: Einfache Schleife kann ich nicht lösen! :-(
I hat immer den Wert des schleifendurchlaufs also 1,2,3 usw.
|
Re: Einfache Schleife kann ich nicht lösen! :-(
Zitat:
![]() Gruß Hawkeye |
Re: Einfache Schleife kann ich nicht lösen! :-(
@Hawkeye: Mein Fehler, muss natürlich so lauten
Delphi-Quellcode:
@la.reunion: Hinter das "For i:= 0 to listbox1.items.count - 1 do" muss dringend ein Begin schließend mit einem End, sonst führt er nur das fs := TFileStream.Create(fn, fmCreate); in einer Schleife aus und macht des Rest ausserhalb.
fn := 'C:\Windows\Temp\allcover\';
For i:= 0 to listbox1.items.count - 1 do begin fs := TFileStream.Create(fn, fmCreate); try IdHTTP1.Get(listbox1.items[i], fs); finally fs.Free; end; end; |
Re: Einfache Schleife kann ich nicht lösen! :-(
:witch: z.b.
|
Re: Einfache Schleife kann ich nicht lösen! :-(
DANKEE!!!
Delphi-Quellcode:
mhhh er sagt immer der pfad kann nciht gefunden/erstellt erden!??! was ist da?(auch wenn ich +listbox1.items[i] weglasse)
fn := 'C:\Windows\Temp\'+listbox1.items[i];
|
Re: Einfache Schleife kann ich nicht lösen! :-(
Moin la.reunion,
ich habe da mal eine Frage: Was steht eigentlich in der Listbox? BTW: So wie das bisher aussieht wird es aber nicht funktionieren können, da das Erzeugen des FileStreams auf ein Verzeichnis verweist, nicht auf eine Datei. |
Re: Einfache Schleife kann ich nicht lösen! :-(
Ist denn überhaupt was in der listbox drin? denn ohne gehts ja nich ;)
|
Re: Einfache Schleife kann ich nicht lösen! :-(
HAbe mal drein links rein(sind ja die gleichen aber is ja egal)
...waren die ganze zeit shcon drin ...
Delphi-Quellcode:
Inzwischen sagt er dann das der Listenindex überschritten wurde!
http://images.amazon.com/images/P/B00006L71B.03._SCLZZZZZZZ_.jpg
[url]http://images.amazon.com/images/P/B00006L71B.03._SCLZZZZZZZ_.jpg[/url] [url]http://images.amazon.com/images/P/B00006L71B.03._SCLZZZZZZZ_.jpg[/url] Danke für eure MÜHE!!! |
Re: Einfache Schleife kann ich nicht lösen! :-(
Probiers mal so:
Delphi-Quellcode:
For i:= 0 to listbox1.items.count - 1 do begin
fn := 'C:\Windows\Temp\allcover\Cover_' + IntToStr(I) + '.jpg'; fs := TFileStream.Create(fn, fmCreate); try IdHTTP1.Get(listbox1.items[i], fs); finally fs.Free; end; end; |
Re: Einfache Schleife kann ich nicht lösen! :-(
So geht es JUHU!!!!!
DANKE VIELMALS!!! Jetzt muss ich nur mal alle Links aus der XML Datei extrahieren! um die in die Listbox einzutragen! |
Re: Einfache Schleife kann ich nicht lösen! :-(
Freut mich, nun solltest du das
Delphi-Quellcode:
Durch etwas ersetzen das den Dateinamen der zu downloadenden Datei enthält. Ich denke hier im Forum wirst du fündig.
fn := 'C:\Windows\Temp\allcover\Cover_' + IntToStr(I) + '.jpg';
|
Re: Einfache Schleife kann ich nicht lösen! :-(
Vielen dank! nochmals
ich hbae dann noch ein kleines prob und zwar wenn ich dann in der listbox ein item anklicke soll es in einem image1 angezeigt werden der code wäre doch dann nur für einen selektierten eintrag? oder nicht? For i:= 0 to listbox1.items.count - 1 do begin Listbox1.item[ItemIndex] mhh ne des falsch |
Re: Einfache Schleife kann ich nicht lösen! :-(
Du musst einfach in das "OnClick" Ereignis der Listbox das hier schreiben:
Delphi-Quellcode:
Davon ausgehend das in der Listbox die Pfade zu der jeweiligen Datei stehen.
procedure TForm1.ListBox1Click(Sender: TObject);
begin Image1.Picture.LoadFromFile(ListBox1.Items[ListBox1.Itemindex]); end; Wenn du .jpg Bilder anzeigen lassen willst muss du oben in der uses Klausel noch JPEG einbinden. :zwinker: |
Re: Einfache Schleife kann ich nicht lösen! :-(
danke!
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:56 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