AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Verzeichnisse in Listbox auflisten

Ein Thema von Lamy · begonnen am 6. Mai 2004 · letzter Beitrag vom 8. Mai 2004
Antwort Antwort
Seite 1 von 5  1 23     Letzte »    
Lamy

Registriert seit: 11. Apr 2004
119 Beiträge
 
Delphi 7 Personal
 
#1

Verzeichnisse in Listbox auflisten

  Alt 6. Mai 2004, 17:43
Hi!

Soo, habs jetzt so weit dass mein "Client" das Verzeichnis in einer Listview anzeigt - allerdings immernoch alles zusammen - Dateiname, Datum, Zugriffsrechte....


Wie kann ich diese ganzen Werte aus der Stringliste extrahieren um sie dann in "Colums" sortirt anzeigen zu können?

Danke schonmal!

Lamy
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#2

Re: Verzeichnisse in Listbox auflisten

  Alt 6. Mai 2004, 17:46
Wie hast du die Daten in der StringList vorliegen? Du musst die erstmal aufspalten, dann kannst du mit
  ListView1.Items[Index].SubItems.Add(<Detail>); eine neue Spalte hinzufügen. Beachte dass du aber zuerst die Eigenschaft Columns der ListView entsprechend konfigurieren musst.
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Lamy

Registriert seit: 11. Apr 2004
119 Beiträge
 
Delphi 7 Personal
 
#3

Re: Verzeichnisse in Listbox auflisten

  Alt 6. Mai 2004, 17:51
Zitat von alcaeus:
Wie hast du die Daten in der StringList vorliegen? Du musst die erstmal aufspalten, dann kannst du mit
  ListView1.Items[Index].SubItems.Add(<Detail>); eine neue Spalte hinzufügen. Beachte dass du aber zuerst die Eigenschaft Columns der ListView entsprechend konfigurieren musst.

So wird die Stringliste "aufgeladen" und in die Listview übertragen:
Delphi-Quellcode:
    Form1.Listftpdir.Items.Clear; // Verzeichnisanzeige leeren
    IdFTP1.List(Stringliste);
    FOR i := 1 TO Stringliste.Count DO
      WITH Form1.Listftpdir.Items.Add DO
        Caption := Stringliste.Strings[i - 1];
Aber ich weiß beim besten Willen nicht wie die Dateien in der Stringliste vorliegen - wie kann ich das rausfinden und aufsplitten?

P.S.: immer die aktuellste Verion [wen's interessiert, s' gibt noch nicht viel was man machen kann^^]: http://www.a.toolsnfun.de/ftpclient/update.exe
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#4

Re: Verzeichnisse in Listbox auflisten

  Alt 6. Mai 2004, 18:32
Also, die Daten werden mit Leerzeichen getrennt. Speicher mal einen Entrag der Stringlist in eine Datei, dann kann ich ihn auch besser analysieren. Soviel zum ersten Thema. Zum zweiten, dein Programm. Ein FTP-Client ist ja ganz nett, aber erstens würde ich gern von der Update-Funktion ein Fenster sehen, welches mir anzeigt dass die Datei heruntergeladen wird. So weiß ich ob das Programm hängt oder was los ist. Zweitens, Bringe die Fenster in den Mittelpunkt des Geschehens, also des Bildschirms. Drittens, ich sehe keinen Grund, das Fenster für Verbindung herstellen und Einstellungen als bsSizeable einzustellen. Mach die beiden als bsDialog, so kann man die Größe nicht mehr ändern. Und last but definitely not least:
Ein Plaintext-Passwort in einer INI-Datei im Verzeichnis des Programms ist für mich ein Grund das Programm zu löschen und den Programmierer zu terminieren. Auch wenns nur eine Beta ist, aber nachdem du das Passwort in den Edits brav versteckst, kannst du es auch verschlüsselt in die INI geben. Also, ändere das bitte schnellstens!
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Lamy

