AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Nur bestimmte Dateien eines Ftp Ordners anzeigen
Thema durchsuchen
Ansicht
Themen-Optionen

Nur bestimmte Dateien eines Ftp Ordners anzeigen

Ein Thema von Blumi · begonnen am 11. Jul 2005 · letzter Beitrag vom 11. Jul 2005
Antwort Antwort
Benutzerbild von Blumi
Blumi

Registriert seit: 11. Jul 2005
Ort: Basel
96 Beiträge
 
Delphi 2005 Personal
 
#1

Nur bestimmte Dateien eines Ftp Ordners anzeigen

  Alt 11. Jul 2005, 16:57
Hi

Wie schon im Titel zu lesen, möchte ich in einer CheckListBox nur vorher bestimmte Dateien anzeigen.

Zurzeit füge ich meine Daten so zur CheckListBox dazu:
Delphi-Quellcode:
    IdFTP1.List(LS);
    CheckListBox1.Items.Assign(LS);
Wie kann ich jetzt Dateien die ich nicht möchte löschen oder nur diejenigen dazufügen in einer leeren Liste?
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#2

Re: Nur bestimmte Dateien eines Ftp Ordner anzeigen

  Alt 11. Jul 2005, 17:45
Hier ein Beispiel zum löschen von Dateinamen aus der Liste.

Delphi-Quellcode:
// alle Dateien löschen, die .exe oder .dll beinhalten
procedure CleanList(list:TStrings);
var
   i : integer;
begin
   // Wichtig: vom Ende zum Anfang löschen
   for i:=list.count-1 downto 0 do
   begin
      if (Pos(list[i], '.exe')>0) or (Pos(list[i], '.dll')>0) then
         list.Delete(i);
   end;
end;

  CleanList(CheckListBox1.Items);
Andreas
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#3

Re: Nur bestimmte Dateien eines Ftp Ordner anzeigen

  Alt 11. Jul 2005, 17:49
Manchmal kann man die gewünschten Dateien auch mit einer wildcard expression anfordern und spart sich das iterative Filtern hinterher:

FTP.List(sl, '*.txt', false); Grüße vom marabu
  Mit Zitat antworten Zitat
Benutzerbild von Blumi
Blumi

Registriert seit: 11. Jul 2005
Ort: Basel
96 Beiträge
 
Delphi 2005 Personal
 
#4

Re: Nur bestimmte Dateien eines Ftp Ordner anzeigen

  Alt 11. Jul 2005, 21:04
Ok das funzt schon jetzt kann ich aber nur 2 Dateien auschliessen so:

Delphi-Quellcode:
begin
   // Wichtig: vom Ende zum Anfang löschen
   for i:=list.count-1 downto 0 do
   begin
      if (Pos(list[i], 'wichtigedatei1.zip')>0) or (Pos(list[i], 'nächstewichtige2.zip')>0) then
   // Diese Dateien in Ruhe lassen, die anderen alle aus der Liste entfernen
      else
         list.Delete(i);
   end;
end;
Wie kann ich jetzt aber mehrere auschliessen, ein 2. or wird nicht vertragen und mit Kommas bring ich auch nichts fertig ;(


Edit:

Ok ich bin jetzt so vorgegangen:

procedure CleanList(list:TStrings);
var
i : integer;
dateien: string;
exparr: TStringDynArray;
begin
// Wichtig: vom Ende zum Anfang löschen
dateien := 'wichtigedatei1.zip||nächstewichtige2.zip||nochmal seinedatei3.zip$'; // Dieser String wird in das Array geschrieben.
exparr := explode('$', dateien); // String in Array speichern.

for i:=list.count-1 downto 0 do
begin
if Pos(list[i], exparr[i])>0 then
// Diese Dateien in Ruhe lassen, die anderen alle aus der Liste entfernen
else
list.Delete(i);
end;
end;


Aber jetzt löscht es mir alle Dateien, das ist mir wirklich unklar ??
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#5

Re: Nur bestimmte Dateien eines Ftp Ordners anzeigen

  Alt 11. Jul 2005, 21:49
Oder so:

Delphi-Quellcode:
function Intersect(sl1, sl2: TStringList): TStringList;
var
  i: integer;
begin
  Result := TStringList.Create;
  Result.Sorted := true;
  Result.Duplicates := dupIgnore;
  Result.AddStrings(sl1);
  Result.AddStrings(sl2);
  for i := Result.Count - 1 downto 0 do
    if (sl1.IndexOf(Result[i]) < 0)
    or (sl2.IndexOf(Result[i]) < 0) then
      Result.Delete(i);
end;
Grüße vom marabu
  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 01:14 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