Autor Beitrag
Dude566
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1592
Erhaltene Danke: 79

W8, W7 (Chrome, FF, IE)
Delphi XE2 Pro, Eclipse Juno, VS2012
BeitragVerfasst: Mo 20.04.09 18:44 
Hallo erstmal,

ich habe einen kleinen FTP Manager gecodet, und würde jetzt gerne eine Funktion einbauen die den Umgang erleichtern soll.

In einer ListBox lasse ich mit
ausblenden Delphi-Quelltext
1:
IdFTP.List(ListBox.Items);					

den Inhalt des aktuellen Verzeichnisses anzeigen.

Jetzt möchte ich das wenn der Benutzer ein Item wie eine Textdatei in der ListBox anklickt, und danach einen Button drückt, z.B. Löschen, das die Datei dann auch vom Server gelöscht wird.

Kann man das irgendwie machen,.... mit Itemdindex kann ich doch zumindest die Position herausfinden oder?

Achja gelöscht werden die Dateien wie folgt:
ausblenden Delphi-Quelltext
1:
IdFTP.RemoveDir(EditLoeschen.Text);					


Gruß Dude566

_________________
Es gibt 10 Gruppen von Menschen: diejenigen, die das Binärsystem verstehen, und die anderen.
Xentar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2077
Erhaltene Danke: 2

Win XP
Delphi 5 Ent., Delphi 2007 Prof
BeitragVerfasst: Mo 20.04.09 19:32 
Müsste sowas in der Art sein.
ausblenden Delphi-Quelltext
1:
ListBox.Items.Delete(ListBox.Itemindex);					

_________________
PROGRAMMER: A device for converting coffee into software.
Dude566 Threadstarter
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1592
Erhaltene Danke: 79

W8, W7 (Chrome, FF, IE)
Delphi XE2 Pro, Eclipse Juno, VS2012
BeitragVerfasst: Mo 20.04.09 21:13 
Damit löscht man ja aber nur den Inhalt aus der Listbox oder täusche ich mich?

Es soll ja die Datei dann auch vom Server gelöscht werden.

Also so irgendwie:
ausblenden Delphi-Quelltext
1:
IdFTP.RemoveDir(ListBox.ItemIndex);					

???

_________________
Es gibt 10 Gruppen von Menschen: diejenigen, die das Binärsystem verstehen, und die anderen.
Andreas L.
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1703
Erhaltene Danke: 25

Windows Vista / Windows 10
Delphi 2009 Pro (JVCL, DragDrop, rmKlever, ICS, EmbeddedWB, DEC, Indy)
BeitragVerfasst: Mo 20.04.09 21:44 
ausblenden Delphi-Quelltext
1:
IdFTP.RemoveDir(ListBox.Items[ListBox.ItemIndex]);					
Dude566 Threadstarter
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1592
Erhaltene Danke: 79

W8, W7 (Chrome, FF, IE)
Delphi XE2 Pro, Eclipse Juno, VS2012
BeitragVerfasst: Di 21.04.09 16:54 
Das blöde ist nur, das in der ListBox nicht nur der Dateiname angezeigt wird sondern auch Datum und Rechte.

siehe Anhang

Wie kann ich machen das er nur den Namen bekommt, auf diese Weise ja scheinbar nicht.
Einloggen, um Attachments anzusehen!
_________________
Es gibt 10 Gruppen von Menschen: diejenigen, die das Binärsystem verstehen, und die anderen.
jakobwenzel
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1889
Erhaltene Danke: 1

XP home, ubuntu
BDS 2006 Prof
BeitragVerfasst: Di 21.04.09 17:12 
Wenn du den Namen nicht nochmal in ner extra Liste gespeichert hast wirst du ihn wohl oder übel aus dem String rauspulen müssen. :roll:
Du solltest doch eigentlich wissen ob du die Liste nochmal extra hast. :wink:

_________________
I thought what I'd do was, I'd pretend I was one of those deaf-mutes.
Dude566 Threadstarter
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1592
Erhaltene Danke: 79

