Web Funktionen ?



  • hallo

    vornweg: hab noch nie irgendetwas bezüglich Web, Internet gemacht und sehe in der 'Flut' der Komponeten, die anscheinlich irgend etwas mit Web zu tun haben nicht durch. lol
    Ich möchte einen Ordner auf einem Internet Server durchsuchen nach bestimmten Dateien. Wie man auf dem eigenem System Ordner durchsucht und Dateien findet, weiß ich, aber wie ist das im Internet ?
    Welche Komponete(n) benutzt man für sowas am besten. Ist sowas überhaupt ohne weiteres möglich ?

    Danke



  • Welche Komponete(n) benutzt man für sowas am besten.

    FTP = FileTransferProtokoll

    Ist sowas überhaupt ohne weiteres möglich ?

    Wenn du auf den Server das Recht hast per FTP zuzugreifen -> ja



  • danke erstmal, werd mal versuchen. 🙂



  • funktionier alles soweit gut !
    Habe aber ein Problem bei der NMFTP Componente.
    Wenn ich NMFTP->Nlist(); aufrufe, bleib ich dort irgendwie hängen. Code läuf also nicht weiter, wie ne endlos Schleife.
    Benutze ich NMFTP->List() funktioniert es, jedenfall meistens. Ab und zu passiert das gleiche. 😕 Ich brauche aber nur die Dateinamen.
    Im Beispiel von BCB (Example) wird es genauso benutzt und es funktioniert ! Was mach ich falsch ?

    danke



  • a) das Kommando heisst NLST
    b) es holt nur Directory's. Gibt es die da?



  • NLST ?? Hab ich nicht !

    Komponente TNMFTP
    
    Deklaration
    
    procedure Nlist;
    
    Beschreibung
    
    Die Methode NList liest eine Liste von Dateien und Unterverzeichnissen im aktuellen Verzeichnis ein.
    
    Hinweis:
    
    Für jedes aufgelistete Element wird das Ereignis OnListItem einmal ausgelöst.
    Ist der Befehl erfolgreich, wird das Ereignis OnSuccess ausgelöst, anderenfalls wird das Ereignis OnFailure ausgelöst. In beiden Fällen wird cmdNList als Parameter Trans_Type an das Ereignis übergeben.
    

    Es gibt Directory's und manchmal geht es auch, aber manchmal 'hängt' es. Wie gesagt, wie ne Endlos Schleife und ich kann mit nichts mehr abbrechen.
    Aber wenn sowas passiert, wie kann ich dies abfangen ?
    Hier der Beispielcode aus der BCB Online Hilfe bzw. vom Beispiel in \Examples\FastNet\FTP.

    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
      if (NMFTP1->Connected)
        NMFTP1->Disconnect();
      else
        {
          NMFTP1->Vendor = NMOS_AUTO;
          NMFTP1->Host = Edit1->Text;
          NMFTP1->UserID = Edit2->Text;
          NMFTP1->Password = Edit3->Text;
          NMFTP1->Connect();
        }
    }
    
    void __fastcall TForm1::Button2Click(TObject *Sender)
    {
      NMFTP1->Nlist();
    }
    
    void __fastcall TForm1::NMFTP1ListItem(AnsiString Listing)
    {
      Memo1->Lines->Add(Listing);
    }
    


  • wird das Ereignis OnSuccess ausgelöst, anderenfalls wird das Ereignis OnFailure ausgelöst.

    Die entsprechenden Routinen sehe ich nicht. Anhand derer musst du ja entscheiden, ob das Kommando erfolgreich war. Bestimmt gibt es eine globale Variable oder Funktion, die dir eine Fehlercode zurückgeben

    NLIST - NLST das "richtige" FTP Komando heisst NLST

    http://www.nsftools.com/tips/RawFTP.htm

    habe bisher nur mit der FTP Komponente von INDY gearbeitet.

    http://www.marquardtnet.info/cecke/programme.4/pocketftp.4k/4k_pocketftp.html



  • Christian211 schrieb:

    wird das Ereignis OnSuccess ausgelöst, anderenfalls wird das Ereignis OnFailure ausgelöst.

    Die entsprechenden Routinen sehe ich nicht. Anhand derer musst du ja entscheiden, ob das Kommando erfolgreich war. Bestimmt gibt es eine globale Variable oder Funktion, die dir eine Fehlercode zurückgeben

    hab ich OnFailure, auch alle anderen On... Ereignisse hab ich probiert, aber wie gesagt bleibt es hängen und nix geht mehr. Er liest die Liste ein und hängt dann. Wie gesagt aber nicht immer, nur ab und an. Vielleicht hängt es ja mit der Verbindung irgendwie zusammen, wäre aber dann wichtig es abzufangen, aber wie ?



  • Hab jetzt ne Indy Componente genommen -> keine Probleme mehr 🙂


Anmelden zum Antworten