AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi liste alle FTP Daten. hatt noch kleine Fehler

liste alle FTP Daten. hatt noch kleine Fehler

Ein Thema von Deltachaos · begonnen am 9. Mai 2008 · letzter Beitrag vom 14. Mai 2008
Antwort Antwort
Seite 2 von 3     12 3   
Benutzerbild von Deltachaos
Deltachaos

Registriert seit: 20. Feb 2008
Ort: Berlin
195 Beiträge
 
Delphi 7 Personal
 
#11

Re: liste alle FTP Daten. hatt noch kleine Fehler

  Alt 10. Mai 2008, 13:07
Zitat von Die Muhkuh:
Doch, kann sie.
Ok.
Ich hab jetzt mal angefangen:

Delphi-Quellcode:
procedure list(inhalt: string);
var strlist: tstringlist;
    ver_merk: string;
    ex, dir_ja, dir_nein: boolean;
    sl,z,d: integer;
begin
  form1.IdFTP1.List(form1.ListBox2.Items,'',false);
  for z:=0 to form1.ListBox2.Count-1 do
  begin
    for sl:=0 to length(form1.ListBox2.Items[z]) do
      if form1.ListBox2.Items[z][sl]= '/'
        then form1.IdFTP1.ChangeDirUp;
    for d:=0 to length(form1.ListBox2.Items[z]) do
    begin
      dir_ja:= false;
      dir_nein:= true;
      if form1.ListBox2.Items[z][d]= '.'
        then
        begin
          dir_ja:= true;
          dir_nein:= false;
        end;
    end;
    if dir_nein then
    begin
      ver_merk:= ver_merk + form1.ListBox2.Items[z] + '/';
      list(form1.ListBox2.Items[z]);
    end;
    if dir_ja
    then
    begin
      form1.ListBox1.AddItem(ver_merk + form1.ListBox2.Items[z], TObject (form1));
    end;
  end;
end;
Ich komme aber irgendwie nicht weiter.
Es werden jetzt wieder alle verzeichnisse und Daten gelistet di im root liegen.
Maximilian Ruta
  Mit Zitat antworten Zitat
Nuclear-Ping
(Gast)

n/a Beiträge
 
#12

Re: liste alle FTP Daten. hatt noch kleine Fehler

  Alt 10. Mai 2008, 13:09
Zitat von Deltachaos:
Achja und eine procedure kan sich doch nicht nochmal selbst aufrufen oder?
Wie Manuel schon sagte: Doch, kann sie. Sie macht dann genau das gleiche mit dem neuen übergebenen Parameter und wenn sie fertig ist, kehrt sie zurück und macht da weiter, wo sie aufgehört hat.

[edit]
Bau dir doch erstmal eine Funktion, die lokal auf der Festplatte rekursiv Verzeichnisse auflistet. Wie Manuel schon sagte: Such mal in der CodeLib von der DP, da sind Funktionen irgendwo, die das machen. Gehe sie durch (Breakpoints, F8) und verstehe sie. Dann setze das nach FTP um.
[/edit]
  Mit Zitat antworten Zitat
Benutzerbild von Deltachaos
Deltachaos

Registriert seit: 20. Feb 2008
Ort: Berlin
195 Beiträge
 
Delphi 7 Personal
 
#13

Re: liste alle FTP Daten. hatt noch kleine Fehler

  Alt 10. Mai 2008, 15:26
ok Ich hab schon angefangen

Delphi-Quellcode:
procedure list(dir: string);
var d, all: integer;
    dirja: boolean;
begin
  form1.IdFTP1.ChangeDir(dir);
  form1.IdFTP1.List(form1.ListBox3.Items, '*', false);
  for all:=0 to form1.ListBox3.Count-1 do
  begin
    dirja:= true;
    for d:=0 to length(form1.ListBox3.Items[0]) do
      begin
        if form1.ListBox3.Items[0][d]= '.'
        then
        begin
          form1.ListBox2.AddItem(form1.ListBox3.Items[0], TObject (form1));
          form1.ListBox3.Items.Delete(0);
          dirja:= false;
        end;
      end;
    if dirja then
    begin
      list(form1.ListBox3.Items[0]);
      form1.ListBox3.Items.Delete(0);
    end;
  end;
end;
Ich binn eigenlich der meinung das das richtig ist aber irgendwie will es noch nicht so wie ich will.
auserdem brauche ich ja den kompletten pfad zur datei wie mache ich dass?
Maximilian Ruta
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.768 Beiträge
 
Delphi 10.4 Sydney
 
#14

Re: liste alle FTP Daten. hatt noch kleine Fehler

  Alt 10. Mai 2008, 18:23
Guten Abend,

mein Vorschlag zum Auflisten der Verzeichnisse eines
FTP Servers.
Getestet habe ich mit einem linux FTP-Server und es bestehen
gute Chancen das der Code mit einem Windows FTP-Server nicht funktionieren wird.

Delphi-Quellcode:
procedure getFtpSubFolder(ftp:TidFtp;rootFolder:String;folderList:TStringList);
var
  sl: TStringList;
  i: Byte;
