Autor Beitrag
Robii
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 236



BeitragVerfasst: Di 30.03.10 23:00 
Guten Abend,

ich erzeuge mit dem ConsolenKommando Tree eine *.TXT-Datei in der ich einen Tree der gewünschten Festplatte habe. Wie kann ich diese jetzt in einen TTreeView importieren? Ich muss den Schritt mit dem zwischenspeichern machen, auch wenn es überflüssig klingt.

Danke für die Hilfe schonmal im Vorraus,
Lieben Gruß,
Robii.
ALF
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1085
Erhaltene Danke: 53

WinXP, Win7, Win10
Delphi 7 Enterprise, XE
BeitragVerfasst: Di 30.03.10 23:10 
Da Du das doch schon in Delph machst siehe Dein "TREE-Befehl CMD.Exe" hast Du doch auch den Pfad oder das Lw. :wink:

Gruss ALf

_________________
Wenn jeder alles kann oder wüsste und keiner hätt' ne Frage mehr, omg, währe dieses Forum leer!
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Di 30.03.10 23:14 
Warum nicht FindFirst und FindNext?
Robii Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 236



BeitragVerfasst: Di 30.03.10 23:16 
user profile iconALF hat folgendes geschrieben Zum zitierten Posting springen:
Da Du das doch schon in Delph machst siehe Dein "TREE-Befehl CMD.Exe" hast Du doch auch den Pfad oder das Lw. :wink:

Gruss ALf


Welchen Pfad meinst du und was soll ich damit machen? Lw?

FindFirst und FindNext? Wie soll ich das damit machen?

Wenn ich mir das *.txt so angucke sind da extrem viele Sonderzeichen drin hier mal ein Ausschnitt:
Zitat:

C:\
ÃÄÄÄ2947156df0de6c3523b9
³ ÃÄÄÄar-sa
³ ÃÄÄÄbg-bg
³ ÃÄÄÄcs-cz
³ ÃÄÄÄda-dk
³ ÃÄÄÄde-de
³ ÃÄÄÄel-gr
³ ÃÄÄÄen-us
³ ÃÄÄÄes-es
³ ÃÄÄÄet-ee
³ ÃÄÄÄeula
³ ³ ÃÄÄÄar-sa
³ ³ ÃÄÄÄbg-bg
³ ³ ÃÄÄÄcs-cz
³ ³ ÃÄÄÄda-dk
³ ³ ÃÄÄÄde-de
³ ³ ÃÄÄÄel-gr
³ ³ ÃÄÄÄen-us
³ ³ ÃÄÄÄes-es
³ ³ ÃÄÄÄet-ee


Irgendwie erscheint mir das ein bisschen seltsam.

Grüße
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Di 30.03.10 23:27 
Moin!

user profile iconRobii hat folgendes geschrieben Zum zitierten Posting springen:
FindFirst und FindNext? Wie soll ich das damit machen?
Die Tree.exe-Ausgabe kriegst du damit natürlich nicht geladen, das bezieht sich darauf, warum du mit einem Kommandozeilen-Tool die Daten liest, statt direkt auf das Dateisystem zuzugreifen. ;)

user profile iconRobii hat folgendes geschrieben Zum zitierten Posting springen:
Wenn ich mir das *.txt so angucke sind da extrem viele Sonderzeichen drin
Das liegt daran, dass du die Ausgabe an der Kommandozeile OEM-kodiert bekommst, aber als ANSI-Zeichen interpretierst. Wenn du das von OEM nach ANSI konvertiert hast, sieht das so aus:
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
C:\ 
+---2947156df0de6c3523b9 
¦ +---ar-sa 
¦ +---bg-bg 
¦ +---cs-cz 
¦ +---da-dk 
¦ +---de-de 
¦ +---el-gr 
¦ +---en-us 
¦ +---es-es 
¦ +---et-ee 
¦ +---eula 
¦ ¦ +---ar-sa 
¦ ¦ +---bg-bg 
¦ ¦ +---cs-cz 
¦ ¦ +---da-dk 
¦ ¦ +---de-de 
¦ ¦ +---el-gr 
¦ ¦ +---en-us 
¦ ¦ +---es-es 
¦ ¦ +---et-ee
cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
ALF
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1085
Erhaltene Danke: 53

WinXP, Win7, Win10
Delphi 7 Enterprise, XE
BeitragVerfasst: Di 30.03.10 23:29 
user profile iconRobii hat folgendes geschrieben Zum zitierten Posting springen:

Welchen Pfad meinst du und was soll ich damit machen? Lw?

Wenn es um die VerzeichnisStruktur geht nimmts Du eine Shelltreeview dafür,
und dann Shelltreeview1.root := und das laufwerk oder das Verzeichniss was Du bei Dir
ausblenden Delphi-Quelltext
1:
wStr := '/C tree  C:\ > '+GetCurrentDir+'\tree.txt';					
ausgesucht hast.

Wenn es darum geht!?
Gruss ALf

_________________
Wenn jeder alles kann oder wüsste und keiner hätt' ne Frage mehr, omg, währe dieses Forum leer!
Robii Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 236



