Avatar billede darkside Nybegynder
14. juni 2001 - 17:59 Der er 43 kommentarer og
1 løsning

NMFTP

Hejsa,
Er der en måde man kan tjekke på om NMFTP er færdig med at hente filer, kig evt her:
http://www.eksperten.dk/spm/79101
Hvis den så er færdig så skal der kaldes en disconnect..
Avatar billede snowball Novice
14. juni 2001 - 18:08 #1
NMFTP komponentet har en OnSuccess event. Der kan du skrive følgende:

procedure TForm1.NMFTP1Success(Trans_Type: TCmdType);
begin
  if Trans_Type = cmdDownload then
    NMFTP1.Disconnect;
end;

Hvis du så skal hente flere filer, så må du jo lave en variabel der indeholder antallet af filer du skal hente og så checke antallet hver gang du får en OnSuccess event !

Snowball
Avatar billede ziron Nybegynder
14. juni 2001 - 18:10 #2
eller bare:

procedure TForm1.Button1Click(Sender: TObject);
begin
NMFTP1.UserID := \'nisse\';
NMFTP1.Password := \'nisse\';
NMFTP1.Host := \'ziron\';
NMFTP1.Connect;
NMFTP1.Download(\'Alien Song.mpg\', \'c:\\hej.avi\');
NMFTP1.Download(\'Alien Song.mpg\', \'c:\\hej1.avi\');
NMFTP1.Disconnect;
end;

/ZIRON
Avatar billede darkside Nybegynder
14. juni 2001 - 18:12 #3
snowball, hvordan gøres det lige? :)
Avatar billede ziron Nybegynder
14. juni 2001 - 18:13 #4
darkside >> kan du ikke bruge det jeg smed det virker fint her :-)

/ZIRON
Avatar billede darkside Nybegynder
14. juni 2001 - 18:14 #5
Jeg har 17 filer der skal hentes..
Avatar billede ziron Nybegynder
14. juni 2001 - 18:14 #6
så sætter du bare 17 filer ind...

/ZIRON
Avatar billede darkside Nybegynder
14. juni 2001 - 18:15 #7
Ziron>>Den skal stadigt læse i den textfil på http serveren
Avatar billede ziron Nybegynder
14. juni 2001 - 18:16 #8
dette virker også:

