Pfad der purebasic.prefs

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
michel51
Beiträge: 84
Registriert: 01.11.2005 20:00
Wohnort: Dornhan-Weiden

Pfad der purebasic.prefs

Beitrag von michel51 »

Hallo zusammen.

ich hab da ein kleines Problem, dass ich leider nicht alleine lösen kann. Ich hoffe, hier bekomme ich eine Antwort.

Ich brauche für ein Projekt den/die Pfad(e) der purebasic.prefs.
Auf dem Mac funktioniert der Beispielcode einwandfrei.

Code: Alles auswählen

Global Only, Space, FileName.s, String.s, MyTab.l

; Tablaenge aus Preference-Datei holen
CompilerSelect #PB_Compiler_OS
   CompilerCase #PB_OS_Linux
      OpenPreferences(GetEnvironmentVariable("HOME") + ".purebasic/purebasic.prefs")   ; Pfad in Ordnung ???
   CompilerCase #PB_OS_MacOS 
      OpenPreferences(GetEnvironmentVariable("HOME") +"/.purebasic/purebasic.prefs")
   CompilerDefault   ; Windows ???
      OpenPreferences(GetPathPart(GetEnvironmentVariable("HOME")) + "purebasic.prefs")   ; Pfad anpassen !!!
CompilerEndSelect

PreferenceGroup("Global")
   MyTab =ReadPreferenceLong("TabLength", 1)
ClosePreferences()

Debug "Tablaenge: "+Str(MyTab)
Bei Linux könnte der Pfad stimmen (nach meinen Informationen). Bin mir aber nicht sicher.
Die Windows-Pref-Datei habe ich mit dem angegebenen Pfad nicht gefunden. Der wird sicher nicht richtig sein.
Kann mir hier jemand helfen? Es gibt ja Gott sei Dank etliche Linux / Windows User hier in diesem Forum.

Danke schon mal im Voraus.
michel51

Mac OS X Snow Leopard (10.6.8 ) Intel
PureBasic V 5.11(X64), V 5.21(x64)

Zum Lernen ist niemand zu alt.
marco2007
Beiträge: 906
Registriert: 26.10.2006 13:19
Kontaktdaten:

Beitrag von marco2007 »

Code: Alles auswählen

GetEnvironmentVariable("HOMEPATH")
Windows 11 - PB 6.03 x64
_________________________________
Benutzeravatar
michel51
Beiträge: 84
Registriert: 01.11.2005 20:00
Wohnort: Dornhan-Weiden

Beitrag von michel51 »

marco2006 hat geschrieben:

Code: Alles auswählen

GetEnvironmentVariable("HOMEPATH")
Danke.
Leider ist dem Verzeichnis die purebasic.prefs nicht zu finden.
Ich habe mal nachgeschaut, und die Datei gefunden in:

Code: Alles auswählen

C:\Dokumente und Einstellungen\klaus.lengfeld\Anwendungsdaten\PureBasic\
Der Befehl

Code: Alles auswählen

GetEnvironmentVariable("HOMEPATH")
gibt mir aus:

Code: Alles auswählen

\Dokumente und Einstellungen\klaus.lengfeld
was aber nicht weit genug geht (aber richtig sein kann). Mit

Code: Alles auswählen

GetEnvironmentVariable("HOMEPATH") + "\Anwendungsdaten\PureBasic\PureBasic.prefs"
wird die Datei also nicht gefunden.
Beutze ich aber

Code: Alles auswählen

GetHomeDirectory() + "Anwendungsdaten\PureBasic\PureBasic.prefs"
dann funktioniert es.
Allerdings ist es sehr seltsam, dass die purebasic.pref nicht im HomeDirectory installiert wurde.

Auf dem Mac reicht der HomePfad aus. Dort befindet sich ein (unsichtbares) Verzeichnis ".purebasic" und darin die pref.
Wie immer: SEHR EINFACH :D
Oder ist das Verhalten vielleicht ein Bug in der Windows-Version?
michel51