Registriert seit: 11. Apr 2004
119 Beiträge
 
Delphi 7 Personal
 
#5

Re: Verzeichnisse in Listbox auflisten

  Alt 6. Mai 2004, 18:43
Zitat von alcaeus:
Also, die Daten werden mit Leerzeichen getrennt. Speicher mal einen Entrag der Stringlist in eine Datei, dann kann ich ihn auch besser analysieren. Soviel zum ersten Thema. Zum zweiten, dein Programm. Ein FTP-Client ist ja ganz nett, aber erstens würde ich gern von der Update-Funktion ein Fenster sehen, welches mir anzeigt dass die Datei heruntergeladen wird. So weiß ich ob das Programm hängt oder was los ist. Zweitens, Bringe die Fenster in den Mittelpunkt des Geschehens, also des Bildschirms. Drittens, ich sehe keinen Grund, das Fenster für Verbindung herstellen und Einstellungen als bsSizeable einzustellen. Mach die beiden als bsDialog, so kann man die Größe nicht mehr ändern. Und last but definitely not least:
Ein Plaintext-Passwort in einer INI-Datei im Verzeichnis des Programms ist für mich ein Grund das Programm zu löschen und den Programmierer zu terminieren. Auch wenns nur eine Beta ist, aber nachdem du das Passwort in den Edits brav versteckst, kannst du es auch verschlüsselt in die INI geben. Also, ändere das bitte schnellstens!

1.: Wie kann ich das denn in ner Datei speichern? *keineahnunghat*
2.: Danke für die Kritik! Ich wollte eh noch fragen wie man das Resizen unterbinden kann aber wie kriege ichs in den Mittelpunkt des Bildschirms? Zum Thema Passwort: Ich hatte sowiso noch vor das zu verschlüsseln und dann in der .ini zu speichern oder vielleicht in der Registry aber erstmal eins nach dem andern ...

Wie gesagt, vielen Dank für Kritik & Tips, aber lieber back2Topic sonst wird der Thread wieder geschlossen *angst*

Lamy
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#6

Re: Verzeichnisse in Listbox auflisten

  Alt 6. Mai 2004, 18:52
Ok, also, du kanst den String auch in ein Edit reinschreiben oder sonstwas, hauptsache du kannst eines der Elemente in der StringList mit Ctrl+C kopieren und dann hier posten. Mich interessiert ob das mit Tabs oder sowas gelöst wird. Bezüglich der Position: die Eigenschaft "Position" des Forms auf poMainFormCenter setzen, um das Form in der Mitte des Hauptformulars anzeigen zu lassen. Aber wieder zurück zum Topic. Setze einen Breakpoint in die Schleife, und werte mit Strg+F7 ein Feld der Stringlist aus. Dann kopierst du das Ergebnis und stellst es hier online, ich habe leider keine Zeit ein FTP-Programm zu schreiben um das herauszufinden. Aber sowas Ähnliches hats hier schon mal gegeben:
http://www.delphipraxis.net/internal...ighlight=idftp
Ganz wichtig sein könnte dieser Beitrag:
http://www.delphipraxis.net/internal...=161613#161613
Ich habs nicht probiert, also, viel Glück...

PS: Wegen dem Passwort: Na dann lieber mal nicht abspeichern als Plaintext, wirklich...
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Lamy

Registriert seit: 11. Apr 2004
119 Beiträge
 
Delphi 7 Personal
 
#7

Re: Verzeichnisse in Listbox auflisten

  Alt 6. Mai 2004, 23:27
Also, so hab ichs verstanden:

stringliste[0] wäre Zugriffsrechte 11 jaschu-mac4win homepages 4096 May 5 14:47 .

Jetzt suche ich die Trennzeichen mit pos [die Leerzeichen], und mit copy splitte ich mir dann den ersten block ab.

