Seite 1 von 1

Datei öffnen in Writer mit relativem Pfad

Verfasst: Sa, 11.02.2012 15:49
von MH50
Hallo Leutz,
ich möchte über ein Basic-Macro eine Datei öffnen um Teile des Inhalts in ein Textdokument einzufügen. Das Makro soll sowohl in Win XP, Vista + Win7 funktionieren. Die zu öffnende Datei liegt in einem Ordner in "Eigene Dateien", bzw. "Documents" (Win7). Also brauche ich den relativen Pfad. und da gehts los. Meine Suchereien in div. Dokumentationen und im Netz halfen nicht richtig weiter. Es wird immer nur ein genauer Pfad angegeben. Momentan experimentiere ich mit folgendem Code:

Code: Alles auswählen

Sub TextEinlsen 
REM Text aus Datei einlesen
Dim FileNo As Integer
Dim CurrentLine As String
Dim File As String
Dim Msg as String
' Dateiname festlegen
sURL = ThisComponent.url
Filename = "C:\Users\Arbeit\Documents\OpenNumero" &"\Texte\"& TextName &".txt"
Print Filename
FileNo = Freefile
' Datei öffnen (Lesemodus)
Open Filename For Input As FileNo
' Prüfen, ob Dateiende erreicht ist
Do While not eof(FileNo)
' Zeile lesen
Line Input #FileNo, CurrentLine
If CurrentLine <>"" then
Msg = Msg & CurrentLine & Chr(13)
end if
Loop
' Datei schließen
Close #FileNo
Msgbox Msg
End Sub
"TextName" ist eine Variable die in einer anderen Sub "errechnet" wird. Dieser Code funktioniert soweit. Aber unter zB XP ist dann der Pfad anders.
Mit ThisComponent.url habe ich aber auch den eigentlichen Dateinamen drin + der stört.
Hat jemand eine Idee?

Re: Datei öffnen in Writer mit relativem Pfad

Verfasst: Sa, 11.02.2012 16:09
von balu
Hallo MH,

eine direkte Antwort und Lösung habe ich nicht, aber vielleicht den passenden Tipp für dich.
Wie wärs denn wenn Du die Umgebungsvariable für das Verzeichnis aus dem Betriebssystem ausliest?
Hab da mal eine Testdatei zum auslesen angehängt. Vielleicht kommst Du damit weiter.


Gruß
balu

Re: Datei öffnen in Writer mit relativem Pfad

Verfasst: Sa, 11.02.2012 16:13
von F3K Total
Hi,
mit folgendem Code solltest Du Dein Arbeitsverzeichnis bekommen:

Code: Alles auswählen

function get_work_directory
tmp_pfad = CreateUnoService("com.sun.star.util.PathSettings")
get_work_directory = tmp_pfad.work
msgbox get_work_directory
End function
Unter W7 komme ich auf /documents unter XP auf /eigene Dateien, sollte funzen!
Gruß R

Edit: da hat sich meine Antwort mit der von Balu zeitlich überschnitten.
Edit2: Um mich nicht mit fremden Federn zu schmücken: der Code kommt von Stephan->viewtopic.php?f=18&t=52015#p193757

Re: Datei öffnen in Writer mit relativem Pfad

Verfasst: Sa, 11.02.2012 19:30
von MH50
Danke für die schnellen Antworten. Der Code von F3K Total funzt! Super :D
Danke auch an Balu, deine Datei guck ich mir nachher auch noch an.
Gruß
MH50