Re: [de-users] Offtopic: unterstützte Prog-Sprachen [was: alte Dokumente unlesbar (Codierung?)]
Hallo Thomas, Am Montag, 6. Januar 2020, 19:50:25 CET schrieb Thomas Krumbein: > Hey Matthias, > > eigentlich fast alle;) Danke, das reicht mir als Auskunft. Rest gelöscht weil erschöpfend. -- Mit freundlichen Grüßen Matthias Müller Diese Mail ist mit OpenPGP signiert! Zum überprüfen der Signatur, der Integrität und Authentizität meiner Mails kann man OpenPGP (https://www.openpgp.org/) installieren. Bitte senden Sie als Antwort auf meine E-Mails reine Text-Nachrichten! -- Liste abmelden mit E-Mail an: users+unsubscr...@de.libreoffice.org Probleme? https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/ Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de Listenarchiv: https://listarchives.libreoffice.org/de/users/ Datenschutzerklärung: https://www.documentfoundation.org/privacy
Re: [de-users] Offtopic: unterstützte Prog-Sprachen [was: alte Dokumente unlesbar (Codierung?)]
Hey Matthias, eigentlich fast alle;) Mit der eingebauten IDE: nur LO-Basic (bedingt auch VBA im Kompatibilitätsmodus - keine volle Objektunterstützung!) Ansonsten nativ: Python, JavaScript, C++ und in Verb. mit JRE auch Java Über entsprechende Bridges (Verbindungsobjekte) auch so ziemlich alle wichtigen Sprachen , also auch z.B. PHP etc. Läuft alles im Ergebnis auf die UNO-Objekte hinaus. Die musst Du halt ansprechen und verarbeiten:) VG Thomas Am 06.01.2020 um 19:12 schrieb Matthias Müller Posteo.de: Hallo Robert, Am Montag, 6. Januar 2020, 18:58:46 CET schrieb Robert Großkopf: SUB MySearchReplace Snip END SUB Nebenbei mal ne ergänzende Frage: Welche Programmiersprachen werden für die Makroprogrammierung eigentlic unterstützt Bitte nur kurzen Hinweis, Link tut's auch. -- Liste abmelden mit E-Mail an: users+unsubscr...@de.libreoffice.org Probleme? https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/ Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de Listenarchiv: https://listarchives.libreoffice.org/de/users/ Datenschutzerklärung: https://www.documentfoundation.org/privacy
[de-users] Offtopic: unterstützte Prog-Sprachen [was: alte Dokumente unlesbar (Codierung?)]
Hallo Robert, Am Montag, 6. Januar 2020, 18:58:46 CET schrieb Robert Großkopf: > SUB MySearchReplace Snip > END SUB Nebenbei mal ne ergänzende Frage: Welche Programmiersprachen werden für die Makroprogrammierung eigentlic unterstützt Bitte nur kurzen Hinweis, Link tut's auch. -- Mit freundlichen Grüßen Matthias Müller Diese Mail ist mit OpenPGP signiert! Zum überprüfen der Signatur, der Integrität und Authentizität meiner Mails kann man OpenPGP (https://www.openpgp.org/) installieren. Bitte senden Sie als Antwort auf meine E-Mails reine Text-Nachrichten! -- Liste abmelden mit E-Mail an: users+unsubscr...@de.libreoffice.org Probleme? https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/ Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de Listenarchiv: https://listarchives.libreoffice.org/de/users/ Datenschutzerklärung: https://www.documentfoundation.org/privacy
Re: [de-users] alte Dokumente unlesbar (Codierung?)
Hallo Rainer, zuerst einmal diesen Inhalt von Thomas kopieren: SUB MySearchReplace dim aSearch() dim aReplace() aSearch = array("§","š") aReplace = array("ß","ö") For i = 0 to ubound(aSearch) oReplace = ThisComponent.CreateReplaceDescriptor With oReplace .SetSearchString(aSearch(i)) .SetReplaceString(aReplace(i)) .SearchCaseSensitive = True end with ThisComponent.replaceAll(oReplace) next END SUB Das Makro kannst Du später ergänzen. In dem Arraypaar stehen jetzt nur die Zuordnungen § → ß und š → ö. Da kannst Du weitere Zuordnungen ergänzen, indem Du immer ein Komma setzt und dann den neuen Wert eingibst - auch später noch, wenn das Makro längst abgespeichert ist. Öffne nach dem Kopieren Extras > Makros > Makros verwalten > LibreOffice Basic Unter Meine Makros > Standard > Module1 kannst Du über Bearbeiten den Editor öffnen. Gegebenenfalls hast Du hier noch kein Modu. Das muss vorher erstellt werden. Hast Du den Writer geöffnet, so geht auch Extras > Makros > Makros bearbeiten Dann landest Du direkt in dem Ordner "Standard". In das dortige Modul fügst Du das obige Makro ein. Würdest Du jetzt von einem der "befallenen" Dateien das Makro über Extras > Makro ausführen starten, so würden eben nur die 2 bisher verzeichneten Paare ausgetauscht. Über Extras > Symbolleisten > Kategorie "Makros" kannst Du das Makro aussuchen und über den Pfeil nach rechts der Symbolleiste "Standard" hinzufügen. Der Titel des Makros erscheint jetzt ausgeschrieben als "MySearchReplace" ganz rechts auf der Symbolleiste. Du benötigst also kein Symbol, wenn Du auch mit der Textfassung zufrieden bist. Über den Button kannst Du jetzt das Makro direkt starten, sobald Du ein "befallenes" Dokument hast. Anschließend kannst Du auch weiterhin noch Paare zu dem Makro hinzufügen. Gruß Robert -- Homepage: https://www.familiegrosskopf.de/robert -- Liste abmelden mit E-Mail an: users+unsubscr...@de.libreoffice.org Probleme? https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/ Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de Listenarchiv: https://listarchives.libreoffice.org/de/users/ Datenschutzerklärung: https://www.documentfoundation.org/privacy
Re: [de-users] alte Dokumente unlesbar (Codierung?)
Schau mal da: https://wiki.documentfoundation.org/images/9/94/ErsteSchritte_Handbuch_Kapitel_13_MakrosEinfuehrung_V52.pdf Gruß Hans-Werner -- Originalnachricht -- Von: "Rainer" An: users@de.libreoffice.org Gesendet: 06.01.2020 18:33:12 Betreff: Re: [de-users] alte Dokumente unlesbar (Codierung?) Hallo Robert, Am Mon, 6 Jan 2020 17:53:34 +0100 schrieb Robert Großkopf : > > https://paste.ubuntu.com/p/c8N2rqKTzB/ Das, was Du da hast, kann das natürlich bewerkstelligen, macht aber doch nicht das, was das Makro von Thomas macht. Sorry, aber ich habe keine Ahnung vom Umgang mit Makros und weiß auch nicht mehr, wie ich zu dem vorhandenen gekommen bin. Dass das von Thomas ein (bis auf vielleicht ein paar mehr, noch fehlende Zeichen) komplettes und im Vergleich zu meinem abgespecktes ist, war mir nicht klar. Da steht in ca. 15 Zeilen alles, was Du komplett brauchst - nichts zum Aufstocken eines Suchmakros von über 300 Zeilen. Die Paare für die Zeichen stehen bei Thomas in den Arrays. [..] und hast dann bei Thomas Makro aSearch = array("§","š", usw.) aReplace = array("ß","ö", usw.) Die ganzen zusätzlichen Zeilen in Deinem Makro sind bei dem, was Thomas aufgeschrieben hat, unnötig. Du brauchst dafür pro Buchstabe ein Array von 18 Paaren(args(0) bis args(18). In dem Makro von Thomas sind das 2 Arrays, bei denen lediglich die Buchstaben paarweise eingetragen werden müssen). OK. Die Frage ist, wie schreite ich zur Tat? Leeres Textdokument öffnen -> Extras -> Makros -> Makro aufzeichnen -> ins leere Dokument das (um ein paar weitere Zeichen ergänzte) Makro von Thomas hineinkopieren? Wenn sich herausstellen sollte, dass noch nicht alle Zeichen erfasst wurden: Lässt sich das Makro dann ändern (erweitern)? Und wenn mir etwas nicht auf Anhieb gelingt: Wie werde ich fehlerhafte Makros bzw. Module wieder los? Derzeit sieht es so bei mir aus: http://sambalada.de/Makros.png Aber wenn ich z.B. ein Modul markiere, finde ich nirgends eine Funktion, mit der ich es löschen könnte. Wenn ich es wüsste, wäre ich beim Ausprobieren wohl etwas mutiger ;-) Viele Grüße Rainer -- Liste abmelden mit E-Mail an: users+unsubscr...@de.libreoffice.org Probleme? https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/ Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de Listenarchiv: https://listarchives.libreoffice.org/de/users/ Datenschutzerklärung: https://www.documentfoundation.org/privacy -- Liste abmelden mit E-Mail an: users+unsubscr...@de.libreoffice.org Probleme? https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/ Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de Listenarchiv: https://listarchives.libreoffice.org/de/users/ Datenschutzerklärung: https://www.documentfoundation.org/privacy
Re: [de-users] alte Dokumente unlesbar (Codierung?)
Hallo Robert, Am Mon, 6 Jan 2020 17:53:34 +0100 schrieb Robert Großkopf : > > > > https://paste.ubuntu.com/p/c8N2rqKTzB/ > > Das, was Du da hast, kann das natürlich bewerkstelligen, macht aber > doch nicht das, was das Makro von Thomas macht. Sorry, aber ich habe keine Ahnung vom Umgang mit Makros und weiß auch nicht mehr, wie ich zu dem vorhandenen gekommen bin. Dass das von Thomas ein (bis auf vielleicht ein paar mehr, noch fehlende Zeichen) komplettes und im Vergleich zu meinem abgespecktes ist, war mir nicht klar. > Da steht in ca. 15 Zeilen alles, was Du komplett brauchst - nichts > zum Aufstocken eines Suchmakros von über 300 Zeilen. Die Paare für > die Zeichen stehen bei Thomas in den Arrays. [..] > > und hast dann bei Thomas Makro > aSearch = array("§","š", usw.) > aReplace = array("ß","ö", usw.) > > Die ganzen zusätzlichen Zeilen in Deinem Makro sind bei dem, was > Thomas aufgeschrieben hat, unnötig. Du brauchst dafür pro Buchstabe > ein Array von 18 Paaren(args(0) bis args(18). In dem Makro von Thomas > sind das 2 Arrays, bei denen lediglich die Buchstaben paarweise > eingetragen werden müssen). > OK. Die Frage ist, wie schreite ich zur Tat? Leeres Textdokument öffnen -> Extras -> Makros -> Makro aufzeichnen -> ins leere Dokument das (um ein paar weitere Zeichen ergänzte) Makro von Thomas hineinkopieren? Wenn sich herausstellen sollte, dass noch nicht alle Zeichen erfasst wurden: Lässt sich das Makro dann ändern (erweitern)? Und wenn mir etwas nicht auf Anhieb gelingt: Wie werde ich fehlerhafte Makros bzw. Module wieder los? Derzeit sieht es so bei mir aus: http://sambalada.de/Makros.png Aber wenn ich z.B. ein Modul markiere, finde ich nirgends eine Funktion, mit der ich es löschen könnte. Wenn ich es wüsste, wäre ich beim Ausprobieren wohl etwas mutiger ;-) Viele Grüße Rainer -- Liste abmelden mit E-Mail an: users+unsubscr...@de.libreoffice.org Probleme? https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/ Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de Listenarchiv: https://listarchives.libreoffice.org/de/users/ Datenschutzerklärung: https://www.documentfoundation.org/privacy
Re: [de-users] alte Dokumente unlesbar (Codierung?)
Hallo Rainer, > > Das weiß ich doch alles. Offenbar aber ist Dir mein Posting von heute > morgen 9.14 Uhr entgangen, mit dem (bzw. zusammen mit dem von 1 Stunde > vorher) ich Deinem von 7.59 Uhr geantwortet hatte. Es enthielt einen > Hinweis darauf, dass ich bereits ein funktionierendes Makro habe und > einen Link auf eine Seite mit dem Inhalt: > > https://paste.ubuntu.com/p/c8N2rqKTzB/ Das, was Du da hast, kann das natürlich bewerkstelligen, macht aber doch nicht das, was das Makro von Thomas macht. Da steht in ca. 15 Zeilen alles, was Du komplett brauchst - nichts zum Aufstocken eines Suchmakros von über 300 Zeilen. Die Paare für die Zeichen stehen bei Thomas in den Arrays. Du brauchst aus Deinem Makro nur die Paare args5(10).Name = "SearchItem.SearchString" args5(10).Value = "§" args5(11).Name = "SearchItem.ReplaceString" args5(11).Value = "ß" args4(10).Name = "SearchItem.SearchString" args4(10).Value = "š" args4(11).Name = "SearchItem.ReplaceString" args4(11).Value = "ö" ... usw. und hast dann bei Thomas Makro aSearch = array("§","š", usw.) aReplace = array("ß","ö", usw.) Die ganzen zusätzlichen Zeilen in Deinem Makro sind bei dem, was Thomas aufgeschrieben hat, unnötig. Du brauchst dafür pro Buchstabe ein Array von 18 Paaren(args(0) bis args(18). In dem Makro von Thomas sind das 2 Arrays, bei denen lediglich die Buchstaben paarweise eingetragen werden müssen). Gruß Robert -- Homepage: https://www.familiegrosskopf.de/robert -- Liste abmelden mit E-Mail an: users+unsubscr...@de.libreoffice.org Probleme? https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/ Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de Listenarchiv: https://listarchives.libreoffice.org/de/users/ Datenschutzerklärung: https://www.documentfoundation.org/privacy
Re: [de-users] alte Dokumente unlesbar (Codierung?)
Hallo Robert, Am Mon, 6 Jan 2020 16:08:14 +0100 schrieb Robert Großkopf : > > > > Hilfreich wäre nun für mich ein Tipp, wie ich das vorhandene Makro > > um weitere Zeichen aufstocke. Gibt es in der entsprechenden Maske > > dafür Schalter, Buttons, o.ä.? > > Wieso Schalter und Buttons? Thomas Krumbein hat Dir das schon sehr > ausführlich aufgeschrieben. Du brauchst, wenn Du das Makro fertig > hast, nur einen Button - und den drückst Du, wenn so ein Dokument mit > den merkwürdigen Zeichen auftaucht. Das weiß ich doch alles. Offenbar aber ist Dir mein Posting von heute morgen 9.14 Uhr entgangen, mit dem (bzw. zusammen mit dem von 1 Stunde vorher) ich Deinem von 7.59 Uhr geantwortet hatte. Es enthielt einen Hinweis darauf, dass ich bereits ein funktionierendes Makro habe und einen Link auf eine Seite mit dem Inhalt: https://paste.ubuntu.com/p/c8N2rqKTzB/ Es geht mir also um genau die Frage von hier weiter oben: Wie ich das vorhandene Makro um weitere Zeichen aufstocke (und nicht darum, wie ich ein neues erstelle). Zitat aus meiner Mail von heute Morgen: > Die von mir erwähnten, zusätzlichen Zeichen sind zwar nicht dabei, > aber es ist gut möglich, dass ich sie damals noch gar nicht benutzt > habe. Falls erforderlich, müsste ich das Makro erweitern. Die Frage > ist nur: Wie geht das? Ins vorhandene Makro einfach einen Abschnitt > per copy 'n' paste neu einfügen und anpassen? Viele Grüße Rainer -- Liste abmelden mit E-Mail an: users+unsubscr...@de.libreoffice.org Probleme? https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/ Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de Listenarchiv: https://listarchives.libreoffice.org/de/users/ Datenschutzerklärung: https://www.documentfoundation.org/privacy
Re: [de-users] alte Dokumente unlesbar (Codierung?)
Hallo Rainer, anbei ein iterativer "in einem Rutsch"-Lösungsvorschlag für die "odt"-Dateien. (A) TEST-BEISPIEL [1] In dem Verzeichnis "E:/TMP/ODT/" sind die zu modifizierenden "odt"-Dateien "ODT_1.odt", "ODT_2.odt" und "ODT_3". [2] Alle drei Dateien enthalten jeweils die Zeichenfolge "ÄÖÜäöüß". [3] Das Makro "SearchAndReplace" (Thomas' Makro leicht modifiziert) befinde sich in "macro:///Standard.Module1.SearchAndReplace". [4] Das PERL-Programm [4.1] speichert alle Dateinamen im Verzeichnis "E:/TMP/ODT/" in ein Array. [4.2] arbeitet in einer Schleife das Array ab und bearbeitet auf diese Weise jede "odt"-Datei mit dem Makro. [5] Nach Beendigung des PERL-Programms enthalten alle drei Dateien jeweils die Zeichenfolge "AeOeUeaeoeuess" gemäß Such- ("aSearch") und Ersetzungsvorschrift ("aReplace") im Makro. (B) ANWENDUNG [1] Du musst lediglich in "aSearch" die zu suchenden und in "aReplace" die zu ersetzenden Zeichen eintragen und dann das PERL-Programm starten, wodurch ALLE "odt"-Dateien im Verzeichnis bearbeitet werden. [2] Anschließend kannst Du dann mal schauen, ob es noch "falsche Zeichen" in den "odt"-Dateien gibt. Wenn ja, ergänzt Du einfach "aSearch" und "aReplace" entsprechen und startest das PERL-Programm erneut. [3] Punkt [2] musst Du dann so oft ausführen, bis alle "odt"-Dateien bereinigt sind. [4] Die Pfade im PERL-Programm musst Du entsprechen Deiner Systemumgebung anpassen. [5] Alternativ kann man das PERL-Programm auch durch ein entsprechendes BASH-Skript ersetzen. Kann ich leider nicht anbieten, da meine Systemumgebung "Windows 10" ist. Grüße Hans-Werner ;-)) (C) MAKRO Sub SearchAndReplace(ODT as String) Dim aSearch() Dim aReplace() Dim oD as Object Dim aD() as Variant aSearch = array("Ä" ,"Ö" ,"Ü" ,"ä" ,"ö" ,"ü" ,"ß") aReplace = array("Ae","Oe","Ue","ae","oe","ue","ss") Dim aPV(0) as New com.sun.star.beans.PropertyValue aPV(0).name = "Hidden" aPV(0).value = True oD = StarDesktop.loadComponentFromURL(ConvertToURL(ODT),"_blank",0,aPV()) For i = 0 to ubound(aSearch) oReplace = oD.CreateReplaceDescriptor With oReplace .SetSearchString(aSearch(i)) .SetReplaceString(aReplace(i)) .SearchCaseSensitive = True End With oD.replaceAll(oReplace) Next oD.StoreAsURL(ConvertToURL(ODT),aD()) oD.Close(False) End Sub (D) PERL use strict; use warnings; use File::Find; my @A; # Array my $D; # Directory my $I; # Index my $L; # LibreOffice my $M; # Macro my $S; # String $D = "E:/TMP/ODT/"; $L = "C:/Program Files/LibreOffice/program/soffice.exe"; $S = "macro:///Standard.Module1.SearchAndReplace"; find(sub{push @A,$File::Find::name if -f },$D); for ($I=0;$I <= $#A;$I++) { $M = $S."(".$A[$I].")"; `"$L" --nologo "$M"`; } -- Liste abmelden mit E-Mail an: users+unsubscr...@de.libreoffice.org Probleme? https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/ Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de Listenarchiv: https://listarchives.libreoffice.org/de/users/ Datenschutzerklärung: https://www.documentfoundation.org/privacy
Re: [de-users] alte Dokumente unlesbar (Codierung?)
Hallo Rainer, > > Hilfreich wäre nun für mich ein Tipp, wie ich das vorhandene Makro um > weitere Zeichen aufstocke. Gibt es in der entsprechenden Maske dafür > Schalter, Buttons, o.ä.? Wieso Schalter und Buttons? Thomas Krumbein hat Dir das schon sehr ausführlich aufgeschrieben. Du brauchst, wenn Du das Makro fertig hast, nur einen Button - und den drückst Du, wenn so ein Dokument mit den merkwürdigen Zeichen auftaucht. Dann werden alle Zeichen, die Du in dem Array aSearch aufgezeigt hast durch die Zeichen in aReplace ersetzt. Auch wie so ein Makro in eine Symbolleiste eingebaut werden kann steht in Thomas Mail. Gruß Robert -- Homepage: https://www.familiegrosskopf.de/robert -- Liste abmelden mit E-Mail an: users+unsubscr...@de.libreoffice.org Probleme? https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/ Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de Listenarchiv: https://listarchives.libreoffice.org/de/users/ Datenschutzerklärung: https://www.documentfoundation.org/privacy
Re: [de-users] alte Dokumente unlesbar (Codierung?)
Hallo Matthias, Am Mon, 06 Jan 2020 12:18:49 +0100 schrieb Matthias Müller Posteo.de : > Das ist der Punkt. Die Textdaten müssen extrahiert werden, Nach Allem, was ich gelesen habe und auch hier diskutiert wurde, läuft es (bis auf eine Ausnahme) wohl darauf hinaus - und das ufert leicht aus. > was einigermaßen komfortabel nur für ODT-Daten funktioniert und auch > nur hier automatisiert werden kann. Wobei mir nicht klar ist, wie dieser Schritt zzgl. die Rückkonvertierung ins odt-Format für viele Dateien in einem Rutsch möglich wäre (ich vermute: gar nicht). > Das ist vermutlich der einfachere Teil des Workflows. Word-Daten sind > komplett binär, das ist nix mit automatisch den Textteil extrahieren. > Erst nach dem Extrahieren ist es möglich mit einem Tool wie recode oä > zu konvertieren. > > Ab hier wird es beliebig komplex. > Eben. Ich aber kann mir solch einen Aufwand nicht ans Bein binden. > Diese Ausführlichkeit, hat einen einfachen Grund: Ich habe schon mit > solch einem Problem gekämpft und dann frustriert aufgegeben. Und das > waren bereits Textdaten, die allerdings von Windows nach Linux > transferiert wurden. > Au weia... > Falls du es doch versuchen willst, läuft das ganze auf Scripten raus. > Werkzeuge mit denen du dann arbeiten müsstest wären > "gzip" / "gunzip" um die SO-/LO-Daten zu entpacken > "find" um sie zu finden und sie dann mit > "mv" oder "cp" zu verschieben oder kopieren > Für das Ersetzen der seltsamen (eigentlich regulären Unicode-) > Zeichen kommen diverse Werkzeuge in Frage: "tr", "sed", "recode" und > wahrscheinlich noch ein paar. > s.o.: Scheitert am Aufwand. Der muss in Grenzen bleiben. > Aus meiner Sicht die einfachste Methode, allerdings auch die mit dem > meisten Stumpsinn (und deshalb durchaus fehleranfäälig): > Mit LO öffnen und über Suchen/ersetzen (eventl mit RegEx-Hilfe) die > Dateien einzeln zu bearbeiten. Ja, ist wohl die (handwerklich) einfachste, aber eben auch sehr aufwändig, weil jede einzelne Datei bearbeitet werden muss. Insofern scheint sich mit der hier vorgeschlagenem (und von mir als bereits angewandt entdeckten) Makro-Variante das Ganze noch etwas komfortabler zu gestalten. Offenbar gibt es kein Mittel, solch ein Makro über viele Dateien auf einmal zu jagen. Hilfreich wäre nun für mich ein Tipp, wie ich das vorhandene Makro um weitere Zeichen aufstocke. Gibt es in der entsprechenden Maske dafür Schalter, Buttons, o.ä.? > Danach sofort als PDF/A exportieren. PDF/A deshalb, weil es ein > ISO-genormtes Archivformat ist, siehe > https://de.wikipedia.org/wiki/PDF/A > Exportiert LO denn nicht in PDF/A? Viele Grüße Rainer -- Liste abmelden mit E-Mail an: users+unsubscr...@de.libreoffice.org Probleme? https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/ Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de Listenarchiv: https://listarchives.libreoffice.org/de/users/ Datenschutzerklärung: https://www.documentfoundation.org/privacy
Re: [de-users] alte Dokumente unlesbar (Codierung?)
Hallo Marino, Am 06.01.2020 um 07:33 schrieb Marino Salvalaggio: Hallo, Rainer schrieb am 05.01.2020 um 21:19: Hallo, Am Sun, 5 Jan 2020 20:03:11 +0100 schrieb Wolfgang Jäth : Gibt es eine Möglichkeit, entweder einzelne Dokumente oder (besser noch) ganze Verzeichnisse in einem Rutsch korrigieren zu lassen? Ideal wäre ein Tool, das unter Ubuntu gut läuft. Ich fürchte, nein. Eventuell kannst du was mit dem Microsoft Word Viewer ( https://www.chip.de/downoads/DOC-Datei-oeffnen_42813011.html ) retten, Seite wurde nicht gefunden. Ist vermutlich auch ein Windows-Programm, oder? Und ehrlich gesagt frage ich mich, ob sich so ein Aufwand wirklich lohnt. Haben denn diese alten Dateien noch mehr als rein emotionalen Wert? Ob der User seine Dateien für Kaffeesatz lesen nutzt, oder ob das eine für ihn wichtige Studienarbeit war, ist doch irrelevant!! Es geht hier einzig und alleine darum, dass unsere so hochgelobte Digitalisierung es offensichtlich mit sich bringt, dass alter Code; habe solches selber schon erleben müssen; mit schmerzhaften Verlusten einher geht. - Und warum: Ganz einfach weil bei vielen Applikation, die Programmierer sich nicht an ein einheitliches Codieren von Daten halten! Jeder denkt, dass seine Hinterlegung für den User ja nicht nachvollziehbar sein muss; wichtig nur, dass es für ihn Zweckmässig ist. Der Grund für die aus jetziger Sicht fehlerhaften Zeichen ist ja noch nicht einmal eindeutig klar, weil Rainer nicht einmal sagen kann, wie die Dokumente erstellt wurden. Am wahrscheinlichsten scheint allerdings zu sein, dass es eine Frage der verwendeten Zeichensätze ist, und wenn dem so ist, liegt es an der historischen Entwicklung, dass sich nämlich erst ein Standard herausbilden musste bzw. dass man sich international geeinigt hat. Solange das nicht zutraf, hatten die Programmierer keine Chance, sich an "einheitliches Codieren von Daten zu halten". Solche Schuldzuweisungen gehen fehl. Die Folgen solches Denken trägt dann ja der User.. Wirklich ein enormer Fortschritt für die Geschichtsforschung... ps. Wolfgang, haben wir nicht kürzlich in einem anderen Zusammenhang von Codierung und Daten-durchgängig gesprochen? Ja, sonst würde ich gleich die Finger davon lassen. Gegenfrage zur analogen Welt: Hast Du alles an älteren Papierdokumenten vernichtet? Nichts mehr dazwischen, was z.B. 20 Jahre alt ist und mehr, als nr emotionalen Wert hat? Viele Grüße Rainer Gruß Gerhard -- Liste abmelden mit E-Mail an: users+unsubscr...@de.libreoffice.org Probleme? https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/ Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de Listenarchiv: https://listarchives.libreoffice.org/de/users/ Datenschutzerklärung: https://www.documentfoundation.org/privacy
Re: [de-users] alte Dokumente unlesbar (Codierung?)
Hallo Rainer und alle Diskutanten Am Montag, 6. Januar 2020, 08:06:51 CET schrieb Rainer: > Am Sun, 5 Jan 2020 21:59:48 +0100 > > schrieb gooly : > > >> Den Text öffnen, kopieren, in einen UTF-8-fähigen (sollten unter > > >> Linux alle sein) Texteditor einfügen, umcodieren und neue > > >> Textdatei mit LO erstellen. Das ist für alle zu ändernden Texte notwendig. Mit den SO-/LO- bzw Word-Texten geht automatisiert vermutlich gar nix. Möglicherweise bietet MS ein Tool dafür an, weiß ich aber nicht. > > > > > > Funktioniert nicht. Beispiel: das Wort "für" (im alten Dokument > > > > > "fŸr"): > > Wenn es nur die 7 deutschen Sonderzeichen sind: üöäÜÖÄß > > könnte man die doch einfach "replace Ÿ mit ü" machen. Ja, darauf läuft es raus, aber… > > Notepad++ hätte für soetwas die Option, solche Ersetzungen in allen > > geladenen Dateien auf einmal zu machen - vielleicht hätte gibt's das > > ja auch auf Linux? … das ist ein Editor für Windows, der … > Ja, mit Hilfskonstruktionen ist es möglich, Notepad++ zum Laufen zu > bringen … mit wine zum funktionieren gebracht werden muss. Habe ich noch nicht versucht, werde es aber demnächst mal tun. > (oder die Alternative "Notepadqq" zu nutzen). Ist zumindest in den Debian-Repos nicht zu finden. > Aber wie ich > meiner gestrigen Antwort auf Dein Posting schon schrieb: Es handelt > sich ja um einen Texteditor, und ich kann mir im Moment nicht > vorstellen, wie damit LO-Dateien im odt-Format geladen und bearbeitet > werden sollen. Das ist der Punkt. Die Textdaten müssen extrahiert werden, was einigermaßen komfortabel nur für ODT-Daten funktioniert und auch nur hier automatisiert werden kann. Das ist vermutlich der einfachere Teil des Workflows. Word-Daten sind komplett binär, das ist nix mit automatisch den Textteil extrahieren. Erst nach dem Extrahieren ist es möglich mit einem Tool wie recode oä zu konvertieren. Ab hier wird es beliebig komplex. Nicht nur die Codierung des Textes nuss betrachtet werden, sondern auch die Umgebung (Sprachumgebung, Codierung, Betriebssystem, …) auf dem Rechner, der die Umkodierung machen soll. Der Texteditor, mit dem die Kontrollen (die sind zwingend) gemacht werden ist ein Faktor. Bzw kann er Unicode, schaltet er automatisch zwischen den Codierungen um, welcher Zeichensatz kommt zur Darstellung zum Einsatz. Nicht ganz unwichtig ist auch, ob die Daten dann zwischen Win, Linux, iOS hin und her geschoben werden. Da wird teilweise schon mal automatisch konvertiert, je nachdem welches Transportmittel eingesetzt wird. Diese Ausführlichkeit, hat einen einfachen Grund: Ich habe schon mit solch einem Problem gekämpft und dann frustriert aufgegeben. Und das waren bereits Textdaten, die allerdings von Windows nach Linux transferiert wurden. Falls du es doch versuchen willst, läuft das ganze auf Scripten raus. Werkzeuge mit denen du dann arbeiten müsstest wären "gzip" / "gunzip" um die SO-/LO-Daten zu entpacken "find" um sie zu finden und sie dann mit "mv" oder "cp" zu verschieben oder kopieren Für das Ersetzen der seltsamen (eigentlich regulären Unicode-) Zeichen kommen diverse Werkzeuge in Frage: "tr", "sed", "recode" und wahrscheinlich noch ein paar. Aus meiner Sicht die einfachste Methode, allerdings auch die mit dem meisten Stumpsinn (und deshalb durchaus fehleranfäälig): Mit LO öffnen und über Suchen/ersetzen (eventl mit RegEx-Hilfe) die Dateien einzeln zu bearbeiten. Danach sofort als PDF/A exportieren. PDF/A deshalb, weil es ein ISO-genormtes Archivformat ist, siehe https://de.wikipedia.org/wiki/PDF/A -- Mit freundlichen Grüßen Matthias Müller Diese Mail ist mit OpenPGP signiert! Zum überprüfen der Signatur, der Integrität und Authentizität meiner Mails kann man OpenPGP (https://www.openpgp.org/) installieren. Bitte senden Sie als Antwort auf meine E-Mails reine Text-Nachrichten! -- Liste abmelden mit E-Mail an: users+unsubscr...@de.libreoffice.org Probleme? https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/ Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de Listenarchiv: https://listarchives.libreoffice.org/de/users/ Datenschutzerklärung: https://www.documentfoundation.org/privacy
Re: [de-users] alte Dokumente unlesbar (Codierung?)
Am 05.01.2020 um 21:19 schrieb Rainer: > Hallo, > > Am Sun, 5 Jan 2020 20:03:11 +0100 > schrieb Wolfgang Jäth : >> > >> > Gibt es eine Möglichkeit, entweder einzelne Dokumente oder (besser >> > noch) ganze Verzeichnisse in einem Rutsch korrigieren zu lassen? >> > Ideal wäre ein Tool, das unter Ubuntu gut läuft. >> >> Ich fürchte, nein. Eventuell kannst du was mit dem Microsoft Word >> Viewer >> ( https://www.chip.de/downoads/DOC-Datei-oeffnen_42813011.html ) >> retten, > > Seite wurde nicht gefunden. Chip sscheint die Seiten zeitlich zu kodieren; jetzt wird sie bei mir in der History als https://www.chip.de/downloads/DOC-Datei-oeffnen_42813011.html?icp=sigExpired geladen; ansonsten suchst du auf www.chip.de nach "DOC - Datei öffnen". > Ist vermutlich auch ein Windows-Programm, oder? Ja; wird aber von M$ nicht weiter entwickelt und angeboten. Daher der "Umweg" über Chip, die haben das noch in ihrem Downloadbereich. Btw., der von dir gepostete Dateianfang ("ÐÏ#ࡱ#á") stellt die Werte (hex) "D0 CF 11 E0 A1 B1 1A E1" dar, und das ist laut https://www.filesignatures.net/index.php?page=search=D0CF11E0A1B11AE1=SIG die Dateisignatur von u.a.[1] DOC-Dateien. Welche Dateiendung hat die Datei denn überhaupt? Wenn du es genau wissen willst, kannst du ja mal in der Datei nachschauen; da müsste bei Word-Dokumenten so nach ca. ner halben Seite oder so eine Sequenz der Art "Microsoft Word 6.0-Dokument MSWordDoc Word.Document.6" o. ä. kommen. Wenn wir die genaue Version wüssten, könnten wir etwas besser raten, anhand der damals üblichen Zeichenkodierungen. BTW.II: Vom Patchen der Dateien, wie in einem anderen Posting vorgeschlagen, würde ich dringend abraten; bzw. das _*NIE!*_ auf die Originale anwenden, sondern höchstens auf Kopien. Diese Dateien enthalten auch jede Menge Steuerzeichen, Binärdaten usw. Ich hab es schon viel zu oft erlebt, dass Programme solche Daten nicht als echte Binärdatei einlesenn sondern als Textdatei, und dabei derartige Steuerzeichen usw. ganz oder teilweise usw. als ungültig einfach unterschlagen. Berüchtigt dafür ist v. a. der Wert 0x00. Und dann ist das Dokuemnt u.U. *gar* nicht mehr brauchbar, weil kaputtrepariert. [1] möglich wären aber auch XLS, MSWorks, MS Office, u.v.m. >> Und ehrlich gesagt frage ich mich, ob sich so ein Aufwand wirklich >> lohnt. Haben denn diese alten Dateien noch mehr als rein emotionalen >> Wert? >> > Ja, sonst würde ich gleich die Finger davon lassen. Gegenfrage zur > analogen Welt: Hast Du alles an älteren Papierdokumenten vernichtet? > Nichts mehr dazwischen, was z.B. 20 Jahre alt ist und mehr, als nr > emotionalen Wert hat? Ich möchte jetzt nicht ausschließen, dass ich noch irgendwo ein oder zwei [tm] alte DM-Banknoten übersehen habe. Und ich weiß, dass ich nen ganzen Stapel Handbücher zu v. a. Küchen-, aber auch anderen Geräten und Produkten habe, darunter müssten auch welche sein, die dieses Alter erreicht oder überschriten haben. Die meisten der Geräte existieren auch noch (damals hat man eben noch nciht auf Obsoleszenz gebaut). Und Bekannte von mir haben eine Eigentumswohnung, die haben mit Sicherheit noch die damaligen Kaufverträge usw. in ihren Unterlagen. Aber derartige Dokumente haben tatsächlich noch mehr als nur rein emotionalen Wert. Auch sonst liegt sicher noch einiges Papierenes herum, das aber in der Tat nur noch emotionalen Wert besitzt. Wolf 'und oft nicht mal mehr den, sondern schlicht und einfach nur das Glück, tief genug vergraben zu sein, um bei bisherigen Entrümpelaktionen übersehen worden zu sein' gang -- Donald Trump ist ein großer Visionär, der seiner Zeit weit voraus ist: Er verbreitet schon jetzt den Slogan "make America great again", obwohl dieser erst in der Ära /nach/ ihm seine volle Bedeutung entfalten wird. -- Liste abmelden mit E-Mail an: users+unsubscr...@de.libreoffice.org Probleme? https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/ Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de Listenarchiv: https://listarchives.libreoffice.org/de/users/ Datenschutzerklärung: https://www.documentfoundation.org/privacy
Re: [de-users] alte Dokumente unlesbar (Codierung?)
Hallo Robert, ein Nachtrag: Am Mon, 6 Jan 2020 08:16:37 +0100 schrieb Rainer : > Am Mon, 6 Jan 2020 07:59:24 +0100 > schrieb Robert Großkopf : > > > > SUB SearchReplace > > oReplace = ThisComponent.CreateReplaceDescriptor > > oReplace.SetSearchString("Š") > > oReplace.SetReplaceString("ä") > > ThisComponent.replaceAll(oReplace) > > oReplace = ThisComponent.CreateReplaceDescriptor > > oReplace.SetSearchString("†") > > oReplace.SetReplaceString("Ü") > > ThisComponent.replaceAll(oReplace) > > END SUB > > > > Ich habe jetzt nur 2 der Zeichen aus Deinem Beispiel übernommen. > > Insgesamt dürften es ja 7 sein. > > Es sind deutlich mehr mehr - z.B. ç, Ç, ã, Ã, ñ, Ñ, õ, Õ, á, Á, ó, Ó, > â, . etc. Dennoch halte ich die Aufgabe für überschaubar, weil es > ja nicht unendlich viele Zeichen sind. > > > Also einfach aneinanderreihen und das > Makro mit einem Button in > > Writer in eine Symbolleiste direkt einbinden. > > Ok. Leider habe ich null Ahnung vom Erstellen von Makros, weiß also > nicht, wie ich diese Aufgabe anpacken muss. > > > Öffnest Du jetzt eins der fraglichen Dokumente, so klickst Du auf > > den Button und die entsprechenden Zeichen werden ersetzt. > > > Das klingt schon mal gut ;-) > Das Makro-Thema muss ich vor vielen Jahren schon einmal "in der Mache" gehabt und dann komplett aus den Augen verloren haben. Jedenfalls habe ich kaum noch wahrgenommen, dass es hier in der Symbolleiste einen Button "Sonderzeichen" gibt - und siehe da: Dahinter verbirgt sich auch ein Makro. Ein Test hat gezeigt, dass es funktioniert. So sieht es aus: https://paste.ubuntu.com/p/c8N2rqKTzB/ Die von mir erwähnten, zusätzlichen Zeichen sind zwar nicht dabei, aber es ist gut möglich, dass ich sie damals noch gar nicht benutzt habe. Falls erforderlich, müsste ich das Makro erweitern. Die Frage ist nur: Wie geht das? Ins vorhandene Makro einfach einen Abschnitt per copy 'n' paste neu einfügen und anpassen? Viele Grüße Rainer -- Liste abmelden mit E-Mail an: users+unsubscr...@de.libreoffice.org Probleme? https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/ Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de Listenarchiv: https://listarchives.libreoffice.org/de/users/ Datenschutzerklärung: https://www.documentfoundation.org/privacy
Re: [de-users] alte Dokumente unlesbar (Codierung?)
Hallo Rainer, bei mehr Werten nutze Arrays und ne Schleife. Achte dabei, dass Du Groß- und Kleinschreibung unterscheiden musst und dass die Anzahl der beiden Listen identisch ist! SUB MySearchReplace dim aSearch() dim aReplace() aSearch = array("ç","Ç","ã","Ã","ñ","Ñ","õ","Õ","á","Á", ) aReplace = array("ä","Ä",..) For i = 0 to ubound(aSearch) oReplace = ThisComponent.CreateReplaceDescriptor With oReplace .SetSearchString(aSearch(i)) .SetReplaceString(aReplace(i)) .SearchCaseSensitive = True end with ThisComponent.replaceAll(oReplace) next END SUB Wenn Du Dir die beiden Arrays wie oben genau untereinander schreibst, so kannst Du Zeichen für Zeichen exakt zuordnen. Das Ganze dann in MeineMakros-> z.B. Standard -> Modul1 kopieren (oder besser: leg dir ne eigene Bibliothek an), dann noch ne Button erzeugen (Extras - Anpassen ...Entweder Symbolleiste oder Menü -> Makro zuordnen) Fertig. VG Thomas Am 06.01.2020 um 08:16 schrieb Rainer: Hallo Robert, Am Mon, 6 Jan 2020 07:59:24 +0100 schrieb Robert Großkopf : SUB SearchReplace oReplace = ThisComponent.CreateReplaceDescriptor oReplace.SetSearchString("Š") oReplace.SetReplaceString("ä") ThisComponent.replaceAll(oReplace) oReplace = ThisComponent.CreateReplaceDescriptor oReplace.SetSearchString("†") oReplace.SetReplaceString("Ü") ThisComponent.replaceAll(oReplace) END SUB Ich habe jetzt nur 2 der Zeichen aus Deinem Beispiel übernommen. Insgesamt dürften es ja 7 sein. Es sind deutlich mehr mehr - z.B. ç, Ç, ã, Ã, ñ, Ñ, õ, Õ, á, Á, ó, Ó, â, . etc. Dennoch halte ich die Aufgabe für überschaubar, weil es ja nicht unendlich viele Zeichen sind. Also einfach aneinanderreihen und das > Makro mit einem Button in Writer in eine Symbolleiste direkt einbinden. Ok. Leider habe ich null Ahnung vom Erstellen von Makros, weiß also nicht, wie ich diese Aufgabe anpacken muss. Öffnest Du jetzt eins der fraglichen Dokumente, so klickst Du auf den Button und die entsprechenden Zeichen werden ersetzt. Das klingt schon mal gut ;-) Viele Grüße Rainer -- Liste abmelden mit E-Mail an: users+unsubscr...@de.libreoffice.org Probleme? https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/ Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de Listenarchiv: https://listarchives.libreoffice.org/de/users/ Datenschutzerklärung: https://www.documentfoundation.org/privacy