Autor Beitrag
cyberbug
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 53

WIN XP

BeitragVerfasst: Sa 01.03.08 10:44 
Guten Morgen,
ich habe folgendes Problem:

Ich habe ein kleines Programm programmiert, mit dessen Hilfe es möglich sein soll, die Struktur eies Ordners, oder einer Festplatte in einer Textdatei(*.txt) zu speichern. Dafür habe ich ein Editfeld(edtVerzeichnis), einen Button(btnDateienLesen) und eine Checkbox(chkLog).
Wenn in der Chekbox ein Häkchen ist, und der Button geklickt wird, soll die Struktur(oder wie man das nennt) in einer Textdatei gespeichert werden.
Folgender code:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
procedure TForm1.btnDateienLesenClick(Sender: TObject);
begin
  if chkLog.Checked = True then
  begin
      ShellExecute(application.Handle, 'open', PChar('tree'), PChar(edtVerzeichnis.Text + ' /F /A > Log_' + edtVerzeichnis.Text + '.txt'), nil,SW_HIDE);
  end;

end;


In das Editfeld sollte zuvor ein Pfad wie: C: eingegeben werden.
ShellApi hab ich in die uses eingebunden. Beim Compilieren kommt soweit auch kein Fehler, doch wenn ich einen pfad eingebe, ein häkchen setze undauf den button klicke, passsiert nix(keine Textdatei wird erstellt!).
Was habe ich falsch gemacht und sollte ich dafür überhaupt ShellExecute verwenden? Wenn nein, welchen Befehl dann?
Ich freue mich auf Antworten,
MFG cyberbug
Grenzgaenger
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Sa 01.03.08 11:11 
denke, hier solltest beser mit findfirst und findnext arbeiten. ob dir die kompo tshelltree weiterhilft kann ich nicht sagen, noch nie gebraucht...
AXMD
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 4006
Erhaltene Danke: 7

Windows 10 64 bit
C# (Visual Studio 2019 Express)
BeitragVerfasst: Sa 01.03.08 11:27 
Umleitungen (> und <) sind Shell-Funktionalitäten, werden aber in den ShellExecute-Funktionsaufrufen nicht direkt unterstützt. Du könntest versuchen, cmd.exe per ShellExecute zu starten und in cmd.exe dann das Programm ausführen lassen, denn cmd.exe unterstützt Umleitungen. Ob das sicher funktioniert weiß ich nicht, das müsstest du ausprobieren.

AXMD
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Sa 01.03.08 12:11 
cyberbug Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 53

WIN XP

BeitragVerfasst: Sa 01.03.08 18:03 
also mit findfirst und findnext habe ich schon gearbeitet, das gehört schon zum programm. Im allgemeinen ist mein prograamm ja einen art Explorer, nur man kann nirgendswo klicken, sondern sich nur alles anzeigen lassen. Als Zusatzfunktion möchte ich aber noch die Möglichkeit bieten, die Verzeichniss struktur in eine Textdatei zu speichern.
@jaenicke:

So ganz versteh ich dass nicht was da steht... :oops:
Könnte mir das mal jemand( bitte, bitte, bitte :wink: )so umschreiben, dass ich den code in meinem Programm verwenden kann?? thx
MFG cyberbug
PS: Vielen Dank für jede Antwort :wink:


Zuletzt bearbeitet von cyberbug am Do 02.04.09 21:32, insgesamt 1-mal bearbeitet
Lannes
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2352
Erhaltene Danke: 4

Win XP, 95, 3.11, IE6
D3 Prof, D4 Standard, D2005 PE, TurboDelphi, Lazarus, D2010
BeitragVerfasst: Sa 01.03.08 18:22 
Hallo,

hast Du die eingelesene Struktur in einem TreeView?

Den Inhalt eines TreeView kann man direkt in eine Textdatei schreiben:
ausblenden Delphi-Quelltext
1:
TreeView.SaveToFile					

_________________
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
cyberbug Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 53

WIN XP

BeitragVerfasst: Sa 01.03.08 18:29 
@Lannes
ich glaube du hast meine frage falsch verstanden:
ich will nicht das in eine Textdatei speichern, was ich mit Findnext usw. herausbekommen habe, sondern ich möchte tree.exe dazu benutzen, um die vollständige struktur zu speichern. mit inhalt von unterordnern, und deren inhalt...

die struktur habe ich übrigens in einem stringgrid
MFG cyberbug
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Sa 01.03.08 18:53 
Der Funktion GetConsoleOutput, die du auf der von mir verlinkten Seite gefunden hast, musst du nur den Befehl übergeben, der ausgeführt werden soll, sowie eine TStringList für Fehlerausgaben und eine für die normalen Ausgaben.
In diese StringLists wird dann die Ausgabe automatisch gepackt. Und damit kannst du dann arbeiten.
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10185
Erhaltene Danke: 1261

W11x64
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: So 02.03.08 13:10 
Moin!

user profile iconjaenicke hat folgendes geschrieben:
Der Funktion GetConsoleOutput
...haben wir auch in unserer Library. ;)

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.