Allgemeine Fragen zur PROFAN Programmierung
Views (Heute): 249499 (10935)
  Suchen
 Zurück zur Übersicht
 AutorThema: Abfrage des aktuellen Verzeichnisses
Hauke Joens
Datum:27.08.01 20:35 Antwortenals Email verschicken (hauke.joens@t-online.de) 


Wie schaffe ich es, ein Programm sowohl von CD als auch nach einer Installation in einem Unterverzeichnis immer mit den richtigen Aufrufen zu starten (z.B. beim Laden einer Grafik aus einem Unterverzeichnis), einmal ist dies z.B. D:\Grafiken auf der CD, installiert aber C:\XYZ\Grafiken


Frank Abbing
Datum:27.08.01 22:23 Antwortenals Email verschicken (frankabbing@12move.de) 


Hallo,

du brauchst nichts zu beachten. Der Ordner, in dem sich das gestartete Profan-Exe-Programm befindet ist momentan der aktuelle. Alle Daten, die sich hierin befinden (einschließlich Unterordner) können angesprochen werden, ohne das Laufwerk oder den Hauptornder zu kennen, z.B. "Grafiken/Bild.bmp" oder "Daten.dat" usw.

Hoffe ich konnte dir helfen.

Frank Abbing


Uwe ''Pascal'' Niemeier
Datum:28.08.01 22:24 Antwortenals Email verschicken (Pascalxd@owl-online.de) 


Hallo Leute!

In Ausnahmefällen kann das aber auch schiefgehen: Wenn nämlich das Programm über eine Verknüpfung oder ein anderes Programm gestartet wird und dabei explizit ein bestimmtes Arbeitsverzeichnis vorgegeben ist...

Um ganz sicher zu gehen, verwende ich diese Routine (neulich schonmal in der Mailingliste gepostet):


'**********************************************************
def GetSlash(1) sub(len($(1)),len(translate$($(1),"\","")))
'-----------------------Slashes zählen

def DelRight(2) del$($(1),len($(1))-%(2)+1,%(2))
'-----------------------n Zeichen von rechts in $ löschen

declare Pfad$,ParMode%,a%
if %parcount'------------------------Kommandozeilenparameter vorhanden?
   a%=len(substr$(par$(0),GetSlash(par$(0))+1,"\"))
   Pfad$=DelRight(par$(0),a%)
   ParMode%=1'-------------------------Flag für Kommandozeilenparameter
   ifnot (right$(lower$(Par$(1)),4)=".exe") '--keine EXE?
      ParMode%=0'-------------Parameter ist prc oder prf >> ignorieren!
      a%=len(substr$(par$(1),GetSlash(par$(1))+1,"\"))
      Pfad$=DelRight(par$(1),a%)
   endif
else
   a%=len(substr$(par$(0),GetSlash(par$(0))+1,"\"))'-EXE ohne Parameter
   Pfad$=DelRight(par$(0),a%)
   ParMode%=0
endif

print Pfad$
if ParMode%
   print "Übertragener Kommandozeilenparameter :"
   print par$(1)
endif

waitkey

'**********************************************************


Diese Routine sollte in jeder Betriebsart laufen, ohne daß man irgendwas
umstellen muß. Die Kommandozeilenparameter-Kennung bei exe's (Variable
ParMode%) kann bei nicht-Bedarf weggelassen werden.
Und die definierten Funktionen kann man in Verbindung mit Pfaden immer
mal wieder gebrauchen ;-)

HTH
Pascal


Jörg Sellmeyer
Datum: 28.08.01 22:32 Antwortenals Email verschicken (joerse@gmx.de) 


Hallo,
Man kann auch folgendes machen:
def home(0) translate$(par$(0),"\\" + findfirst$(par$(0)),"")
print home()
WaitInput
Jörg


 Zurück zur Übersicht