Re: [de-users] Offtopic: unterstützte Prog-Sprachen [was: alte Dokumente unlesbar (Codierung?)]

2020-01-06 Diskussionsfäden Matthias Müller Posteo . de
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?)]

2020-01-06 Diskussionsfäden Thomas Krumbein

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?)]

2020-01-06 Diskussionsfäden 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.

-- 
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?)

2020-01-06 Diskussionsfäden Robert Großkopf
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?)

2020-01-06 Diskussionsfäden OoOHWHOoO

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?)

2020-01-06 Diskussionsfäden Rainer
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?)

2020-01-06 Diskussionsfäden Robert Großkopf
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?)

2020-01-06 Diskussionsfäden Rainer
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?)

2020-01-06 Diskussionsfäden OoOHWHOoO

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?)

2020-01-06 Diskussionsfäden Robert Großkopf
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?)

2020-01-06 Diskussionsfäden Rainer
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?)

2020-01-06 Diskussionsfäden Gerhard Weydt

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?)

2020-01-06 Diskussionsfäden Matthias Müller Posteo . de
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?)

2020-01-06 Diskussionsfäden Wolfgang Jäth
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?)

2020-01-06 Diskussionsfäden Rainer
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?)

2020-01-06 Diskussionsfäden Thomas Krumbein

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