begin
  sl := TStringList.create;
  // mask blanks
  rootFolder:=StringReplace(rootFolder,' ','\ ',[rfReplaceAll]);
  // get directorylist with details
  ftp.List(sl,rootFolder+'*',true);
  if sl.count > 0 then
    begin
      for i:=0 to sl.count -1 do
        begin
          if sl[i][1] = 'dthen // is it a folder
            begin
              // cut directory name
              sl[i]:=copy(sl[i],57,length(sl[i]));
              // add to folder list
              folderList.Add(rootFolder+sl[i]);
              // get subfolders from directory
              getFtpSubFolder(ftp,rootFolder+sl[i]+'/',folderList);
            end;
        end;
    end;
  sl.free;
end;

Angewendet wird es so:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  sl :TStringList;
begin
  sl := TStringList.Create;
  idftp1.Host:='****';
  idftp1.Username:='****';
  idftp1.Password:='****';
  idftp1.Connect();
  getFtpSubFolder(idftp1,'/',sl);
  idftp1.Disconnect;
  memo1.Lines.Assign(sl);
  sl.free;
end;
[edit]

.. und noch eine Variante die alle Dateien und Verzeichnisse auflistet.

Delphi-Quellcode:
procedure getFtpFileList(ftp:TidFtp;rootFolder:String;folderList:TStringList);
var
  sl: TStringList;
  i: Byte;
  FName: String;
begin
  sl := TStringList.create;
  // mask blanks
  rootFolder:=StringReplace(rootFolder,' ','\ ',[rfReplaceAll]);
  // get directorylist with details
  ftp.List(sl,rootFolder+'*',true);
  if sl.count > 0 then
    begin
      for i:=0 to sl.count -1 do
        begin
          // cut directory name
          FName:=copy(sl[i],57,length(sl[i]));

          if sl[i][1] = 'dthen // is it a folder
            begin
               // add to folder list
               folderList.Add(rootFolder+FName+'/');

              // get subfolders from directory

              getFtpFileList(ftp,rootFolder+FName+'/',folderList);
            end
          else
            begin
              // add Filename to list
              folderList.Add(rootFolder+FName);
            end;
        end;
    end;
  sl.free;
end;

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Benutzerbild von Deltachaos
Deltachaos

Registriert seit: 20. Feb 2008
Ort: Berlin
195 Beiträge
 
Delphi 7 Personal
 
#15

Re: liste alle FTP Daten. hatt noch kleine Fehler

  Alt 11. Mai 2008, 16:28
also funktioniren tut es nicht. meine frage warum??
Maximilian Ruta
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#16

Re: liste alle FTP Daten. hatt noch kleine Fehler

  Alt 11. Mai 2008, 17:01
Hat jemand eben ne Glaskugel für mich?
  Mit Zitat antworten Zitat
Benutzerbild von Der.Kaktus
Der.Kaktus

Registriert seit: 22. Jan 2008
Ort: Erfurt
958 Beiträge
 
Delphi 7 Enterprise
 
#17

Re: liste alle FTP Daten. hatt noch kleine Fehler

  Alt 11. Mai 2008, 17:04
Zitat von Die Muhkuh:
Hat jemand eben ne Glaskugel für mich?
Aber klar doch..hab noch ne grosse und "alte" liegen..die kann weg *ggg*
Gruss Kaki

Repeat Until true=false;
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#18

Re: liste alle FTP Daten. hatt noch kleine Fehler

  Alt 11. Mai 2008, 17:04
Freut mich, dass jemand noch eine hat. Ich schick Dir per PN grad meine Postadresse
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.768 Beiträge
 
Delphi 10.4 Sydney
 
#19

Re: liste alle FTP Daten. hatt noch kleine Fehler

  Alt 11. Mai 2008, 20:19
Guten Abend,

Glaskugel habe ich auch keine.
Was es sein könnte das die Prozedur bei dem Aufruf unbekannt ist.
In meinem simplen Beispielprojekt wurde die Prozedur
vor der ButtonClick Methode eingefügt.
Daher ist sie in der ButtonClick Methode bekannt weil
vorher definiert.

Du kannst die Prozedur auch gerne zur Methode
Deiner Klasse machen.

Dann würde der Prozedurkopf so ausschauen:
procedure TForm1.getFtpFileList(ftp:TidFtp;rootFolder:String;folderList:TStringList); Und die Klassendefinition so:

Delphi-Quellcode:
TForm1 = class(TForm)
   ...
    procedure Button1Click(Sender: TObject);
  private
    procedure getFTPFileList(ftp:TidFtp;rootFolder:String;folderList:TStringList);
    { Private declarations }
  public
    { Public declarations }
  end;
Anbei noch das Beispielproject mit Screenshot, exe und pas.

.. gerne geschehen.

Grüße
Klaus
Angehängte Dateien
Dateityp: zip project1_144.zip (240,9 KB, 19x aufgerufen)
Klaus
  Mit Zitat antworten Zitat
Benutzerbild von Deltachaos
Deltachaos

Registriert seit: 20. Feb 2008
Ort: Berlin
195 Beiträge
 
Delphi 7 Personal
 
#20

Re: liste alle FTP Daten. hatt noch kleine Fehler

  Alt 13. Mai 2008, 15:12
Also bei mir siet dass so aus.

http://www.fos-clan.com/max/ftp.jpg
Maximilian Ruta
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:43 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz