Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Im TreeView Dateien ohne endung (https://www.delphipraxis.net/150022-im-treeview-dateien-ohne-endung.html)

Uwe 111 5. Apr 2010 18:59


Im TreeView Dateien ohne endung
 
Hallo und Frohe Ostern noch

Mein Problem ist, ich habe dieTreeView aus ein Ordner befüllt. Aber ich möchte die endungen wie .txt nicht haben.
Also zum Beispiel die Datei Test.txt soll nur Test im Treeview stehen.

Hier mein Quellcode wie ich die TreeView befüllt habe

Delphi-Quellcode:
type
  pNodeInfo = ^tNodeInfo;
  tNodeInfo = record
      Path: Boolean;
      Name: String;
    end;


procedure TForm1.FindFilesTree(aTree: tTreeView; aPath: String;
  aNode: tTreeNode; aWithFiles: Boolean);
Var
  SearchRec: tSearchRec;
  NodeTmp: tTreeNode;
  Info: pNodeInfo;
Begin
  aTree.Items.BeginUpdate;

  // Wenn am Ende der Pfadangabe noch kein \ steht, dieses hinzufügen
  If aPath [Length (aPath)] <> '\' Then
    aPath := aPath + '\';

  If FindFirst (aPath + '*.*', faDirectory, SearchRec) = 0 Then
    Begin
      Repeat
        // Wenn es sich um ein Verzeichnis handelt
        If (SearchRec.Attr and faDirectory = faDirectory)
          and (SearchRec.Name[1] <> '.')
        Then
          Begin
            If (SearchRec.Attr and faDirectory > 0) then
              Begin
                New (Info);
                Info^.Path := True;
                Info^.Name := aPath + SearchRec.Name;

                // zum aktuellen Eintrag hinzufügen
                aNode := aTree.Items.AddChildObject (aNode, SearchRec.Name, Info);
              End;

            // Eintrag merken
            NodeTmp := aNode.Parent;
            // auf Untereinträge prüfen
            FindFilesTree (aTree, aPath + SearchRec.Name, aNode, aWithFiles);
            // Eintrag wiederholen
            aNode := NodeTmp;
          End
        Else
          // Eintrag ist eine Datei
          If aWithFiles
            and (SearchRec.Name <> '.') and (SearchRec.Name <> '..')
          Then
            Begin
              New (Info);
              Info^.Path := False;
              Info^.Name := aPath + SearchRec.Name;

              aTree.Items.AddChildObject (aNode, SearchRec.Name, Info);
            End;

      // solange weiter bis keine wieteren Dateien/Verzeichniss gefunden werden
      Until FindNext (SearchRec) <> 0;

      FindClose(SearchRec);
    End;

  aTree.Items.EndUpdate;

end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Path := ExtractFilePath(Application.ExeName) + 'Daten\';
  FindFilesTree (TreeView1, Path, nil, True);
end;
MfG
Uwe 111

mkinzler 5. Apr 2010 19:03

Re: Im TreeView Dateien ohne endung
 
Dann schneide den String doch entsprechend ab:
-Position von letzem Punkt ermitteln ( Pos()/PosEx()) und dann in anderen Strinb kopieren (Copy()) oder Kürzen (SetLength())

daywalker9 5. Apr 2010 19:03

Re: Im TreeView Dateien ohne endung
 
Schau dir mal die Funktion ExtractFileName

Delphi-Quellcode:
var
  myFileName : string;
begin
  ShowMessage(ExtractFileName(myFileName));
end;
an.

mkinzler 5. Apr 2010 19:04

Re: Im TreeView Dateien ohne endung
 
ExtractFileName() entfernt dern Pfad, aber nicht die Endung!

daywalker9 5. Apr 2010 19:06

Re: Im TreeView Dateien ohne endung
 
Zitat:

Zitat von mkinzler
ExtractFileName() entfernt dern Pfad, aber nicht die Endung!

Stimmt, hatte ich vergessen.

himitsu 5. Apr 2010 19:07

Re: Im TreeView Dateien ohne endung
 
ExtractFileName Holt doch nur den Dateinamen (samt Endung) aus einem Pfad raus?

ChangeFileExt mit '' als neue Endung wäre da passender.

Uwe 111 5. Apr 2010 19:20

Re: Im TreeView Dateien ohne endung
 
Hallo

himitsu
Zitat:

ExtractFileName Holt doch nur den Dateinamen (samt Endung) aus einem Pfad raus?

ChangeFileExt mit '' als neue Endung wäre da passender.
Ich möchte im Treeview überhaubt keine endung haben.

mkinzler 5. Apr 2010 19:21

Re: Im TreeView Dateien ohne endung
 
Das macht doch das ChangeFileExt()

himitsu 5. Apr 2010 19:25

Re: Im TreeView Dateien ohne endung
 
Zitat:

Zitat von mkinzler
Das macht doch das ChangeFileExt()

Jupp, ChangeFileExt mit '' würde die Dateiendung durch '' (zwei Apostroph mit nichts dazwischen) aka Nichts ersetzen. :stupid:

mkinzler 5. Apr 2010 19:26

Re: Im TreeView Dateien ohne endung
 
Aber nur im String, an der Datei wird nichts geändert


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:07 Uhr.
Seite 1 von 3  1 23      

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