W8, W7 (Chrome, FF, IE)
Delphi XE2 Pro, Eclipse Juno, VS2012
BeitragVerfasst: Di 21.04.09 17:19 
Ich habe ja keine extra Liste weil ich auch nicht weis wie ich den Dateinamen wie du sagst
"rauspulen" kann.

Einen Vorschlag?

_________________
Es gibt 10 Gruppen von Menschen: diejenigen, die das Binärsystem verstehen, und die anderen.
jakobwenzel
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1889
Erhaltene Danke: 1

XP home, ubuntu
BDS 2006 Prof
BeitragVerfasst: Di 21.04.09 17:28 
Der einzige Doppelpunkt der in dem ganzen Ding vorkomt is der bei der Uhrzeit.
Mit Pos(':',s) findest du seine position im String. 4 dazu und du bist beim ersten Zeichen vom Dateinamen.
Rauskopieren kannst du ihn jetz mit Copy(s,Anfang,Länge), länge ist dabei length(s)-anfang.

_________________
I thought what I'd do was, I'd pretend I was one of those deaf-mutes.
Dude566 Threadstarter
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1592
Erhaltene Danke: 79

W8, W7 (Chrome, FF, IE)
Delphi XE2 Pro, Eclipse Juno, VS2012
BeitragVerfasst: Di 21.04.09 23:21 
Klappt alles prima, vielen Dank!

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
// Datei löschen
procedure TForm1.loeschenClick(Sender: TObject);
var
  loeschdatei : string;
  position : integer;
begin
if idFTP1.Connected then
  begin
  loeschdatei := ListBox1.Items[ListBox1.ItemIndex];
  position := Pos(':',loeschdatei)+4;
  loeschdatei := Copy(loeschdatei,position,Length(loeschdatei)-position+1);
  IdFTP1.Delete(loeschdatei);
  actdir;
  end
else
  ShowMessage ('Es besteht keine Verbindung.');
end;

_________________
Es gibt 10 Gruppen von Menschen: diejenigen, die das Binärsystem verstehen, und die anderen.
Andreas L.
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1703
Erhaltene Danke: 25

Windows Vista / Windows 10
Delphi 2009 Pro (JVCL, DragDrop, rmKlever, ICS, EmbeddedWB, DEC, Indy)
BeitragVerfasst: Mi 22.04.09 09:51 
Mehrere Angaben in einer Listbox? Ist das nicht ziemlich unübersichtlich? Ich würde die Dateien in einer ListView ausgeben lassen.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
  with ListView1.Items.Add do
  begin
    Caption := 'dateiname';
    SubItems.Add('erstellungsdatum');
    ...
    ImageIndex := 1//dateisymbol
  end;
Dude566 Threadstarter
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1592
Erhaltene Danke: 79

W8, W7 (Chrome, FF, IE)
Delphi XE2 Pro, Eclipse Juno, VS2012
BeitragVerfasst: Mi 22.04.09 18:58 
Ich weis aber nur wie ich den aktuellen Serverinhalt in einer ListBox anzeigen kann.

So wie du es geschrieben hast kann ich das ja nicht einfach übernehmen da ich ja keine Dateinamen bekomme.
Wenn dann müsste ich die ListBox auf invisible stellen, und nur die Dateinamen herauskopieren und im ListView anzeigen.

Oder wie denkst du darüber?

_________________
Es gibt 10 Gruppen von Menschen: diejenigen, die das Binärsystem verstehen, und die anderen.
FinnO
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1331
Erhaltene Danke: 123

Mac OSX, Arch
TypeScript (Webstorm), Kotlin, Clojure (IDEA), Golang (VSCode)
BeitragVerfasst: Mi 22.04.09 19:50 
du kannst den Namen ja aus dem String den du in die Listbox packst rauspulen und dann im Listview anzeigen.
jakobwenzel
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1889
Erhaltene Danke: 1

