Hallo,
seit einigen stunden versuche ich eine procedure/function zu entwickeln die folgendes tut:
- ich rufe sie mit einem Dateinamen und der jeweiligen VirtualTreeView auf.
dann soll es den dateinamen per GetToken zerlegen z.b. aus:
D:\test1\datei1\hall.txt
wird D:, Test1, Datei1 und so weiter.
er soll nur hinzufügen wenn das aktuelle verzeichnis noch nicht gibt ansonten muss er es da hinzufügen wo er eins gefunden hat.
hier ist mein qullcode dort wird leider alles doppelt angezeigt:
Delphi-Quellcode:
function AddToLT(lt:TVirtualStringTree; DateiNamen:String):PVirtualNode;
function IndexOF(str:String;Node:PVirtualNode;Index:Integer):PVirtualNode;
var
r,t:Boolean;
FileItem:PFileItem;
temp:PVirtualNode;
begin
r:=True; t:=False; temp:=niL;
if index > 1 then begin
if node = nil then Node:=lt.GetFirst;
if node <> NIL then temp:=node;
end
else begin
Node:=lt.RootNode;
if node <> NIL then temp:=node;
end;
if (Node <> NIL) then begin
while r = true do begin
if lt.GetNodeLevel(node) > 1 then
node:=lt.GetNext(node);
if node <> NIL then begin
FileItem:=lt.GetNodeData(node);
if UpperCase(FileItem.Caption) = UpperCase(str) then begin
r:=False;
t:=True;
end;
end
else begin
r:=False;
t:=false;
end;
end;
end;
if t = false then
result:=temp
else
result:=node;
end;
var
i:Integer;
str:String;
FileItem:PFileItem;
Node:PVirtualNode;
begin
result:=NIL; node:=NIL;
for i:=1 to NumToken(Dateinamen,'\') do begin
str:=GetToken(Dateinamen,'\',i);
node:=IndexOF(str,node,i);
result:=lt.AddChild(node);
lt.ValidateNode(result,False);
FileItem:=lt.GetNodeData(result);
FileItem.Caption:=str;
node:=result;
// end;
end;
end;
mein ziel ist es:
ich habe jetzt zwei dateinamen:
Zitat:
D:\test1\hallo\wie geht es\hall1.txt
D:\test1\hallo\hall1.txt
in der liste soll es anschließen so aussehen:
D:
test1
hallo
wie geht es dir
und nicht so :
D:
test1
hallo
wie geht es dir
hallo
im moment gibt es eine
av ich weiß leider nicht warum und davor gab es halt diesen fehler den ich oben beschrieben hat... ich hoffe mir kann jemmand weiter helfen.
zum hintergrund:
ich möchte eine datei liste zu einer
DB hinzufügen. und die ansicht soll so sein wie im datei explorer von windows lings eine listTree und rechts eine TreeView.
ich habe mir das so vorgestellt:
ich nehme mir die dateien die hinzugefügt werden soll einzelen vor füge sie in die TreeView ein bzw. dort sollen nur die verzeichnise stehen.
ich klicke eins der verzeichnise an muss ich alle Dateien aus der
DB lesen die zum verzeichnis gehöhren und in der listView dastellen...
das dürfte kein problem werden.
in der
DB steht dann eine Dateiliste wie z.b.:
D:\Test1\hallo1\60812.txt
D:\Test1\hallo1\111.txt
D:\Test111\hallo1\622212.txt
D:\Test1\hallo2\60000812.txt
D:\hallo.txt
und aus dieser liste möchte ich halt nacher diesen baum erzeugen darum die funktion die ich versuche zu entwickeln.. ich hoffe ihr versteht das prinzip und könnt mir weiter helfen. ich weiß einfach nicht mehr weiter.
ich hatte in der
DF noch einen qullcode gefunden von jemmand der hat der möchte auch ein baum dastellen aber in einem MAINMENU:
http://www.delphi-forum.de/viewtopic...highlight=menu