AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Rekursiver Aufruf von FTPFindFirstFile
Thema durchsuchen
Ansicht
Themen-Optionen

Rekursiver Aufruf von FTPFindFirstFile

Ein Thema von hsbc · begonnen am 5. Jun 2008 · letzter Beitrag vom 18. Mär 2012
Antwort Antwort
momo54321

Registriert seit: 18. Mär 2012
16 Beiträge
 
#1

AW: Rekursiver Aufruf von FTPFindFirstFile

  Alt 18. Mär 2012, 09:22
hi,
bin noch neu im thema delphi.
wie ruf ich denn die procedure auf?

so gehts leider nicht:
ListDir('/public_html/install2/',Treeview1,'/');
Code:
[DCC Error] Unit1.pas(1806): E2010 Incompatible types: 'TTreeView' and 'TTreeNode'

Geändert von momo54321 (18. Mär 2012 um 12:45 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#2

AW: Rekursiver Aufruf von FTPFindFirstFile

  Alt 18. Mär 2012, 09:47
Wie sieht denn Deine Prozedur aus, die aus #4 kann es ja nicht sein ... dann wäre der 3. Parameter falsch, nicht der 2.
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
whiteF

Registriert seit: 14. Okt 2008
45 Beiträge
 
#3

AW: Rekursiver Aufruf von FTPFindFirstFile

  Alt 18. Mär 2012, 12:00
hi, doch, der aus #4.

ich habe noch nie mit nodes und treeview gearbeitet, deswegen weiss ich nich in wie fern da was hin muss.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.558 Beiträge
 
Delphi 12 Athens
 
#4

AW: Rekursiver Aufruf von FTPFindFirstFile

  Alt 18. Mär 2012, 12:10
Ich hab's jetzt auch nicht im Kopf, aber die OH oder ein Tutorial zum TTreeView wird bestimmt helfen. (alternatif auch die Forensuche)
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#5

AW: Rekursiver Aufruf von FTPFindFirstFile

  Alt 18. Mär 2012, 12:14
die Meldung wenn o.g. Prozedur verwenden würdest wäre
Code:
[DCC Fehler] xxxx.pas(30): E2033 Die Typen der tatsächlichen und formalen Var-Parameter müssen übereinstimmen
Deine Prozedur scheint als 2. Parameter eine Treenode zu erwarten ...
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.558 Beiträge
 
Delphi 12 Athens
 
#6

AW: Rekursiver Aufruf von FTPFindFirstFile

  Alt 18. Mär 2012, 13:30
Ich weiß nicht was daran so schwer ist, mal kurz selber in die OH zu schauen? Das wäre schneller gegangen, als hier zu fragen und andere erst nachsehn lassen zu müssen.

In deiner Funktion findest du, daß dieses aNode an AddChildObject übergeben wird und da kann man nachlesen, daß man für NIL angeben kann/muß, wenn man zum Beispiel den Rootknoten haben möchte, bzw. einen Hauptknoten erstellen will.
Beim TTreeView gibt man NIL an, wärend man z.B. beim VirtualTreeView das RootNode-Property verwendet, wenn ich mich richtig erinnere.

Und genau dafür gibt es Tutorials und die OH.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (18. Mär 2012 um 13:33 Uhr)
  Mit Zitat antworten Zitat
momo54321

Registriert seit: 18. Mär 2012
16 Beiträge
 
#7

AW: Rekursiver Aufruf von FTPFindFirstFile

  Alt 18. Mär 2012, 13:40
das angeben von nil geht allerdings auch nur wenn man im proceduren kopf das var entfernt.
nil hatte ich ja schon ausprobiert und es ging nicht, siehe Fehler:
[DCC Error] Unit1.pas(1837): E2033 Types of actual and formal var parameters must be identical


also, so funktioniert der kram zumindest bei mir nun:
Delphi-Quellcode:
procedure ListDir(dir: String; const tv: TTreeView; tn: TTreeNode);
var
  itm: TIdFTPListItems;
  i: Integer;
  node: TTreeNode;
  tmp: string;
begin
  Form1.ftp.ChangeDir(dir);
  Form1.ftp.List;
  itm := Form1.ftp.DirectoryListing;
  for i := 0 to itm.count-1 do begin
  //showmessage(InttoStr(itm.count-1)); // Showmessage
    if itm.Items[i].ItemType = ditDirectory then begin
      if itm.Items[i].Filename <> '.then begin
      node := tv.Items.AddChild(tn, itm.Items[i].Filename);
      //showmessage(itm.Items[i].Filename + ' / L: ' + IntToStr(Length(itm.Items[i].Filename))); // Showmessage
      listdir(itm.items[i].filename, tv, node);
      Form1.ftp.ChangeDirUp;
      Form1.ftp.list;
      itm := Form1.ftp.DirectoryListing;
      end;
    end
    else
      form1.treeview1.Items.addChild(tn, itm.Items[i].filename+' ['+inttostr(itm.items[i].size)+']');
  end;
end;

procedure TForm1.PngSpeedButton1Click(Sender: TObject);
begin

FTP.Host := FTP.Text;
FTP.Port := StrToInt(FTPport.Text);
FTP.Username := FTPlogin.Text;
FTP.Password := FTPpw.Text;

FTP.Connect;

ListDir('/public_html/install2/', Treeview1, nil);

FTP.Disconnect;
end;
  Mit Zitat antworten Zitat
momo54321

Registriert seit: 18. Mär 2012
16 Beiträge
 
#8

AW: Rekursiver Aufruf von FTPFindFirstFile

  Alt 18. Mär 2012, 12:17
respekt vor deinen ganzen beiträgen hier im forum.
aber ich hab schon geschaut und an diesem sonntag, wollte ich auch mal etwas faul sein anstatt mich jetzt einige stunden in irgendetwas rein zu lessen, was ich höchstwahrscheinlich nie wieder nutzen werde. deshalb wäre es nett wenn mir jmd etwas nahe bringen könnte.
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#9

AW: Rekursiver Aufruf von FTPFindFirstFile

  Alt 18. Mär 2012, 12:42
@momo54321

dafür habe ich volles Verständnis, aber mir geht es genauso ...
Die Meldung passt nicht zu Deiner Beschreibung, zum Glaskugeln fehlt uns heute die Muße ...
Wenn Du etwas von Deinem Code (gegf. als Zip) hochlädst kann Dir sicher besser geholfen werden
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
momo54321

Registriert seit: 18. Mär 2012
16 Beiträge
 
#10

AW: Rekursiver Aufruf von FTPFindFirstFile

  Alt 18. Mär 2012, 12:51
ich hab eine idftp komponente auf meiner form. ich will nun mittels diesem script ein ordner auf einem ftp server löschen.
da man zum löschen jeden ordner/datei selbst zum löschen anweisen muss, muss ich wissen wo und wieviel ordner/dateien vorhanden sind.
hierbei hilft mir dieses script (mehr oder weniger oO ). Nachdem ich dann alles ausgelesen habe würde ich eine löschschleife einbauen.

hier ist mein code was dieses script angeht:

Delphi-Quellcode:
procedure ListDir(dir: String; const tv: TTreeView; var tn: TTreeNode);
var
  itm: TIdFTPListItems;
  i: Integer;
  node: TTreeNode;
  tmp: string;
begin
  Form1.ftp.ChangeDir(dir);
  Form1.ftp.List;
  itm := Form1.ftp.DirectoryListing;
  for i := 0 to itm.count-1 do begin
    if itm.Items[i].ItemType = ditDirectory then begin
      node := form1.treeview1.Items.AddChild(tn, itm.Items[i].Filename);
      listdir(itm.items[i].filename, form1.treeview1, node);
      Form1.ftp.ChangeDirUp;
      Form1.ftp.list;
      itm := Form1 .ftp.DirectoryListing;
    end
    else
      form1.treeview1.Items.addChild(tn, itm.Items[i].filename+' ['+inttostr(itm.items[i].size)+']');
  end;
end;

procedure TForm1.PngSpeedButton1Click(Sender: TObject);
var z, z1, z2, zahler: Integer;
List : TList;
ff : TIdFtpListItems;
begin

ListDir('/public_html/install2/', Treeview1, Treeview1.Items); // irgendwas passt nicht bez. TTreeNode
end;
  Mit Zitat antworten Zitat
Antwort Antwort


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 15:55 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