Aber wie ging das nu?
In der Delphihilfe habsch schon nachgeguckt, ist aber nicht aufschlussreich für mich...
  Mit Zitat antworten Zitat
Benutzerbild von DataCool
DataCool

Registriert seit: 10. Feb 2003
Ort: Lingen
909 Beiträge
 
Delphi 10.3 Rio
 
#8

Re: Verzeichnisse in Listbox auflisten

  Alt 7. Mai 2004, 01:39
HI Lamy,

ich hab ne Funktion geschrieben, die einen TExt automatisch anhand eines Trennzeichen aufsplittet und das ERgebnis in eine STringList schreibt.

DAs sollte Dir weiter helfen :

Code:
// splittet einen bestehenden String anhand eines Trennzeichen in mehere Strings auf
Function VBSplit(Liste : TStringList; Text2Split : String; SeperatorStr : String) : Boolean;
Var Posi      : Longint;
      strTemp : String;
      strPart : String;
      bInLoop : Boolean;
      sepLen : Longint;
begin
   result := true;
   bInLoop := false;
   try
      //Liste leeren
      Liste.clear;
      strTemp  := Text2Split;
      sepLen   := Length(SeperatorStr);
      Posi     := Pos(SeperatorStr,strTemp);
      While Posi > 0 do begin
         bInLoop := true;
         strPart := Copy(strTemp,1,Posi-1);
         Liste.Add(strPart);
         strTemp := copy(strTemp,Posi+sepLen,Length(strTemp)-(Posi+sepLen-1));
         Posi   := Pos(SeperatorStr,strTemp);
      end;
      if (bInLoop) or (Length(strTemp)>0) then
         Liste.add(strTemp);
   except
      Result := false;
   end;
end;
GRuß Data
Der Horizont vieler Menschen ist ein Kreis mit Radius Null, und das nennen sie ihren Standpunkt.
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#9

Re: Verzeichnisse in Listbox auflisten

  Alt 7. Mai 2004, 08:25
@DataCool: Nix gegen dich persönlich aber deine Funktion ist ziemlich unperformant da du mit copy ständig nen riesen string neu zusammensetzt... Von der Performance her sollte folgende Procedure um einiges besser sein..
Delphi-Quellcode:
procedure splitString(const Source: String; const Delimiter: String; var Dest: TStringlist);
var count: Integer;
    LStartpos, LEndepos, LSourcelength: Integer;
begin
 Dest.Clear;
 count := 1;
 LStartpos := 0;
 LEndepos := 0;
 LSourcelength := length(Source);
 while count <= LSourcelength do
 begin
  if copy(Source, count, length(Delimiter)) = Delimiter then
  begin
   LEndepos := count;
   dest.Add(copy(Source, LStartpos + 1, LEndepos - LStartpos - 1));
   LStartpos := count + length(Delimiter) - 1;
   count := count + length(Delimiter);
  end else begin
   count := count + 1;
  end;
 end;
 if LEndePos <> Count - length(Delimiter) then
    dest.Add(copy(Source, LStartpos + 1, count - LStartpos - 1));
end;

Hab eben noch nen kleinen Test durchgeführt. Meine Funktion brauchte für einen kleinen String von 10 MB (jedes vierte zeichen ein Delimiter) zwischen 7 und 8 Sekunden. Die Funktion von Datacool wurde jedesmal nach ca 13 Sekunden mit dem Fehler "Out of Memory" beendet. Keine Ahnung wann bei meiner Funktion so eine Meldung kommmt. Den größten String den ich bisher damit zerlegt hab war ein etwa 50 MB großer String (Datenbank-Tabellen-Abbild)
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
7. Mai 2004, 08:28
Dieses Thema wurde von "Sharky" von "Internet / IP / LAN" nach "VCL-Komponenten und Controls" verschoben.
Irgendwie fehlt mir der Bezug zu LAN
Antwort Antwort
Seite 1 von 5  1 23     Letzte »    


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 05:10 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