BeitragVerfasst: Di 30.03.10 23:33 
user profile iconNarses hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconRobii hat folgendes geschrieben Zum zitierten Posting springen:
Wenn ich mir das *.txt so angucke sind da extrem viele Sonderzeichen drin
Das liegt daran, dass du die Ausgabe an der Kommandozeile OEM-kodiert bekommst, aber als ANSI-Zeichen interpretierst. Wenn du das von OEM nach ANSI konvertiert hast, sieht das so aus:

Irgendwie hilft mir das jetzt auch noch nicht so weiter, wie konvertiere ich das denn im Programm ?
Und hat jemand evtl. einen Link für ein gutes TTreeView-Tutorial? Ich finde einfach keins bei Google.

Lieben Gruß.

Moderiert von user profile iconNarses: Zitat gekürzt.
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Di 30.03.10 23:37 
Moin!

user profile iconRobii hat folgendes geschrieben Zum zitierten Posting springen:
Irgendwie hilft mir das jetzt auch noch nicht so weiter, wie konvertiere ich das denn im Programm ?
Ich habe dir bereits einen Link zu einem passenden Beitrag in der Lib gegeben, die Unit hat auch eine OEM-Konvertierung an Bord. Einfach benutzen, fertig. ;)

user profile iconRobii hat folgendes geschrieben Zum zitierten Posting springen:
Und hat jemand evtl. einen Link für ein gutes TTreeView-Tutorial? Ich finde einfach keins bei Google.
Was genau gibt´s denn da nicht zu verstehen? :gruebel: Ausserdem gibt´s hier im Forum Code-Beispiele ohne Ende... :arrow: Suche in: Delphi-Forum, Delphi-Library TTREEVIEW

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19315
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mi 31.03.10 00:32 
user profile iconRobii hat folgendes geschrieben Zum zitierten Posting springen:
Und hat jemand evtl. einen Link für ein gutes TTreeView-Tutorial?
Du machst es dir nur so kompliziert, weil du so alles korrekt in die Baumstruktur einklinken musst statt die paar Zeilen zu schreiben es richtig umzusetzen ohne die komische Textdatei.

Grundsätzlich musst du eben immer neue Knoten hinzufügen, wo genau ist denn dabei das Problem?
Und ich habe ja bereits auf die Library hingewiesen, da gibt es auch interessante Beispiele. Und da du offenbar zu faul bist einmal nachzuschauen poste ich den Link doch. Eigentlich dachte ich die paar Klicks würdest du schaffen... :roll:
www.delphi-library.d...w+anzeigen_2420.html
Robii Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 236



BeitragVerfasst: Mi 31.03.10 00:37 
user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconRobii hat folgendes geschrieben Zum zitierten Posting springen:
Und hat jemand evtl. einen Link für ein gutes TTreeView-Tutorial?
Du machst es dir nur so kompliziert, weil du so alles korrekt in die Baumstruktur einklinken musst statt die paar Zeilen zu schreiben es richtig umzusetzen ohne die komische Textdatei.

Grundsätzlich musst du eben immer neue Knoten hinzufügen, wo genau ist denn dabei das Problem?
Und ich habe ja bereits auf die Library hingewiesen, da gibt es auch interessante Beispiele. Und da du offenbar zu faul bist einmal nachzuschauen poste ich den Link doch. Eigentlich dachte ich die paar Klicks würdest du schaffen... :roll:
www.delphi-library.d...w+anzeigen_2420.html


Den Link hatte ich schon gefunden, allerdings habe ich grade nach alten Code-Schnipseln gesucht in denen ich schoneinmal das gemacht hatte was ich machen möchte. Der Code oben ist natürlich auch treffend, ich denke den werde ich verwenden, allerdings habe ich noch eine Frage (an Narses).

Mit der Procedure fülle ich ja einen TTreeView. Wenn ich diesen TTreeView im Clienten jetzt gefüllt habe, wie kann ich diesen dann zum Server 'transportieren' ? In einen Stream laden (wenn das geht) und dann verschicken?

Danke für die Hilfe [von dir Jaenicke],
Lieben Gruß,
robii.
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Mi 31.03.10 00:39 
Moin!

user profile iconRobii hat folgendes geschrieben Zum zitierten Posting springen:
allerdings habe ich noch eine Frage (an Narses).

Mit der Procedure fülle ich ja einen TTreeView. Wenn ich diesen TTreeView im Clienten jetzt gefüllt habe, wie kann ich diesen dann zum Server 'transportieren' ? In einen Stream laden (wenn das geht) und dann verschicken?
Wozu? Schick doch direkt die Textdatei zum Server, fertig. ;)

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
Robii Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 236



BeitragVerfasst: Mi 31.03.10 00:43 
user profile iconNarses hat folgendes geschrieben Zum zitierten Posting springen:
Wozu? Schick doch direkt die Textdatei zum Server, fertig. ;)

Irgendwie habe ich das Gefühle da ist Ironie im Beitrag.

Oder meinst du das ernst und den TreeView in eine txt speichern und dann verschicken?

Lieben Gruß,
robii.

Moderiert von user profile iconNarses: Zitat gekürzt.

