Seite 1 von 1

Problem bei Speichern mit storeAsURL

Verfasst: Do, 06.11.2008 21:20
von neelix
Hallo Zusammen,

ich kämpfe jetzt zwei Tage mit einen, wir mir scheint, einfachen Problem. Ich habe eine Makro in der Datei Erzeuge.ods. Ich erzeuge damit eine neue Calc-Datei, lösche zwei Tabellen und ändere den Name der ersten und füge 5 weitere mit ähnlichem Namen ein. Dann möchte ich das neu erstellte calc-Dokument speichern. Soweit läuft alles bis auf das Speichern. Ich erhalte immer eine Fehlermeldung, weiß aber nicht, wo dieser Fehler ist, weil ich damit nichts anfangen kann. Hier der Quellcode:

Code: Alles auswählen

REM  *****  BASIC  *****

Sub ErsTabellen

	Dim objDesktop As Object
	Dim objDatei As Object
	Dim objBlaetter As Object
	Dim objBlatt As Object
	Dim objmydoc As Object
	Dim strURL As String
	Dim strDateiname As String
	Dim strSpeicherort As String
	Dim mNoArgs()
	Dim i As Integer
	
	objDesktop = createUnoService("com.sun.star.frame.Desktop")
	strURL = "private:factory/scalc"
	objDatei = objDesktop.loadComponentFromURL _
		(strURL, "_blank", 0, mNoArgs())
	objBlaetter = ObjDatei.Sheets
	
	For i = objBlaetter.getCount() - 1 To 1 Step -1
		objBlaetter.removeByName(objDatei.Sheets(i).Name)
	Next i 'Löscht die Blätter 2 und 3
	ObjDatei.Sheets(i).Name = "Arbeit_1"  'Umbenennt Blatt1 in Arbeit_1
	For i = 2 to 6
		objBlatt = _
			objDatei.createInstance("com.sun.star.sheet.Spreadsheet")
		objDatei.Sheets.insertByName("Arbeit_" & Format(i, "0"), objBlatt)
	Next i 'Fügt die Blätter Arbeit_2 bis Arbeit_6 ein
	
	strDateiname = InputBox ("Geben Sie bitte den Dateinamen ein:") 'Usereingabe des Dateinamens
	strDateiname = "file:///" & InputBox ("Geben Sie bitte ein Verzeichnis ein:") & strDateiname 'Eingabe des Verzeichnisse
	objmydoc = StarDesktop.CurrentComonent 'objmydoc die gerade erzeugte Calc-Datei
	strmyUrl = ConvertToURL (strDateiname) 
	objmydoc.storeToURL(strmyUrl, mNoArgs())
	msgbox "Ihre Datei wurde gespeichert"

End Sub
Bemerkung: Mein Ziel ist es in der weiteren Programierung die einzelnen Blätter noch mit Daten zu füllen und natürlich auch noch Sicherheitsabfragen einzufügen, ob die Angaben zur URL richtig sind. Das ist also erst einmal der Anfangscode. Nur, ich brauche ja nicht weiter machen, wenn das nicht läuft.
Bemerkung 2: Ich bitte um Nachsicht, fange gerade erst an, in StarBasic zu programmieren...

Code: Alles auswählen

objmydoc.storeToURL(strmyUrl, mNoArgs())
Dies ergibt die Fehlermeldung:
Es ist eine Exception aufgetreten
com.sun.star.task.ERRORCodeIOException
Message .

Ich stehe vor einem Rästel, was mache ich falsch? Googlen hat leider auch nichts für mich erhellendes gebracht.

Edit: Ich vergaß:

Ich benutzte Ooo 2.4.1 auf einem Debian-Sid (Sidux) Linuxsystem.

Danke schon einmal

Neelix

Re: Problem bei Speichern mit storeAsURL

Verfasst: Do, 06.11.2008 21:56
von moritz
strDateiname = InputBox ("Geben Sie bitte den Dateinamen ein:") 'Usereingabe des Dateinamens
strDateiname = "file:///" & InputBox ("Geben Sie bitte ein Verzeichnis ein:") & strDateiname 'Eingabe des Verzeichnisse
strmyUrl = ConvertToURL (strDateiname)

Du gibst den Dateinamen schon als URL an und konvertierst ihn dann nochmal zur URL- Form. Außerdem muß zwischen Verzeichnis und Dateiname ein Schrägstrich stehen.
Ich denke, richtig wäre strDateiname= "/home/User/.....odt" und dann
strmyUrl=ConvertToURL (strDateiname)

Moritz

Re: Problem bei Speichern mit storeAsURL

Verfasst: Fr, 07.11.2008 15:42
von neelix
moritz hat geschrieben:Du gibst den Dateinamen schon als URL an und konvertierst ihn dann nochmal zur URL- Form. Außerdem muß zwischen Verzeichnis und Dateiname ein Schrägstrich stehen.
Ich denke, richtig wäre strDateiname= "/home/User/.....odt" und dann
strmyUrl=ConvertToURL (strDateiname)
Hallo Moritz,

das ist leider nicht. Die Fehlermeldung bleibt, obwohl ich es umgeschrieben habe.

Ich hatte die Variante gewählt, weil ich dachte, dass es vielleicht an der fehlerhaften Url liegt, dass

strmyUrl = ConvertToURL (strDateiname)

die Fehlermeldung erzeugt.

Danke aber für die schnelle Antwort, ich werde weiteres versuchen.

neelix

Re: Problem bei Speichern mit storeAsURL

Verfasst: Fr, 07.11.2008 16:01
von komma4
Du hast den Hinweis von moritz eingearbeitet, dass zwischen Verzeichnis und Dateinamen ein Verzeichnistrenner fehlt?

Code: Alles auswählen

   strDateiname = "file:///" & InputBox ("Geben Sie bitte ein Verzeichnis ein:") & "/" & strDateiname 'Eingabe des Verzeichnisse
...und: Du gibst das Verzeichnis ohne beginnenden / ein? Sonst wäre nämlich bei file einer zuviel...

Re: Problem bei Speichern mit storeAsURL

Verfasst: Sa, 15.11.2008 11:42
von neelix
Hallo,

ja, ich habe das eingearbeitet, leider keinen Erfolg. Meinen Fehler immer noch sehe ich nicht. Ich habe beides versucht. Vor file: den einen Trenner weggelassen und andersherum bei der Eingabe den Trenner weggelassen. Immer wieder der selbe Fehler. Im Moment bitte ich den User, die Datei selber zu speichern. Vielleicht finde ich ja noch meinen Denkfehler.

Vielen Dank Neelix

Re: Problem bei Speichern mit storeAsURL

Verfasst: Sa, 15.11.2008 14:37
von komma4
Nehme Standardroutinen zum Abfragen des Verzeichnisses und des Dateinamens.
Siehe die Routinen GetFolderName und GetFileName in der TOOLS-Bibiliothek (nehme: BTL2 - BasicTextListe2 zum Erstellen eines lesbaren Dokuments)