XP home, ubuntu
BDS 2006 Prof
BeitragVerfasst: Mi 22.04.09 20:04 
Naja, eleganter wäre es, die Daten vor dem zusammenschmeißen zu nehmen, denn ich glaub kaum dass die idFTP die nicht einzeln hat.
Dude566, zeig mal ein bisschen Eigeninitiative! Dein PC explodiert nicht, wenn du was falsch machst, auf jeden Fall solltest du dabei was lernen können. Du allein weißt wie dein Programm bisher aufgebaut ist. Wenn du gezeigt kriegst wie du einen Eintrag mit festem Text hinzufügst solltest du es doch schaffen da ne Schleife zu nehmen und die Einträge dynamisch zu füllen!

_________________
I thought what I'd do was, I'd pretend I was one of those deaf-mutes.
Dude566 Threadstarter
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1592
Erhaltene Danke: 79

W8, W7 (Chrome, FF, IE)
Delphi XE2 Pro, Eclipse Juno, VS2012
BeitragVerfasst: Mi 22.04.09 22:42 
Ja ich suche ja auch schon nach einer Methode die Dateien einzeln zu erhalten, doch mit Google und der Delphi Hilfe habe ich bisher nichts gefunden.

Weis auch nicht wirklich genau nach was ich im einzelnen suchen muss.

_________________
Es gibt 10 Gruppen von Menschen: diejenigen, die das Binärsystem verstehen, und die anderen.
jakobwenzel
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1889
Erhaltene Danke: 1

XP home, ubuntu
BDS 2006 Prof
BeitragVerfasst: Mi 22.04.09 22:44 
Nach einer Suche bei Google stößt man zum Beispiel hierauf:
www.delphipraxis.net...ist+directorylisting

_________________
I thought what I'd do was, I'd pretend I was one of those deaf-mutes.
Dude566 Threadstarter
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1592
Erhaltene Danke: 79

W8, W7 (Chrome, FF, IE)
Delphi XE2 Pro, Eclipse Juno, VS2012
BeitragVerfasst: Mi 22.04.09 22:55 
Der Begriff "directorylisting" ist mir z.B. unbekannt, aber danke ich werde mich dort mal einlesen. ;)

_________________
Es gibt 10 Gruppen von Menschen: diejenigen, die das Binärsystem verstehen, und die anderen.
Dude566 Threadstarter
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1592
Erhaltene Danke: 79

W8, W7 (Chrome, FF, IE)
Delphi XE2 Pro, Eclipse Juno, VS2012
BeitragVerfasst: Do 23.04.09 18:48 
Ich hab da nochmal ein Problem, ich weiß ja das ich den String nach einem "/" durchsuchen kann aber...

Ich habe einen Pfad wie diesen hier: /sachen/test/uploads/meins

Und ich möchte eine zurück Funktion einbauen also das letzte Verzeichnis von dem String abschnippeln. Wie finde ich denn da die Position heraus?

_________________
Es gibt 10 Gruppen von Menschen: diejenigen, die das Binärsystem verstehen, und die anderen.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Do 23.04.09 18:49 
Das geht mit ExtractFilePath(ExcludeTrailingPathDelimiter(...)), da der letzte Teil dann als Dateiname interpretiert wird. ;-)
Am Ergebnis hängt mit ExtractFilePath nen / dran, wenn du das nicht willst, nimm ExtractFileDir.


// EDIT:
Nein, doch nicht, wegen den / statt \ als Trennzeichen, dann musst du es eben selbst machen:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
var
  EndPos: Integer;
begin
  EndPos := Length(APath);
  while (EndPos >= 1and (AValue[EndPos] <> '/'do
    Dec(EndPos);
  ANewPath := Copy(APath, 1, EndPos);
So sollte in ANewPath der Oberordner mit / am Ende liegen.
Dude566 Threadstarter
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1592
Erhaltene Danke: 79

W8, W7 (Chrome, FF, IE)
Delphi XE2 Pro, Eclipse Juno, VS2012
BeitragVerfasst: Do 23.04.09 18:56 
Danke da wäre ich nie drauf gekommen, da fehlt mir noch das praktische Denken. :oops:

_________________
Es gibt 10 Gruppen von Menschen: diejenigen, die das Binärsystem verstehen, und die anderen.