Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Dateitree auslesen (https://www.delphipraxis.net/82021-dateitree-auslesen.html)

Indrizzi 6. Dez 2006 19:48


Dateitree auslesen
 
Hallo,
ich möchte mit der webbrowser - komponente einen html katalog öffnen. Das ist kein problem mit:

webbrowser1.navigate('C:\katalog06\index.htm');

Ich weiß allerdings nicht in welchem laufwerk sich der dateiordner 'katalog06' befindet, wenn mein kunde die cd in sein cd-laufwerk legt.

Gibt es eine einfache methode den verzeichnisbaum zu durchsuchen und automatisch den laufwerkbuchstaben zu navigate hinzu zu fügen? Oder alternativ eine relative pfadangabe dort einzubauen?

Schon mal vorab dank an alle helfer.

Luckie 6. Dez 2006 19:52

Re: Dateitree auslesen
 
ParamStr(0) liefert dir den Pfad und Namen deiner Exe.

DP-Maintenance 6. Dez 2006 21:19

DP-Maintenance
 
Dieses Thema wurde von "Christian Seehase" von "Internet / LAN / ASP.NET" nach "Sonstige Fragen zu Delphi" verschoben.
Das eigentliche Problem hat nichts mit Internet/LAN zu tun.

marabu 7. Dez 2006 07:07

Re: Dateitree auslesen
 
Guten Morgen.

Irgendjemand muss doch den Ordner Katalog06 angelegt haben - und wenn das mit einem Setup-Programm gemacht wurde, dann sollte der Ort in der Registry vermerkt sein. Wenn es der Benutzer deines Programms selbst gemacht hat, dann sollte dein Programm ihn fragen und sich die Antwort merken. Die Aufhängung des Verzeichnisses direkt unter dem root folder dürfte wohl auch nur auf einem privaten PC funktionieren - bei vorgegebenem file system layout gibt es Probleme.

Wenn du aber partout nach dem Ordner suchen möchtest, dann wäre das hier ein möglicher Ansatz:

Delphi-Quellcode:
function LocateFolder(const path: TFileName): TFileName;
var
  bDrive: Byte;
begin
  for bDrive := 2 to 25 do
    if DriveExists(bDrive) then
    begin
      Result := Format('%s:%s', [Chr(Ord('A') + bDrive), path]));
      if DirExists(Result) then Exit;
    end;
  Result := '';
end;

begin
  ShowMessage(LocateFolder('\katalog06'));
end;
Getippt und nicht getestet. DriveExists()

Grüße vom marabu

Indrizzi 7. Dez 2006 07:36

Re: Dateitree auslesen
 
Zitat:

Zitat von marabu
Wenn du aber partout nach dem Ordner suchen möchtest, dann wäre das hier ein möglicher Ansatz:

Danke, das könnte die lösung sein. Werde ich nachher mal probieren.Ich muss nach dem ordner suchen, weil:
unser kunde bekommt von uns eine cd, auf welcher sich der ordner katalog06 befindet und ein minimalistischer webbrowser zum betrachten der dateien. Es befindet sich auf der cd kein setup-programm, weil unsere kunden das nicht akzeptieren würden (sensibele bereiche in der anlagenprozesstechnik). Den sachbearbeitern ist es in der regel verboten programme zu installieren. Der katalog ist komplett im html -format. Die navigation im katalog wird mittel hoverschaltflächen erledigt. Deshalb der eigene webbrowser! IE hatte unseren katalog unbrauchbar gemacht :(
Wenn der kunde also die cd einlegt, weiß die komponente webbrowser ja nicht, in welchen laufwerk es den ordner katalog06 suchen soll. Gebe ich D: vor und das laufwerk des kunden hat den buchstaben E: bekommt der kunde eine fehlermeldung. Im günstigsten fall ruft der kunde an und wir können das telefonisch klären, im ungünstigsten fall fliegt die cd in den papierkorb. Dehalb ist das für mich so wichtig.

Danke für den lösungsansatz :spin2:

raiguen 7. Dez 2006 08:41

Re: Dateitree auslesen
 
Moin :-)

Ich nehme an, dass neben dem Katalog auch Dein MiniProgramm zum Anschauen desselben auf der Kunden-CD vorhanden ist? Dann wird der Kunde doch dieses Programm sicherlich direkt von der CD starten...
Also baust du im OnCreate des Programmes folgendes ein:
Delphi-Quellcode:
procedure Form1.Create(Sender: TObject);
begin
  ...
  //--Katalog öffnen
  Webbrowser1.Navigate(ExtractFileDrive(ParamStr(0)) + '\katalog06\index.htm');
  ...
end;

Indrizzi 7. Dez 2006 11:01

Re: Dateitree auslesen
 
Zitat:

Zitat von raiguen
Moin :-)

Ich nehme an, dass neben dem Katalog auch Dein MiniProgramm zum Anschauen desselben auf der Kunden-CD vorhanden ist? Dann wird der Kunde doch dieses Programm sicherlich direkt von der CD starten...
Also baust du im OnCreate des Programmes folgendes ein:
Delphi-Quellcode:
procedure Form1.Create(Sender: TObject);
begin
  ...
  //--Katalog öffnen
  Webbrowser1.Navigate(ExtractFileDrive(ParamStr(0)) + '\katalog06\index.htm');
  ...
end;

Vielen Dank, das funzt :thumb:


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:38 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