Allgemeine Fragen zur PROFAN Programmierung

Views (Heute): 249499 (10935)

| Suchen
| Zurück zur Übersicht

Autor | Thema: Abfrage des aktuellen Verzeichnisses
Hauke Joens
| Datum:27.08.01 20:35 (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 (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 (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 (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