AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Relative Pfade

Ein Thema von taktaky · begonnen am 13. Okt 2007 · letzter Beitrag vom 30. Okt 2007
Antwort Antwort
Seite 1 von 2  1 2      
taktaky
(Gast)

n/a Beiträge
 
#1

Relative Pfade

  Alt 13. Okt 2007, 15:51
Hallo,

mit der Funktion, werden alle Dateien von dem gewählten Ordner aufgelistet
Ich möchte aber der Pfad als Relativ und nicht als absolut

so:
Test/archiv/test.php
logo.gif

Und nicht als Absolut so:
C:/programme/delphi/Test/archiv/test.php
C:/programme/delphi/Test/logo.gif

Hier ist der Code :
Delphi-Quellcode:
procedure TForm1.AddFilesToList(Filter, Folder: string; Recurse: Boolean);
var
  sr: TSearchRec;
  sDirList: TStringList;
  i: Integer;
begin
  if FindFirst (Folder + Filter, faAnyFile, sr) = 0 then
  repeat
    ListBox1.Items.Add (Folder + sr.Name);
  until FindNext(sr) <> 0;
  FindClose(sr);
  if Recurse then
  begin
    sDirList := TStringList.Create;
    try
      GetSubDirs (Folder, sDirList);
      for i := 0 to sDirList.Count - 1 do
        if (sDirList[i] <> '.') and (sDirList[i] <> '..') then
        begin
          Update;
          ListBox1.Refresh;
          AddFilesToList (Filter,
            IncludeTrailingPathDelimiter (Folder + sDirList[i]),
            Recurse); // hier soll geändert werden
        end;
    finally
      sDirList.Free;
    end;
  end;
end;

procedure TForm1.btnSourceClick(Sender: TObject);
var
  Dir: string;
begin
  Dir := CurrentDir;
  if SelectDirectory ('Choose Folder', '', Dir) then
  begin
    CurrentDir := Dir;
    AddDelphiFiles;
  end;
end;
  Mit Zitat antworten Zitat
s-off
(Gast)

n/a Beiträge
 
#2

Re: Relative Pfade

  Alt 13. Okt 2007, 15:54
Du lässt einfach in diesem Teil
ListBox1.Items.Add (Folder + sr.Name); den 'Folder +' weg, also so:

ListBox1.Items.Add (sr.Name); Der Rest bleibt, wie er ist.

Edit: gut, entspricht nicht der Anforderung.
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.771 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: Relative Pfade

  Alt 13. Okt 2007, 15:57
Tach auch,

mit ExtractFilePath(ParamStr(0)) bekommst Du den Pfad indem Dein Executable liegt.
Wenn Du alles Pfade relativ zu diesem Pfad haben willst, mußt Du diese entsprechend
bearbeiten.
Wenn die Pfade alle auf ein Verzeichnis unterhalb Deines Exe Pfades zeigen ist das recht einfach.
Wenn nicht mußt Du schauen wie der Pfad zu dem bekannten Pfad relativ verläuft.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
quendolineDD

Registriert seit: 19. Apr 2007
Ort: Dresden
781 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Relative Pfade

  Alt 13. Okt 2007, 15:58
Am Rapid Application Development?

taktaky o.ä. eventuell wäre es für dich ratsam, mal dienen Quelltext selber anzuschauen und zu verstehen, was wie gemacht wird.

Dann erübrigen sich einige deiner Fragen und du selber wirst auch nach und nach Delphi lernen.
Lars S.
Wer nicht mit der Zeit geht, geht mit der Zeit.
  Mit Zitat antworten Zitat
taktaky
(Gast)

n/a Beiträge
 
#5

Re: Relative Pfade

  Alt 13. Okt 2007, 16:07
Zitat von s-off:
Du lässt einfach in diesem Teil
ListBox1.Items.Add (Folder + sr.Name); den 'Folder +' weg, also so:

ListBox1.Items.Add (sr.Name); Der Rest bleibt, wie er ist.
Wenn es dazu noch Nachfragen gibt, dreh ich am Rad.
Es wird damit zwar alle Dateien in Haupt Ordner in auch in unter Ordner aufgelistet, aber nur Filenames ! Unter Ordner nicht !

Es soll aber nur von C:/ bis Delphi/ gelöscht (also bis exe Ordner)


<>
  Mit Zitat antworten Zitat
quendolineDD

Registriert seit: 19. Apr 2007
Ort: Dresden
781 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Relative Pfade

  Alt 13. Okt 2007, 16:08
Zitat von Klaus01:
Tach auch,

mit ExtractFilePath(ParamStr(0)) bekommst Du den Pfad indem Dein Executable liegt.
Wenn Du alles Pfade relativ zu diesem Pfad haben willst, mußt Du diese entsprechend
bearbeiten.
Wenn die Pfade alle auf ein Verzeichnis unterhalb Deines Exe Pfades zeigen ist das recht einfach.
Wenn nicht mußt Du schauen wie der Pfad zu dem bekannten Pfad relativ verläuft.

Grüße
Klaus
Dann ist das deine Lösung
Lars S.
Wer nicht mit der Zeit geht, geht mit der Zeit.
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#7

Re: Relative Pfade

  Alt 13. Okt 2007, 16:10
Und was machst Du, wenn ein Benutzer das Programm unter e:\bla\blabla\blablabla liegen hat?

Die Lösung mit ExtractFilePath(Application.ExeName) ist schon richtig. Per Delphi-Referenz durchsuchenPos, Delphi-Referenz durchsuchenDelete solltest Du diesen wegschneiden können.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#8

Re: Relative Pfade

  Alt 13. Okt 2007, 16:20
Zitat von taktaky:
Ich möchte aber der Pfad als Relativ und nicht als absolut
Relativ zu was? Zu dem Verzeichnis, dass du übergibst? Wenn ja, dann lösch einfach mit Delete die Zeichen weg, die dein Verzeichnis lang ist:
Delete(RelativerPfad, 1, length(Folder));
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#9

Re: Relative Pfade

  Alt 13. Okt 2007, 16:47
Hallo,

zum Erzeugen relativer Pfadangaben kann man auch die Funktion Delphi-Referenz durchsuchenExtractRelativePath aus der Unit SysUtils nutzen, die allerdings unter Windows den Backslash als Trennzeichen erwartet. Der korrekte Aufruf für das erste Beispiel sieht also so aus:

ExtractRelativePath('C:\programme\delphi\', 'C:\programme\delphi\Test\archiv\test.php') Gruß Hawkeye
  Mit Zitat antworten Zitat
quendolineDD

Registriert seit: 19. Apr 2007
Ort: Dresden
781 Beiträge
 
Turbo Delphi für Win32
 
#10

Re: Relative Pfade

  Alt 13. Okt 2007, 16:52
Zitat von Hawkeye219:
Hallo,

zum Erzeugen relativer Pfadangaben kann man auch die Funktion Delphi-Referenz durchsuchenExtractRelativePath aus der Unit SysUtils nutzen, die allerdings unter Windows den Backslash als Trennzeichen erwartet. Der korrekte Aufruf für das erste Beispiel sieht also so aus:

ExtractRelativePath('C:\programme\delphi\', 'C:\programme\delphi\Test\archiv\test.php') Gruß Hawkeye
Das wäre aber sehr unflexibel )
Lars S.
Wer nicht mit der Zeit geht, geht mit der Zeit.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:08 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz