🙏 Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀

❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

wiederherstellungsdatei

Alles zur Programmierung im LibreOffice.
Antworten
paulderfinne
Beiträge: 71
Registriert: Mi 20. Feb 2013, 13:49

wiederherstellungsdatei

Beitrag von paulderfinne » Fr 17. Jul 2015, 12:17

Hallo liebe Gemeinde,

ich stecke mal wider fest.

Ich habe ein Makro geschrieben, das in einer Vorlagendatei abläuft und am Ende dieses Programms in eine normale Datei abspeichert und ausdruckt und anschließend auch zumacht (siehe unten). Nun passierte es allerdings, dass die Lockdatei (die die mit .~lock.) beginnt nicht gelöscht wurde und so gescah es, dass ich bei neuerlichem Aufruf vo LO in die blöde Frage ob ich denn die Datei wiederherstellen möchte hineinlief. Also, dachte ich, lösche ich die blöde Lock-Datei (im Makro) und gut ist. Aber mitnichten. Die Lcokdatei ist zwar weg, aber die Frage nach der Wiederherstellung kommt trotzdem. Hat jemand eine Idee, wie ich das richtig mache? (Ich nutze LO Version: 4.3.3.2 auf einer debian jessie Maschine)

Code: Alles auswählen


sub foobar

    strDatei="foobar.odt"
    strDateiUrl=converttourl(strDatei)
'    oDoc = ThisComponent 
    oDoc.storeASUrl(strDateiUrl,dummy())
    
    
   Dim oSimpleFileAccess
   strDatei = ".~lock.foobar.odt#"
    strDateiUrl=converttourl(strDatei)
    oSimpleFileAccess=createunoservice("com.sun.star.ucb.SimpleFileAccess") 
    oSimpleFileAccess.kill(strDateiUrl)
    
    oDoc.Print(dummy())
    msgbox("Druck abgeschlossen?")
    Connection.Close()

    ThisComponent.close -1
   Stardesktop.Terminate()
           
End Sub



paulderfinne
Beiträge: 71
Registriert: Mi 20. Feb 2013, 13:49

Re: wiederherstellungsdatei

Beitrag von paulderfinne » So 19. Jul 2015, 09:15

Es scheint, dass LO4 auf diesem Gebiet etwas Neues gemacht hat. Früher hat das Programm nämlich nicht so reagiert.

Auch habe ich im Netz gelesen, dass man die Funktion der Wiederherstellungsdatei ausschalten kan indem man im Startscript soffice diese Zeilen auskommentiert:
  • # file locking now enabled by default
    #SAL_ENABLE_FILE_LOCKING=1
    #export SAL_ENABLE_FILE_LOCKING
Allerdings bringt das in meinem LO4 nichts.

Hat da jemand eine Ahnung, was da los ist?

Ich denke das hat mit meinem Problem zu tun.

Benutzeravatar
karolus
* LO-Experte *
Beiträge: 2540
Registriert: Fr 10. Dez 2010, 10:01

Re: wiederherstellungsdatei

Beitrag von karolus » So 19. Jul 2015, 10:36

Hallo

Abgesehen davon, das das ganze Procedere etwas fragwürdig anmutet, wäre das folgende einen Versuch wert:

Code: Alles auswählen

SAL_ENABLE_FILE_LOCKING=0
export SAL_ENABLE_FILE_LOCKING
LO7.4.7.5 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.0.3 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)

paulderfinne
Beiträge: 71
Registriert: Mi 20. Feb 2013, 13:49

Re: wiederherstellungsdatei

Beitrag von paulderfinne » So 19. Jul 2015, 12:25

Danke Karolus für deine Antwort. Es stimmt, dass mit der Änderung des Eintrags die Lock-Datei nicht erzeugt wird, allerdings möchte LO nach einem "Absturz" trotzdem die dabei offene Datei wiederherstellen. Ich dachte immer die beiden Dinge hängen zusammen: Gibt es eine Lockdatei, dann versucht LO die Datei wiederherzustellen. Dem ist aber offenbar nicht so.

Vielleicht nochmal mein Problem erläutern. Die oben gezeigten Programmierzeilen beenden zwar LO, wenn ich aber LO neu starte kommt der Dialog mit dem Wiederherstellen der Datei. Zugleich war die Lock-Datei vorhanden. Diese habe ich im Code gelöscht, der Dialog kommt aber trotzdem.

Habe ich mich verständloich ausgedrückt?

paulderfinne
Beiträge: 71
Registriert: Mi 20. Feb 2013, 13:49

Re: wiederherstellungsdatei

Beitrag von paulderfinne » So 19. Jul 2015, 14:05

Jetzt bin ichs nochmal. Wenn ich diesen Thread hier lese:

https://forum.openoffice.org/en/forum/v ... 01&t=43421

bekomme ich Zweifel, dass es überhaupt geht, den Wiederherstellungsmodus abzuschalten. Das ist ja eigentlich auch gar nicht das, was ich will. Ich möchte nur, dass mein Programmcode LO so beendet, dass eine Wiederherstellung (recovery) nicht mehr nachgefragt wird. Das hatten wir schon in diesem Thread:

http://www.libreoffice-forum.de/viewtop ... 12&t=11379

