AGB  ·  Datenschutz  ·  Impressum  







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

relative pfadangabe [gelöst]

Ein Thema von ims · begonnen am 7. Jan 2004 · letzter Beitrag vom 7. Jan 2004
Antwort Antwort
Seite 1 von 2  1 2      
ims

Registriert seit: 23. Jul 2003
Ort: Sirnach
157 Beiträge
 
Delphi 7 Professional
 
#1

relative pfadangabe [gelöst]

  Alt 7. Jan 2004, 12:00
hi
ich habe meine applikation in einem order, (wo sonst ) z.B programm. auf der gleichen stufe(also nicht als unterordner!!) wie diesen ordner hab ich einen ordner DB. nun möchte ich den pfad für den DB-ordner dynamisch angeben (also nicht C:\daten\DB). den pfad der exe hole ich mit ExtractFilePath(ParamStr(0)). meine frage:

wie kann ich die pfadangabe so lösen dass es nicht mehr darauf ankommt wohin das ganze installiert wird. gibts da einen befehl mit dem ich einen ordner "abschneiden" kann (im pfad-string). oder muss ich den selbst auseinander nehmen?

gruss, ims
  Mit Zitat antworten Zitat
Benutzerbild von r_kerber
r_kerber

Registriert seit: 11. Feb 2003
Ort: Trittau
3.538 Beiträge
 
Delphi XE Professional
 
#2

Re: relative pfadangabe

  Alt 7. Jan 2004, 12:07
Hallo ims,

warum willst Du den Pfad der Datenbank im Programm eintragen. Dafür gibt's doch (z.B. in der BDE) Aliasnamen!
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: relative pfadangabe

  Alt 7. Jan 2004, 12:07
Die meisten Funktionen zum Angeben von Ordnern/Dateien unterstützen schon relative Pfadangaben!
Versuch also mal, nur "DB", "DB\", "DB/", "/DB", "/DB/", "./DB" oder "./DB/" zu verwenden (Wenn eine Variante nicht klappt, klappt vielleicht die andere ).
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
ims

Registriert seit: 23. Jul 2003
Ort: Sirnach
157 Beiträge
 
Delphi 7 Professional
 
#4

Re: relative pfadangabe

  Alt 7. Jan 2004, 13:12
aliasnamen... tja, könnte man machen. möchte es aber grundsätzlich wissen, da ich sowas auch mit anderen ordnern, nicht nur DB's brauch. ich möchte ja nicht direkt auf die DB verweisen sondern nur auf den dazu gehörigen ordner. chewie, ich glaube du hast mich falsch verstanden.
ich hab einen ordner C:\daten\meinProgramm (und darin ist meine exe) und einen zweiten ordner C:\daten\DB. so, mit ExtractFilePath(ParamStr(0)) krieg ich C:\daten\meinProgramm. wie kann ich nun aus diesem string C:\daten\DB machen? das war meine frage, ein wenig verständlicher vormuliert
gibts da ne funktion die "meinProgramm" wegschneidet und "DB" rein setzt oder muss ich das selbst machen??

gruss, ims
  Mit Zitat antworten Zitat
choose

Registriert seit: 2. Nov 2003
Ort: Bei Kiel, SH
729 Beiträge
 
Delphi 2006 Architect
 
#5

Re: relative pfadangabe

  Alt 7. Jan 2004, 13:18
Hallo ims,

sieh mal in der OH unter ExtractFilePath nach. Anschließend sollte der Operator + für Strings helfen...
gruß, choose
  Mit Zitat antworten Zitat
ims

Registriert seit: 23. Jul 2003
Ort: Sirnach
157 Beiträge
 
Delphi 7 Professional
 
#6

Re: relative pfadangabe

  Alt 7. Jan 2004, 13:34
hi chooose
ich weiss schon wie ich mit ExtractFilePath umgehen muss, das ist nicht das problem. meine frage ist es, wie komme ich von C:\daten\meinProgramm auf C:\daten\DB. ich nehme ExtractFilePath(ParamStr(0)) um auf C:\daten\meinProgramm zu kommen. allerdings brauch ich was, das "meinProgramm" durch "DB" ersetzt wird. resp einfach "meinProgramm" entfernt. danach kann ich immer noch mit dem Operator + das "DB" anhängen. wie krieg ich aber "meinProgramm" weg... aber so langsam glaub ich dass ich das "von hand" entfernen muss...
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#7

Re: relative pfadangabe

  Alt 7. Jan 2004, 13:37
Hai ims,

hast Du es schon einmal mit einem ordinären '..\db\' versucht?
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Benutzerbild von Stanlay Hanks
Stanlay Hanks

Registriert seit: 1. Mär 2003
2.078 Beiträge
 
Delphi 2005 Professional
 
#8

Re: relative pfadangabe

  Alt 7. Jan 2004, 13:42
Hi. Du könntest den String, den du abfragst, von hinten nache einem '\' durchsuchen.

Delphi-Quellcode:
var i : Integer;
    str : String;
begin
  str := ExtractFilePath(ParamStr(0));

  For i := Length(str)-1 downto 0 do
    begin
      IF str[i] = '\'
        THEN
          begin
            str := copy(str,0,i);
            break;
          end;
    end;

  str := str + 'DB';
end;
Man liest sich, Stanlay
  Mit Zitat antworten Zitat
Benutzerbild von r_kerber
r_kerber

Registriert seit: 11. Feb 2003
Ort: Trittau
3.538 Beiträge
 
Delphi XE Professional
 
#9

Re: relative pfadangabe

  Alt 7. Jan 2004, 13:44
Hallo ims,

ich vermute mal, Du willst alles was nach dem letzten Backslash durch etwas anderes ersetzen. Also den String von hinten zeichenweise lesen und das letzte Zeichen löschen, wenn es kein Backslash ist. Anschließend den von Dir gewünschten Text hinten drankopieren.
  Mit Zitat antworten Zitat
choose

Registriert seit: 2. Nov 2003
Ort: Bei Kiel, SH
729 Beiträge
 
Delphi 2006 Architect
 
#10

Re: relative pfadangabe

  Alt 7. Jan 2004, 14:05
Zitat von ims:
ich weiss schon wie ich mit ExtractFilePath umgehen muss
Sorry, habe ich überlesen.

Falls Du Dich nicht scheust, Hier im Forum suchenreguläre Ausdrücke einzusetzen, sollte das funktionieren:
Delphi-Quellcode:
function GetParentDirectory(const ADirectory: string): string;
begin
  with RegExpr('(.*\\).+') do
    Result:= Replace(ADirectory, '$1', True);
end;
Vielleicht klappt aber auch etwas in der Art?
Code:
c:\absolutePath\myDir\..\anotherDir\myFile
also zB
myName:= ExtractFilePath(ParamStr(0))+\..\db\foo.db';
gruß, choose
  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 22:37 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