Mac OS X Snow Leopard (10.6.8 ) Intel
PureBasic V 5.11(X64), V 5.21(x64)

Zum Lernen ist niemand zu alt.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

michel51 hat geschrieben:Auf dem Mac reicht der HomePfad aus. Dort befindet sich ein (unsichtbares) Verzeichnis ".purebasic" und darin die pref.
Wie immer: SEHR EINFACH :D
hunderte unsichtbare ordner, nicht nach games und anwendungen getrennt?
geschmackssache.
dass es allein mit der HOME funktioniert, liegt einzig daran, dass MAC dann wohl den anwendungsnamen ergänzt.
wenn windows diese funktion anbieten würde, würde ich sie abschalten.
michel51 hat geschrieben:Allerdings ist es sehr seltsam, dass die purebasic.pref nicht im HomeDirectory installiert wurde.
nein, das ist logisch.
PureBasic ist eine Anwendung, also ist sein ordner Home\Anwendungen\Purebasic.
es direkt in die Home zu kacken wär unfein.

das problem ist ein verständnisproblem:
die GetHomeDirectory() funktion liefert eben den HOMEpfad des Benutzers,
nicht den der Anwendung.

GetEnvironmentVariable("HOMEPATH")
liefert dir nur den PATH, nicht das Laufwerk, musst du wohl noch C: vorne vor schreiben, damit es geht.

Windows und Mac sind nunmal völlig unterschiedliche philosophien, schon immer gewesen.
wie eine cross-platform-entwicklungsumgebung dann aussehen muss,
darüber kann man wohl geteilter ansicht sein,
aber beide funktionen liefern korrekt die antwort, die das OS ihnen gibt.
die beiden OS sind halt unterschiedlicher auffassung, was das angefragte Objekt nun wirklich ist.
aber aber einem Mac-Progger zuzumuten, mit der Win-Antwort zurechtzukommen,
wäre genauso falsch, wie einem Win-Progger zuzumuten, mit der Mac-Antwort zurechtzukommen.
wenn du Cross-Platform proggen willst, musst du eben die Unterschiede deiner benutzen OS kennen.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
edel
Beiträge: 3667
Registriert: 28.07.2005 12:39
Computerausstattung: GameBoy
Kontaktdaten:

Beitrag von edel »

Statt HomePath, nimm lieber AppData.
Benutzeravatar
michel51
Beiträge: 84
Registriert: 01.11.2005 20:00
Wohnort: Dornhan-Weiden

Beitrag von michel51 »

Kaeru Gaman hat geschrieben:
michel51 hat geschrieben:Auf dem Mac reicht der HomePfad aus. Dort befindet sich ein (unsichtbares) Verzeichnis ".purebasic" und darin die pref.
Wie immer: SEHR EINFACH :D
hunderte unsichtbare ordner, nicht nach games und anwendungen getrennt?
Natürlich nicht. Der .purebasic-Ordner wurde hier hin installiert, es gibt selbstverständlich noch andere, getrennte Ordner, die sich nicht hier im Home befinden, aber wie du schon sagst:
geschmackssache
dass es allein mit der HOME funktioniert, liegt einzig daran, dass MAC dann wohl den anwendungsnamen ergänzt.
Nein! Auch ich muss ".purebasic/purebasic.prefs" scheiben, der Anwendungsname wird nicht ergänzt.
PureBasic ist eine Anwendung, also ist sein ordner Home\Anwendungen\Purebasic.
Dann sollte/müsste es einen Befehl geben, der mir diesen "Home"-Ordner der Anwendung zurückgibt.
musst du wohl noch C: vorne vor schreiben, damit es geht.
Das wird es wohl gewesen sein. Ich denke da nicht immer dran, da ich es auf dem Mac nicht brauche :oops:

Trotzdem Danke für die Aufklärung.
michel51

Mac OS X Snow Leopard (10.6.8 ) Intel
PureBasic V 5.11(X64), V 5.21(x64)

