Einzelnen Beitrag anzeigen

Benutzerbild von Tyler
Tyler

Registriert seit: 19. Jun 2003
Ort: Berlin
241 Beiträge
 
#4

Re: Übergabe von Werten aus MemoBox, ListBox etc.

  Alt 2. Sep 2003, 19:04
naja, ich geh davon aus das der Code stimmt, weil´s ja eigentlich keine Fehlermeldung gibt, und man dabei nich so viel falsch machen kann, denk ich...

... ok, ich weiß, nicht denken, nachdenken!

Also, 1. die Procedure um den Verzeichnis-Inhalt auszulesen:

Delphi-Quellcode:
procedure TForm1.FindAllFiles(RootFolder: string; Mask: string = '*.*'; Recurse: Boolean = True);

var
  SR: TSearchRec;
begin
  if AnsiLastChar(RootFolder)^ <> '\then
    RootFolder := RootFolder + '\';

  // * * * * *
  // nur bis einschließlich Delphi 4 benötigt
  if Mask = 'then
    Mask := '*.*';
  // * * * * *

  if Recurse then
    if FindFirst(RootFolder + '*.*', faAnyFile, SR) = 0 then
      try
        repeat
          if SR.Attr and faDirectory = faDirectory then
            // --> ein Verzeichnis wurde gefunden
            // der Verzeichnisname steht in SR.Name
            // der vollständige Verzeichnisname (inkl. darüberliegender Pfade) ist
            // RootFolder + SR.Name
            if (SR.Name <> '.') and (SR.Name <> '..') then
              FindAllFiles(RootFolder + SR.Name, Mask, Recurse);
        until FindNext(SR) <> 0;
      finally
        FindClose(SR);
      end;
  if FindFirst(RootFolder + Mask, faAnyFile, SR) = 0 then
    try
      repeat
        if SR.Attr and faDirectory <> faDirectory then
        begin
          // --> eine Datei wurde gefunden
          // der Dateiname steht in SR.Name
          // der vollständige Dateiname (inkl. Pfadangabe) ist
          // RootFolder + SR.Name

          // folgende Zeile schreibt den vollständigen Namen in eine Memo Feld des
          // Formulars Form1
          Form1.ListBox1.Items.Add(SR.Name);
        end;
      until FindNext(SR) <> 0;
    finally
      FindClose(SR);
    end;
end;
Das führt die Prozedure aus (auf ButtonClick):

FindAllFiles('C:\test\','*.txt',false); Und hiermit übergebe ich auf ButtonClick den ersten (respektive beliebigen) Wert:

Label1.Caption := ListBox1.Items.ValueFromIndex[0]; mfG
  Mit Zitat antworten Zitat