aber nach der Neuinstallation (wahrscheinlich wurde LO von 3 auf 4 upgedatet) klappt das nicht mehr mit der Zeile:

Stardesktop.Terminate()

Benutzeravatar
karolus
* LO-Experte *
Beiträge: 2540
Registriert: Fr 10. Dez 2010, 10:01

Re: wiederherstellungsdatei

Beitrag von karolus » So 19. Jul 2015, 21:16

Was ich immer noch nicht verstehe: wozu all das - wieso dieses obskure `StarDesktop.teminate()

Allein von der Kommandozeile kann Libreoffice mit Dutzenden von Argumenten aufgerufen werden

Code: Alles auswählen

# soffice --help
gibt folgende Ausgabe:

Code: Alles auswählen

LibreOffice 4.4.3.2 40m0(Build:2)

Usage: soffice [options] [documents...]

Options:
--minimized    keep startup bitmap minimized.
--invisible    no startup screen, no default document and no UI.
--norestore    suppress restart/restore after fatal errors.
--quickstart   starts the quickstart service
--nologo       don't show startup screen.
--nolockcheck  don't check for remote instances using the installation
--nodefault    don't start with an empty document
--headless     like invisible but no userinteraction at all.
--help/-h/-?   show this message and exit.
--version      display the version information.
--writer       create new text document.
--calc         create new spreadsheet document.
--draw         create new drawing.
--impress      create new presentation.
--base         create new database.
--math         create new formula.
--global       create new global document.
--web          create new HTML document.
-o             open documents regardless whether they are templates or not.
-n             always open documents as new files (use as template).

--display <display>
      Specify X-Display to use in Unix/X11 versions.
-p <documents...>
      print the specified documents on the default printer.
--pt <printer> <documents...>
      print the specified documents on the specified printer.
--view <documents...>
      open the specified documents in viewer-(readonly-)mode.
--show <presentation>
      open the specified presentation and start it immediately
--accept=<accept-string>
      Specify an UNO connect-string to create an UNO acceptor through which
      other programs can connect to access the API
--unaccept=<accept-string>
      Close an acceptor that was created with --accept=<accept-string>
      Use --unnaccept=all to close all open acceptors
--infilter=<filter>[:filter_options]
      Force an input filter type if possible
      Eg. --infilter="Calc Office Open XML"
          --infilter="Text (encoded):UTF8,LF,,,"
--convert-to output_file_extension[:output_filter_name[:output_filter_options]] [--outdir output_dir] files
      Batch convert files.
      If --outdir is not specified then current working dir is used as output_dir.
      Eg. --convert-to pdf *.doc
          --convert-to pdf:writer_pdf_Export --outdir /home/user *.doc
          --convert-to "html:XHTML Writer File:UTF8" *.doc
          --convert-to "txt:Text (encoded):UTF8" *.doc
--print-to-file [-printer-name printer_name] [--outdir output_dir] files
      Batch print files to file.
      If --outdir is not specified then current working dir is used as output_dir.
      Eg. --print-to-file *.doc
          --print-to-file --printer-name nasty_lowres_printer --outdir /home/user *.doc
--cat files
      Dump text content of the files to console
      Eg. --cat *.odt
--pidfile file
      Store soffice.bin pid to file.
-env:<VAR>[=<VALUE>]
      Set a bootstrap variable.
      Eg. -env:UserInstallation=file:///tmp/test to set a non-default user profile path.

Remaining arguments will be treated as filenames or URLs of documents to open.
mit z.B.

Code: Alles auswählen

 soffice --pt MP810 elgcbase.ods
bekomme ich ohne weitere Aktionen einen Ausdruck des Dokumentes auf dem angegebenen Drucker, und Libreofffice beendet sich freiwillig nach dem es den Ausdruck angestossen hat.
LO7.4.7.5 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.0.3 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)

paulderfinne
Beiträge: 71
Registriert: Mi 20. Feb 2013, 13:49

Re: wiederherstellungsdatei

Beitrag von paulderfinne » Mo 20. Jul 2015, 08:46

Danke Karolus für deine Anregungen. An die Möglichkeit von Optionen haber ich gar nicht gedacht. Das:

--norestore

scheint in der Tat für dieses eine Mal die Wiederherstellungsoption auszuschalten, damit kann ich leben
Was ich immer noch nicht verstehe: wozu all das - wieso dieses obskure `StarDesktop.teminate()
Jener "ominöse" Befehl war der einzige, bei dem sich LO rishtig schloss und zum aufrufenden Programm zurückkehrt. Siehe oben erwähnten Thread.

Aber jetzt werde ich erstmal die Option testen. Vielen Dank erstmal.

Benutzeravatar
karolus
* LO-Experte *
Beiträge: 2540
Registriert: Fr 10. Dez 2010, 10:01

Re: wiederherstellungsdatei

Beitrag von karolus » Mo 20. Jul 2015, 10:01

Hallo
Das prinzipielle Problem scheint mir hier:
Basic läuft (kann nur laufen) im Kontext von soffice ( das geht gar nicht anders )

Wenn du schon skriptest ( skripten musst ??? ) - warum nicht auf eine Weise die nicht vom Prozess abhängt den du abschliessen möchtest?
LO7.4.7.5 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.0.3 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)


An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:


Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.



Antworten