Verändern eines schreibgeschüzten Dokumentes

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

Moderator: Moderatoren

powerede
*
Beiträge: 11
Registriert: Do, 30.12.2004 11:12

Verändern eines schreibgeschüzten Dokumentes

Beitrag von powerede »

Diverse Operationen muss ich auf ein schreibgeschützes Dokument anwenden.
Die Datei liegt ReadOnly auf einen Fileserver, kann ich den Dokumentenschutz irgendwie ausschalten ohne es an einem anderen Ort zu speichern?
Toxitom
********
Beiträge: 3769
Registriert: Di, 12.08.2003 18:07
Wohnort: Wiesbaden
Kontaktdaten:

Beitrag von Toxitom »

Hey Powerede,
..kann ich den Dokumentenschutz irgendwie ausschalten..
Theoretisch ja. Aber....
Mit der Funktion GetAttr(Pfad) kannst du die Dateiattribute auslesen, mit SetAttr(Pfad, attr) die Attribute setzen - vorausgesetzt, der Server erlaubt das!
Biede Basic-Funktionen sind in der Hilfe beschrieben - da solltest du weiterkommen. Aber bedenke etwas: Die Funktionen favorisieren die Windows-Struktur. Unix/Linux mit dem etwas differenzierteren Modell werden nur ganz pauschal unterstützt - Attribut = 1 (read only) -> "r..r..r..", Attribut = 0 (normal) -> "rwxrwxrwx".

Gruss
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
powerede
*
Beiträge: 11
Registriert: Do, 30.12.2004 11:12

Beitrag von powerede »

Das Dokument ist tatsächlich serverseitig absichtlich mit dem Schreibschutz versehen.

Meine Lösung sieht nun wie folgt aus:

Code: Alles auswählen

'Oeffnen der schreibgeschuetzten Datei
oDoc= StarDesktop.loadComponentFromURL(ConvertToURL(DATEINAME_READONLY), "_blank", 0, Array())

'Speichern der Datei
dim args(0) as new com.sun.star.beans.PropertyValue
myUrl= ConvertToUrl(DATEINAME_NEU)
thisComponent.storeasurl(myUrl,args())
Das funktioniert soweit.

Was mich aber noch sehr stört ist, dass ich das Speichern auf thisComponent und nicht auf oDoc ausführe.

Kann ich das auch auf oDoc ausführen, denn dann erwische ich in jedem Fall das richtige Dokument?
Toxitom
********
Beiträge: 3769
Registriert: Di, 12.08.2003 18:07
Wohnort: Wiesbaden
Kontaktdaten:

Beitrag von Toxitom »

Hey Powerede,
Kann ich das auch auf oDoc ausführen, denn dann erwische ich in jedem Fall das richtige Dokument?
Sicher. Warum nicht? Das Dokument unterstützt StoreAsURL(), kannst du also direkt darauf ausführen.

Wenn du einen leeren Array übergibst, reicht ohne weiteres
Dim args()
da brauchst du kein spezielles Objekt erzeugen.
Gruss
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Antworten