![]() |
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:
MfG
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; Uwe 111 |
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()) |
Re: Im TreeView Dateien ohne endung
Schau dir mal die Funktion ExtractFileName
Delphi-Quellcode:
an.
var
myFileName : string; begin ShowMessage(ExtractFileName(myFileName)); end; |
Re: Im TreeView Dateien ohne endung
ExtractFileName() entfernt dern Pfad, aber nicht die Endung!
|
Re: Im TreeView Dateien ohne endung
Zitat:
|
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. |
Re: Im TreeView Dateien ohne endung
Hallo
himitsu Zitat:
|
Re: Im TreeView Dateien ohne endung
Das macht doch das ChangeFileExt()
|
Re: Im TreeView Dateien ohne endung
Zitat:
|
Re: Im TreeView Dateien ohne endung
Aber nur im String, an der Datei wird nichts geändert
|
Re: Im TreeView Dateien ohne endung
Hallo
Nein die Dateiname soll gleich bleiben. Nur die endung soll weg |
Re: Im TreeView Dateien ohne endung
Und genau dass macht diese Funktion!
Delphi-Quellcode:
ergibt Test!
newfname := ChangeFileExt( 'Test.txt', '');
Hätte ein kurzer Test deinerseits auch ergeben! |
Re: Im TreeView Dateien ohne endung
Zitat:
Zitat:
Zitat:
Zitat:
|
Re: Im TreeView Dateien ohne endung
Hallo
Also ich habe die TreeView aus ein Ordner befüllt und da sind mehre Dateien drin. Mit Text.txt ist nur ein Beispiel. |
Re: Im TreeView Dateien ohne endung
Dann ersetzt dort halt die Stringkonstanten die Variable
|
Re: Im TreeView Dateien ohne endung
Wenn ich es wüste würde ich ja nicht fragen
|
Re: Im TreeView Dateien ohne endung
Delphi-Quellcode:
Variable := ChangeFileExt( Variable, '');
|
Re: Im TreeView Dateien ohne endung
Hallo
Ich habe es so gemacht da hat der Dateiname immer noch die .txt endung.
Delphi-Quellcode:
Path := ChangeFileExt( 'Daten', '');
|
Re: Im TreeView Dateien ohne endung
-'Daten' ist ja wieder eine Konstante
-der Dateiname steht in SearchRec.Name |
Re: Im TreeView Dateien ohne endung
Danke ich habe es hinbekommen. Und zwar so
Delphi-Quellcode:
Begin
New (Info); Info^.Path := False; Info^.Name := aPath + SearchRec.Name; SearchRec.Name := ChangeFileExt( SearchRec.Name , ''); <------- aTree.Items.AddChildObject (aNode, SearchRec.Name, Info); End; |
Re: Im TreeView Dateien ohne endung
Sauberer wäre es aber so:
Delphi-Quellcode:
var
Name: string; ... Begin New (Info); Info^.Path := False; Info^.Name := aPath + SearchRec.Name; Name := ChangeFileExt( SearchRec.Name , ''); <------- aTree.Items.AddChildObject (aNode, Name, Info); End; |
Re: Im TreeView Dateien ohne endung
OK Danke :cheers:
|
AW: Im TreeView Dateien ohne endung
wie bekomme ich es hin das mir nur bestimmte dateitypen angezeigt werden zb. *.txt?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:18 Uhr. |
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