---Moderiert von user profile iconNarses: Beiträge zusammengefasst---

Client:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
procedure TForm1.tree(Drive: String);
var
  SStream: TStringStream;
begin
SStream := TStringStream.Create;
FindFilesTree (TreeView,Drive,nil,True);
TreeView.SaveToStream(SStream);
Client.Socket.SendText(Syntax[cmdITRE].Text+#13+MaskTermChar(SStream.DataString)+#13);
end;


Server:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
procedure TForm1.TreeEmpfangen;
var
  sStream: TStringStream;
  i: Integer;
begin
  sStream := TStringStream.Create(UnMaskTermChar(Data.Strings[1]));
  Tree.LoadFromStream(sStream);
  sStream.Free;
  for i := 0 to Syntax[cmdITRE].ArgCount - 1 do
    Data.Delete(0);
end;


So hab ich es jetzt gemacht.

Einziges Problem ist jetzt noch das mit dem Auswählen von Dateien im TreeView, dazu ist ja auch ein Beispiel im Link gegeben :

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
Procedure TForm1.TreeView1Click(Sender: TObject);
Var
  Info: pNodeInfo;
Begin
  If TreeView1.Selected <> nil then
    Begin
      Info := TreeView1.Selected.Data;

      Label1.Caption := Info^.Name
      If Not Info^.Path Then
        Memo1.Lines.LoadFromFile(Info^.Name);
    End
  Else
    Label1.Caption := 'Kein Verzeichnis/Datei gewählt';
End;


Allerdings verursacht mein Code :
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
procedure TForm1.TreeClick(Sender: TObject);
var
  Info: pNodeInfo;
  Name: String;
begin
  If Tree.Selected <> nil Then
    Begin
      Info := Tree.Selected.Data;
      Name := Info^.Name;
      ShowMessage(Name);
    End;
end;


immer einen Zugriffsfehler. Wieso das? Gucke selbst Morgen nochmal drüber, gehe jetzt aber erstmal schlafen. :p

Guten Nacht,
Lieben Gruß,
robii.


Zuletzt bearbeitet von Robii am Mi 31.03.10 01:15, insgesamt 1-mal bearbeitet
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Mi 31.03.10 01:14 
Moin!

user profile iconRobii hat folgendes geschrieben Zum zitierten Posting springen:
Oder meinst du das ernst und den TreeView in eine txt speichern und dann verschicken?
Klar hab ich das ernst gemeint, aber nicht den TreeView-Inhalt, sondern die Textdatei, die du per Tree.exe erzeugt hast (vorher noch durch einen Zlib-Compression-Stream schubsen, dann ist´s auch nicht so groß). ;)

Wenn du schon sinnlose Dinge tust (wie Tree.exe an der Kommandozeile für einen Verzeichnisbaum zu nutzen), dann auch gleich richtig. :nixweiss:

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19315
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mi 31.03.10 08:06 
user profile iconNarses hat folgendes geschrieben Zum zitierten Posting springen:
Wenn du schon sinnlose Dinge tust (wie Tree.exe an der Kommandozeile für einen Verzeichnisbaum zu nutzen), dann auch gleich richtig.
Jetzt nutzt er ja den Code aus der Library, der direkt die Dateien usw. sucht und dabei die TreeView befüllt. ;-)
ALF
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1085
Erhaltene Danke: 53

WinXP, Win7, Win10
Delphi 7 Enterprise, XE
BeitragVerfasst: Mi 31.03.10 11:40 
user profile iconRobii hat folgendes geschrieben Zum zitierten Posting springen:
Allerdings verursacht mein Code :
.......
immer einen Zugriffsfehler.

Beziehst Du das auf dem Server oder Clienten :gruebel:
Gruss ALf

_________________
Wenn jeder alles kann oder wüsste und keiner hätt' ne Frage mehr, omg, währe dieses Forum leer!
Robii Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 236



BeitragVerfasst: Mi 31.03.10 14:46 
user profile iconALF hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconRobii hat folgendes geschrieben Zum zitierten Posting springen:
Allerdings verursacht mein Code :
.......
immer einen Zugriffsfehler.

Beziehst Du das auf dem Server oder Clienten :gruebel:
Gruss ALf


Ich meinen das OnClick-Event im Server..

Lieben Gruß,
robii.
ALF
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1085
Erhaltene Danke: 53

WinXP, Win7, Win10
Delphi 7 Enterprise, XE
BeitragVerfasst: Mi 31.03.10 22:29 
user profile iconRobii hat folgendes geschrieben Zum zitierten Posting springen:
Einziges Problem ist jetzt noch das mit dem Auswählen von Dateien im TreeView, .....

Ich will ja nicht unken und hoffe ich irre mich
Aber ein Dateiverzeichnis vom Clienten, in ein Treeview auf nem Server zu Kopieren und dann noch die Dateien/Verzeichnisse vom Clienten über dieses Treeview auslesen zu wollen???? mhhh :gruebel: :gruebel:

Gruss ALf

_________________
Wenn jeder alles kann oder wüsste und keiner hätt' ne Frage mehr, omg, währe dieses Forum leer!