Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi String Durchsuchen lassen der vom FTP-Server kommt (https://www.delphipraxis.net/10189-string-durchsuchen-lassen-der-vom-ftp-server-kommt.html)

Informatix 13. Okt 2003 14:00


String Durchsuchen lassen der vom FTP-Server kommt
 
Hallo Leute

Habe folgendes Problem.

Ich habe mir ein FTP-Client Tool gebastelt mit der INDY Komponente unter
Borland Delphi 6 Enterprise.
Login und verbindungsaufbau klappen bisher einwandfrei.
Die daten die auf dem Server liegen werden mir auch in meiner Listview-Komponente angezeigt.
Das Problem das ich jetzt habe ist das der Datei-name alles mögliche enthält wie z.B entstehungsdatum, letzte mal geändert, grösse, dateiname, dateistruktur (unterverzeichnisse) und welcher user die datei draufgespielt hat aufm server.

Meine aufgabe ist es nun alle informationen aus dem String auslesen zu lassen und seperat zu speichen und bei bedarf wieder anzeigen zu lassen.
was auf jeden fall ausgegeben werden soll ist der dateiname (irgend wie logisch oder) und eventuell noch die grösse.

Ich hoffe einer nimmt sich meiner an und kann mir helfen.
habe mehrere foren durchforstet und bisher nix gefunden was mir helfen könnte.

Vielen dank im voraus.
Euer Informatix

Wormid 13. Okt 2003 14:29

Re: String Durchsuchen lassen der vom FTP-Server kommt
 
Mal als Beispiel... ExtractStrings liesse sich dazu ganz nett verwenden.

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var DirList, ParseList: TStringList;
    i, x: Integer;
begin
  DirList  := TStringList.Create;
  ParseList := TStringList.Create;
  idFTP1.List(DirList);
  for i := 0 to DirList.Count - 1 do
  begin
    Listbox1.Items.Add('-> ' + DirList[i]);
    for x := 0 to ExtractStrings([' '], [' '], PChar(DirList[i]), ParseList) - 1 do
      Listbox1.Items.Add(ParseList[x]);
    ParseList.Clear;
  end;
  DirList.Free;
  ParseList.Free;
end;
Das Problem an der detalierten Liste ist, das sie nicht bei jedem Server gleich aussehen muss... Daher dieser Hinweis in der OH:

Zitat:

When ADetails is True, List can return FTP server-dependent details including the file size, date modified, and file permissions for the Owner, Group, and User.

An application must be able to parse the detailed list format based on the FTP server type identified in SystemDesc.
Wie das in der Praxis aussieht, ob der String bei unterschiedlichen Servern wirklich verschieden aufgebaut ist, das weiss ich leider nicht.

Edit: Source editiert... hatte vergessen die Objekte zu zerstören...

Informatix 13. Okt 2003 14:32

Re: String Durchsuchen lassen der vom FTP-Server kommt
 
Vielen dank für diese zügige antwort.
Werde es gleich mal testen.

Ich sehe gerade das du eine Listbox verwendet hast. Aber das kann ich sicherlich irgend wie umbasteln das es auch in eine Listview reinpasst.

dennoch vielen dank

Also irgend wie habe ich es nicht eingebaut bekommen

mein quelltext sieht wie folgt aus

Code:
        begin
         listview2.Clear;
         tsr:=TStringlist.Create;
         idftp1.List(tsr);            
         listview2.Items.BeginUpdate;

         for i:=1 to tsr.Count-1
          do begin
            s:=tsr.Strings[i];
            if IsPOInString(s) then         //überprüft ob im dateiname das Wort 'PO' vorkommt
            ShowMessage('PO vorhanden.')
            else if IsPSInString(s) then   // überprüft ob im dateiname das Wort 'PS' vorkommt
            ShowMessage ('PS vorhanden')
             else ShowMessage('None vorhanden'); //andernfalls isses das wort 'NONE'
            tli:=listview2.Items.Add;       // fügt das objekt/datei in listview2 ein
            tli.Caption := tsr.Strings[i];
          end;
         listview2.Items.EndUpdate;
         end;

wie ihr sehen könnt habe ich schon eine komponente aus dem string ausgelesen, nur wenn ich das für alle so machen würde würde das unmengen an quellcode bedeuten. hoffe also einer kann mir eine schneller variante posten

Informatix 14. Okt 2003 11:13

Re: String Durchsuchen lassen der vom FTP-Server kommt
 
SO hab die lösung.
Brauch also eure Hilfe nun nimmer, zumindest nicht zu dieser frage :-D

Tom 14. Okt 2003 11:15

Re: String Durchsuchen lassen der vom FTP-Server kommt
 
War ich hilfreich?

Luckie 14. Okt 2003 11:34

Re: String Durchsuchen lassen der vom FTP-Server kommt
 
Bieten die Indys keine Möglichkeit, dass die Infos gleich aufgeschlüsselt werden? Die fastnet konnten das damals noch.

Informatix 14. Okt 2003 13:37

Re: String Durchsuchen lassen der vom FTP-Server kommt
 
Ja wie zum beispiel "Size" bloss da kam bei mir dann imma -1 was soviel wie
"Integer - Size of the file or -1 when unknown" bedeutet, denn auf den server auf den ich zugreife die dateigrösse in als blöcke und spuren angeben wird.

habe das problem aber aus der weltgeschaft mit einer stringlist.


@tom
Zitat:

PS: Begründung: Bei der Fragestellung wurden Informationen vorenthalten, die an anderer Stelle schon gestern gepostet wurden.
Ich habe keine Informationen zurückgehalten. Es wird ja wohl erlaubt sein auf mehreren Seiten nach kompetenter hilfe nachzufragen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:43 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