procedure TForm1.Button1Click(Sender: TObject);
begin
NMFTP1.UserID := \'nisse\';
NMFTP1.Password := \'nisse\';
NMFTP1.Host := \'ziron\';
NMFTP1.Connect;
NMFTP1.Download(\'Alien Song.mpg\', \'c:\\hej.avi\');
NMFTP1.Download(\'Alien Song.mpg\', \'c:\\hej1.avi\');
NMFTP1.Download(\'Alien Song.mpg\', \'c:\\hej2.avi\');
NMFTP1.Download(\'Alien Song.mpg\', \'c:\\hej3.avi\');
NMFTP1.Download(\'Alien Song.mpg\', \'c:\\hej4.avi\');
NMFTP1.Download(\'Alien Song.mpg\', \'c:\\hej5.avi\');
NMFTP1.Download(\'Alien Song.mpg\', \'c:\\hej6.avi\');
NMFTP1.Download(\'Alien Song.mpg\', \'c:\\hej7.avi\');
NMFTP1.Download(\'Alien Song.mpg\', \'c:\\hej8.avi\');
NMFTP1.Download(\'Alien Song.mpg\', \'c:\\hej9.avi\');
NMFTP1.Download(\'Alien Song.mpg\', \'c:\\hej10.avi\');
NMFTP1.Download(\'Alien Song.mpg\', \'c:\\hej11.avi\');
NMFTP1.Download(\'Alien Song.mpg\', \'c:\\hej12.avi\');
NMFTP1.Download(\'Alien Song.mpg\', \'c:\\hej13.avi\');
NMFTP1.Download(\'Alien Song.mpg\', \'c:\\hej14.avi\');
NMFTP1.Download(\'Alien Song.mpg\', \'c:\\hej15.avi\');
NMFTP1.Download(\'Alien Song.mpg\', \'c:\\hej16.avi\');
NMFTP1.Download(\'Alien Song.mpg\', \'c:\\hej17.avi\');
NMFTP1.Disconnect;
end;

/ZIRON
Avatar billede ziron Nybegynder
14. juni 2001 - 18:17 #9
ja det smider du bare ind i....

send til ziron@wanadoo.dk så sætter jeg det lige ind...

/ZIRON
Avatar billede darkside Nybegynder
14. juni 2001 - 18:19 #10
Ziron>>Jeg tror nu mere på at snowball har fat i det rigtige.
Avatar billede ziron Nybegynder
14. juni 2001 - 18:21 #11
darkside >> jaja men det andet virker jo....

/ZIRON
Avatar billede darkside Nybegynder
14. juni 2001 - 18:22 #12
Måske, men det er alt for meget kode..og jeg er ikke vild med den måde det er lavet på..
Avatar billede ziron Nybegynder
14. juni 2001 - 18:23 #13
bare lige så du ved det er helt samme kode som før...

send det lige så skal du se...

/ZIRON
Avatar billede darkside Nybegynder
14. juni 2001 - 18:25 #14
Hm, ja men det er for meget kode, det er bestemt ikke den optimale måde at lave det på..
Avatar billede ziron Nybegynder
14. juni 2001 - 18:25 #15
prøv nu lige...
Avatar billede darkside Nybegynder
14. juni 2001 - 18:28 #16
Nope, det kan ikke gøre det.!
Jeg skal bruge OnSuccess Event\'en
fordi jeg skal ha kørt noget kode når den er færdig med at hente
Avatar billede ziron Nybegynder
14. juni 2001 - 18:31 #17
procedure TForm1.Button1Click(Sender: TObject);
begin
NMFTP1.UserID := \'nisse\';
NMFTP1.Password := \'nisse\';
NMFTP1.Host := \'ziron\';
NMFTP1.Connect;
NMFTP1.Download(\'Alien Song.mpg\', \'c:\\hej.avi\');
NMFTP1.Download(\'Alien Song.mpg\', \'c:\\hej1.avi\');
NMFTP1.Download(\'Alien Song.mpg\', \'c:\\hej2.avi\');
NMFTP1.Download(\'Alien Song.mpg\', \'c:\\hej3.avi\');
NMFTP1.Download(\'Alien Song.mpg\', \'c:\\hej4.avi\');
NMFTP1.Download(\'Alien Song.mpg\', \'c:\\hej5.avi\');
NMFTP1.Download(\'Alien Song.mpg\', \'c:\\hej6.avi\');
NMFTP1.OnSuccess(cmdDownload);
end;

procedure TForm1.NMFTP1ListItem(Listing: String);
begin
Memo1.Lines.Add(Listing);
end;

procedure TForm1.NMFTP1Success(Trans_Type: TCmdType);
begin
if Trans_Type = cmdDownload then
    NMFTP1.Disconnect;

end;

/ZIRON
Avatar billede darkside Nybegynder
14. juni 2001 - 18:38 #18
Hm niks!
De linjer her skal helst ikke være med...
<--
NMFTP1.Download(\'Alien Song.mpg\', \'c:\\hej.avi\');
NMFTP1.Download(\'Alien Song.mpg\', \'c:\\hej1.avi\');
NMFTP1.Download(\'Alien Song.mpg\', \'c:\\hej2.avi\');
NMFTP1.Download(\'Alien Song.mpg\', \'c:\\hej3.avi\');
-->

Avatar billede ziron Nybegynder
14. juni 2001 - 18:39 #19
så fjern dem dog, det bare nogle linjer hvor jeg henter nogle filer...

/ZIRON
Avatar billede darkside Nybegynder
14. juni 2001 - 18:42 #20
Så nemt er det ikke lige, jo jeg kan jo bare fjerne dem, men så henter den ikke de filer den skal..!
Jeg har bare brug for at finde ud af hvornår den er færdig med at hente alle filerne så jeg kan kalde OnSuccess event\'en..
Avatar billede snowball Novice
14. juni 2001 - 18:46 #21
Prøver lige og brygge noget sammen ud fra det andet spørgsmål ! :)

Snowball
Avatar billede ziron Nybegynder
14. juni 2001 - 18:46 #22
okay med det ftp komponet så sætter du den til at downloade en fil og så tager den først den næste linje og derfor kan du bare sætte en diconnect på efter alle dine downloads...

/ZIRON
Avatar billede snowball Novice
14. juni 2001 - 19:15 #23
Noget i stil med dette ! Lav en variabel (Integer) og kald den count. Sæt værdien til 0 når du starter med at hente.

  if (Trans_Type = cmdDownload) AND (count >= Stringlist1.Count -1) then
    NMFTP1.Disconnect
  else
    Inc(count);

Ellers kan du lige prøve og sende din kode til mig på snowball@it.dk. Så skal jeg prøve og tilføje det :)

Snowball
Avatar billede darkside Nybegynder
14. juni 2001 - 19:18 #24
?
Kan du ikke prøve at lave et eks her?
Avatar billede snowball Novice
14. juni 2001 - 19:26 #25
Tjooo...Hvordan ser din din .txt fil ud ? er det bare \\folder\\filnavn.bla !?

Snowball
Avatar billede darkside Nybegynder
14. juni 2001 - 19:29 #26
Nej det er bare filnavn.exe
Men textfilen ligger jo på en http server som du kan se længere oppe
Avatar billede snowball Novice
14. juni 2001 - 20:01 #27
Sådan. Hent nedenstående projekt !

http://home1.inet.tele.dk/j-cgeert/ftp.zip

Så må du selv lige smide koden over i dit eget program :)

Snowball
Avatar billede darkside Nybegynder
14. juni 2001 - 20:07 #28
Snowball>Som sagt den textfil der skal læses ligger på en http server, den bliver ikke hentet ned, kun læst..
Avatar billede darkside Nybegynder
14. juni 2001 - 20:08 #29
Hvis jeg sender dig filen gider du så smide den ind?
Avatar billede darkside Nybegynder
14. juni 2001 - 20:11 #30
Fil sendt..
Avatar billede snowball Novice
14. juni 2001 - 20:37 #31
Sendt tilbage med ændringer !

Snowball

Avatar billede darkside Nybegynder
14. juni 2001 - 20:40 #32
Hm synes ikke den kalder disconnect?
Avatar billede snowball Novice
14. juni 2001 - 20:45 #33
Jo, helt nede i bunden !

  if (Trans_Type = cmdUpLoad) AND (count > Stringlist.Count - 1) then
    NMFTP1.Disconnect
  else
    Inc(count);

Snowball
Avatar billede darkside Nybegynder
14. juni 2001 - 20:49 #34
hm ja, men jeg smed en shellexecute i disconnect men der sker ikke noget
Avatar billede snowball Novice
14. juni 2001 - 20:51 #35
\"smed en shellexecute i disconnect\" !? Det forstår jeg ikke lige hvad du mener med !?

Snowball
Avatar billede darkside Nybegynder
14. juni 2001 - 20:54 #36
den kør aldrig disconnect
Avatar billede ziron Nybegynder
14. juni 2001 - 20:56 #37
darkside prøv nu lige at sende til mig, det du havde før snowball fik det...

ziron@wanadoo.dk

/ZIRON
Avatar billede snowball Novice
14. juni 2001 - 21:03 #38
hhmm...det virker fint hos mig...Har lavet lidt om i min Button1 så den passer til mine forhold:

  NMHTTP1.Get(\'http://172.16.23.147/filer.txt\');
  StringList := TStringList.Create;
  StringList.Text := NMHTTP1.Body;
  NMFTP1.Passive := true;
  NMFTP1.UserID :=\'username\';
  NMFTP1.Password := \'password\';
  NMFTP1.Host := \'172.16.23.147\';
  NMFTP1.Vendor := NMOS_AUTO;
  NMFTP1.ParseList := true;
  NMFTP1.Connect;

Og her disconnecter den fint når den har hentet alle de filer der står i 172.16.23.147/filer.txt !

Snowball
Avatar billede darkside Nybegynder
14. juni 2001 - 21:09 #39
Hm sært, den gør ikke her..
Avatar billede snowball Novice
14. juni 2001 - 21:12 #40
Har FTP\'en en offenlig IP !? Hvis den har, så prøv lige og mail IP, username og password til mig så jeg kan teste det med de rigtige filer og servere !

Snowball
Avatar billede darkside Nybegynder
14. juni 2001 - 21:26 #41
<--
  if (Trans_Type = cmdUpLoad) AND (count > Stringlist.Count - 1) then
    NMFTP1.Disconnect
  else
    Inc(count);
-->
Skal det ikke være cmdDownload?
Avatar billede snowball Novice
14. juni 2001 - 22:07 #42
Nej, det skal være cmdUpload. Don\'t ask me why ;)

G6 FTP Server bytter også \"om på dem\" :)

Snwoball
Avatar billede snowball Novice
17. juni 2001 - 19:02 #43
darkside: Har sendt programmet til dig igen ! Det skulle virke nu ;)

Til jerandre kan jeg så sige at problemet lå i at han checkede for om man havde nogle af filerne i forvejen og det tog jeg ikke lige højde for da jeg bare kiggede på om den havde hentet det totale antal filer der stod i StringList\'en !

Snowball
Avatar billede snowball Novice
23. juni 2001 - 23:05 #44
darkside: Kan du ikke lukke spørgsmålet hvis du ikke har mere og spørge om !? ;)

Snowball
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester