win oder Linux / Pfadangaben ermitteln

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

agrupe
****
Beiträge: 108
Registriert: Do, 08.12.2005 17:23

win oder Linux / Pfadangaben ermitteln

Beitrag von agrupe »

Hi,

nachdem meine base-Applikation einwandfrei sowohl unter Linux (Suse 10.2) als auch unter XP läuft würde ich gern noch den Aufruf einer Datei optimieren. Da Win und Linux unterschiedliche Pfadtypen nutzen wüßte ich gern, wie man erkennen kann "wo man ist" um den Pfadstring entsprechend zu setzen.

Danke & Gruß

Andreas
OO 3.2 unter OpenSuse 11
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: win oder Linux / Pfadangaben ermitteln

Beitrag von komma4 »

verwende die Laufzeitfunktion GetGUIType() zum Erkennen des Betriebssystems anhand des verwendeten Fenstermanagers
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: win oder Linux / Pfadangaben ermitteln

Beitrag von Stephan »

Da Win und Linux unterschiedliche Pfadtypen

Da Du von PfadTypen sprichst - Hinweis:
Du weist aber das in den meisten Fällen diese Betrachtungen ggf. ganz unnötig sind? Pfadtyp hört sich für mich nämlich nach Pfadtrenner (also "/" oder "\") an, und die werden in OOo mittels URL-Notation umgangen, der Trenner ist dann immer "/".

Beispiel:
Du willst den Dateinamen der aktiven Datei dadurch ermitteln indem Du ihn aus dem Pfad abtrennst:

Code: Alles auswählen

Sub Main
x = ThisComponent.URL
i = 0
Do
	i = i + 1
	x_tmp = Right(x, i)
Loop While LEFT(x_tmp, 1) <> "/"
Msgbox "Name ist: " & Right(x, i- 1)
End Sub
In der Zeile:

Code: Alles auswählen

Loop While LEFT(x_tmp, 1) <> "/"


ist eine Unterscheidung (<> "/" (Linux) bzw. <> "\" (Windows)) nicht nötig, da .URL immer als Pfadtrenner "/" verwendet.
Du kannst auch beliebige Pfade 'umrechnen' um sicherzustellen das das der Fall ist:

Code: Alles auswählen

pfad1 = ConvertToURL(pfad)
pfad1 enthält jetzt (systemunabhängig) immer "/" als Pfadtrenner.



Gruß
Stephan
Antworten