Zum Lernen ist niemand zu alt.
Benutzeravatar
CSHW89
Beiträge: 489
Registriert: 14.12.2008 12:22

Re: Pfad der purebasic.prefs

Beitrag von CSHW89 »

Ich weiß, der Thread ist uralt. Allerdings hab ich jetzt die gleiche Frage. Funktioniert dieser Code auch in Linux und Mac? In Windows funktionierts.

Und noch ne zweite Frage: Müsste ich nicht erst prüfen, ob PureBasic als Portable gestartet wird? Dann müsste die Pref-Datei doch wo anders liegen. Wie würde man das am besten machen?

Code: Alles auswählen

Global MyTab.l

; Tablaenge aus Preference-Datei holen
CompilerSelect #PB_Compiler_OS
   CompilerCase #PB_OS_Linux
      OpenPreferences(GetEnvironmentVariable("HOME") + ".purebasic/purebasic.prefs")
   CompilerCase #PB_OS_MacOS
      OpenPreferences(GetEnvironmentVariable("HOME") +"/.purebasic/purebasic.prefs")
   CompilerDefault
      OpenPreferences(GetEnvironmentVariable("APPDATA") + "/purebasic/purebasic.prefs")
CompilerEndSelect
PreferenceGroup("Global")
   MyTab =ReadPreferenceLong("TabLength", 1)
ClosePreferences()

Debug "Tablaenge: "+Str(MyTab)
lg kevin
Bild Bild Bild
http://www.jasik.de - Windows Hilfe Seite
padawan hat geschrieben:Ich liebe diese von hinten über die Brust ins Auge Lösungen
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Pfad der purebasic.prefs

Beitrag von RSBasic »

@CSHW89
2.F.: Du könntest so machen, dass der Anwender selber die Einstellungsdatei auswählt.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
CSHW89
Beiträge: 489
Registriert: 14.12.2008 12:22

Re: Pfad der purebasic.prefs

Beitrag von CSHW89 »

:mrgreen: Jo danke, hab ich mir auch grad gedacht, als ich die weiteren Optionen der PB-IDE gesehen hab: es gibt nämich nicht nur Portable, sondern auch noch die Option "/P"
lädt/speichert alle Einstellungen aus der bzw. in die angegebene Datei.
Hab kein Lust da auf alles zu achten :lol: .

Ok, aber den Standardordner würd ich schon gern angeben, also den Home/App-Ordner. Deshalb bleibt meine erste Frage: Sind die Linux und Mac-Ordner korrekt?

lg kevin
Bild Bild Bild
http://www.jasik.de - Windows Hilfe Seite
padawan hat geschrieben:Ich liebe diese von hinten über die Brust ins Auge Lösungen
Benutzeravatar
Shardik
Beiträge: 746
Registriert: 25.01.2005 12:19

Re: Pfad der purebasic.prefs

Beitrag von Shardik »

CSHW89 hat geschrieben:Sind die Linux und Mac-Ordner korrekt?
Jein... :wink:

Auf MacOS X 10.6.8 (Snow Leopard) ist der Pfad korrekt, unter Linux
(getestet unter andLinux/Kubuntu 9.04) muß er genauso aussehen
wie auf dem Mac (also mit führendem Schrägstrich). Daher könnte
man Dein Beispiel so umbauen:

Code: Alles auswählen

Global MyTab.l

; Tablaenge aus Preference-Datei holen
CompilerSelect #PB_Compiler_OS
   CompilerCase #PB_OS_Windows
      OpenPreferences(GetEnvironmentVariable("APPDATA") + "/purebasic/purebasic.prefs")
   CompilerDefault
      OpenPreferences(GetEnvironmentVariable("HOME") +"/.purebasic/purebasic.prefs")      
CompilerEndSelect
PreferenceGroup("Global")
   MyTab =ReadPreferenceLong("TabLength", 1)
ClosePreferences()

Debug "Tablaenge: "+Str(MyTab)
Zuletzt geändert von Shardik am 31.01.2012 09:50, insgesamt 1-mal geändert.
Antworten