Marko - Aktuellen Dateipfad ermitteln

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Marko - Aktuellen Dateipfad ermitteln

Re: Marko - Aktuellen Dateipfad ermitteln

von komma4 » Do, 07.05.2009 19:14

owni hat geschrieben:leider bekomme ich beim ausführen einen Basic-Laufzeitfehler in der Function DirecotyNameoutofPath(...)
bei LocFileName = FileNameoutofPath(sPath, Separator)
in meinem Beispiel ist der Aufruf falsch!
Neben der URL ist der systemabhängige Pfadtrenner mitzugeben, also:

Code: Alles auswählen

msgbox DirectoryNameOutOfPath( ThisComponent.URL , GetPathSeparator() ) 
Für zukünftig Suchende.

Re: Marko - Aktuellen Dateipfad ermitteln

von owni » Mi, 06.05.2009 09:19

Hi,

leider bekomme ich beim ausführen einen Basic-Laufzeitfehler in der Function DirecotyNameoutofPath(...)
bei LocFileName = FileNameoutofPath(sPath, Separator)

Code: Alles auswählen

Function DirectoryNameoutofPath(sPath as String, Separator as String) as String
Dim LocFileName as String
	LocFileName = FileNameoutofPath(sPath, Separator)
	DirectoryNameoutofPath = RTrimStr(sPath, Separator & LocFileName)
End Function

Habe es allerdings mittlerweile auf eine zwar etwas umständlichere Art und weise gelöst aber es funktioniert trotzdem.

Vielen Dank
owni

Re: Marko - Aktuellen Dateipfad ermitteln

von komma4 » Mo, 04.05.2009 13:56

Willkommen im Forum!

CURDIR() gibt Dir den aktuellen Arbeitspfad wieder.
Bei dieser BASIC-Funktion kam es in einem der letzten Releases (3.0.0 ?) zu einem Fehler.

Du suchst doch den Pfad der geöffneten Datei?!
Dann probiere mal:

Code: Alles auswählen

With GlobalScope.BasicLibraries
If ( Not .isLibraryLoaded("Tools") ) Then
  .LoadLibrary( "Tools" )
End If
End With
msgbox DirectoryNameOutOfPath( ThisComponent.URL ) 
Hilft Dir das?

Marko - Aktuellen Dateipfad ermitteln

von owni » Mo, 04.05.2009 12:04

Hallo Leute,

ich hab ein Problem. Meine Firma hatte bislang StarOffice im Einsatz.

Und ein Zusammenfassungsscript, welches ich verfasst habe, hat sämtliche dateien in dem Ordner in welchem die Zusammenfassungs.ods liegt ausgelesen.
Vor ein paar Wochen sind auf auf OpenOffice umgestiegen. Leider habe ich jetzt mit einem Script ein Problem.

Und zwar:

Ich habe im StarOffice den Befehl:
sURL = ConvertToUrl(CURDIR())

Dieser Befehl gab mir im StarOffice den Pfad aus, in dem ich die Zusammenfassung.ods geöffnet habe. Jetzt im OpenOffice bekomme ich den Wert:
"File:///E:/Programme/OpenOffice.org%203/program" statt wie damals: "File:///I:Pool/DenAktuellenPfad"

Kennt jemand einen Befehl, den ich in OpenOffice dafür verwenden muss? Wäre echt super wenn mir jemand helfen könnte, da wir diese Zusammenfassung recht dringend benötigen.

Vielen Dank im voraus

Grüße
owni

Code: Alles auswählen

Sub Ordnerdurchsuchung

Dim OrdnerInhalt()
Dim oSimpleFileAccess
dim sURL as string

sURL = ConvertToUrl(CURDIR())
oSimpleFileAccess=createunoservice("com.sun.star.ucb.SimpleFileAccess")
OrdnerInhalt() = oSimpleFileAccess.getFolderContents(sUrl, false)
oDocumentLoc = ThisComponent

oSheet0 = oDocumentLoc.Sheets.getByName("Zusammenfassung")
oCellRange1 = oSheet0.getCellRangeByPosition(1,11,2,5000)

oCellRange1.clearContents(com.sun.star.sheet.CellFlags.STRING + com.sun.star.sheet.CellFlags.VALUE) 

b = 11

for i = 0 to uBound(OrdnerInhalt())
	oDocumentLoc = ThisComponent
	url=OrdnerInhalt(i)
	urlCheck = convertfromurl(url)
	urlCheck = right(urlCheck,19)
	
	if urlCheck = "Zusammenfassung.ods" then
		goto We01
	end if
	
	urlCheck = right(urlCheck,1)
	
	if urlCheck = "#" then
		goto We01
	end if
	
	dim myFileProp() as New com.sun.star.beans.PropertyValue
	'myFileProp(i).name="Hidden"
'	myFileProp(i).value=true

	oDocumentExt = StarDesktop.loadComponentFromURL(url, "_Hidden", 0, myFileProp() )
	
	oSheet0 = oDocumentLoc.Sheets.getByName("Zusammenfassung")
	oSheet1 = oDocumentExt.Sheets.getByName("Zusammenfassung")
	

Nach oben