Diese Notiz löschen
Hinweis zur Löschung inaktiver Anmeldungen: *klick*

Diese Notiz löschen
Keine Bestätigungsmail für die Registrierung erhalten? *klick*


Praxis:  Apple-App Drafts trotz Umstellung auf Abomodell weiter nutzen und ausbauen
#1

Kurzinfos zur Apple-App Drafts

Drafts ist eine APP für ipads und iphones, um die es inzwischen etwas still geworden ist. Längere Zeit wurde die APP u.a. von Lars Bobach in seinem Blog als sehr hilfreiches Tool für einfaches Texten beworben. Vorteile von Draft sind eine gute Markdown-Unterstützung und rasend schnelle und vielfältige Anbindungen und Exportmöglichkeiten, nicht nur als HTML-Export, sondern auch als schreibender Export direkt in Evernote, Dropbox und andere Web-Lösungen.

Besonders praktisch beim Evernote-Export ist, dass nicht nur neue Notizen (ggf. in Markdown einfach und schnell durchformatiert) erstellt, sondern dass Textentwürfe auch am Anfang oder am Ende einer bestehenden Evernote-Notiz eingefügt werden können.

Ein gutes Beispiel für die praktische Nutzung vom Drafts für das Sammeln und Übergeben von Ideen und Gedanken von unterwegs mit einem Tastendruck an Evernote findet sich dafür in dem gesonderten Beitrag von Herbert unter https://digital-cleaning.de/forum/showth...&pid=16000.

Drafts ist dabei mehr als nur ein einfacher Editor. Es bietet viele anpassbare "Prozesse" zum Verarbeiten und Verwerten der im Editor erstellten Texte an.


Gesunkene Attraktivität der aktuellen Drafts-App als Abosmodell

Stiller um die App ist es vermutlich auch dadurch geworden, dass die Herausgeber ihr Bezahlmodell umgestellt und damit viele Anwender verprellt haben könnten: Ehemals war Drafts (bis Drafts4) als Kaufversion verfügbar. Inzwischen ist die App jedoch auf ein Abomodell umgestellt.

Auch wenn 1,99 EUR je Monat oder 19,99 EUR im Jahresabo erst einmal schmal und überschaubar anmuten, so fragt es sich doch wofür - im Vergleich zum bereits für gutes Geld erworbenen Drafts4 - man zusätzlich und regelmäßig Geld für solch ein Abo für eine Art erweiterten Editor ausgeben soll. Wegen des Abomodells und fehlenden Nutzens bzw. erkennbaren und nachvollziehbar laufende Zahlungen rechtfertigenden Mehraufwandes hagelt es deswegen auch Kritik bei den Bewertungen im App-Store.

Noch unerfreulicher wird die Angelegenheit, wenn man sich die Begleitumstände anschaut, mit denen die Herausgeber die Nutzer in das Abomodell zu drücken versuchen:
  • Alle ehemals auf einer für Draft4 geschalteten Homepage bereit gehaltenen und von einer mehr oder minder regen Anwender-Community geteilten Beiträge, Diskussionen, Beispiele und Lösungen sind nicht mehr erreichbar. Die Homepage wurde gelöscht und die Beiträge wurden - etwas versteckt - in eine neu für die aktuelle Drafts-(Abo-) Version umgehängt. Das führt zu einer Fehlermeldung (siehe z.B. für die frühere Action: Save to Evernote and OmniFocus | Drafts Action Directory zum Link: http://drafts4-actions.agiletortoise.com/a/1Rl.)
  • Gleichzeitig mit dieser Umstellung wurde auch das Verfahren für das Teilen von Drafts-Lösungen geändert: Während die Lösungen früher im Detail auf der Homepage dargelegt wurden und auch die Schritte bzw. Skripte als Code einsehbar waren, gibt es jetzt nur noch einen "Install"-Button mit dem sich die Lösung (nur) in die aktuelle Drafts-(Abo-) Version installieren und erst dort im Detail analysieren und anpassen lässt. (Siehe z.B.: zu 'Write stuff in Today’s Journal and act on it later' unter https://actions.getdrafts.com/g/1Sd)
Schnelle Makro-Lösung zum Entschlüsseln aktueller Drafts-Lösungen

Da auch ich die eben beschriebenen Einschränkungen ärgerlich fand, mich diesem Diktat nicht unterwerfen wollte, trotzdem aber nicht von der (gelegentlichen, aber dankbaren) Nutzung von Drafts 4 absehen und dies vielleicht noch ausbauen möchte, habe ich mir heute morgen eine (Makro-) Lösung gebastelt, mit der sich auch für neue und aktuelle Drafts-Lösungen - zumindest für Frickler und Nerds ;-) - die Skripte und Detailschritte zur Not entschlüsseln und analysieren lassen.

Diese Lösung sei hier nachfolgend kurz erläutert und vorgestellt:

1. Schritt: Auslesen der Lösung aus dem Installations-Hyperlink

Aktuellere Drafts-Lösungen lassen sich auf der o.a. homepage mit Click auf den Button "Install" installieren. Wer sich den Hyperlink bzw. Statustext, der mit diesem Button verbunden ist, in der Satusleiste anschaut, erkennt, dass sich darin scheinbar das gesamte Skript mit allen Schritten und Kommentierungen in einer fortlaufenden "Textwüste" befindet.

Dieser Textstream lässt sich als Hyperlinkadresse im Browser kopioren und z.B. in einen Editor als ein riesiger, zusammenhängender Textblock einfügen .

2. Schritt: Decodieren von UTF-8 Zeichen

Beim Herumprobieren im Editor und mit etwas Recherche zeigt sich, dass sich in diesem Textblock zahllose, im Prinzip kryptische Codes für Zeichen im UTF-8 Format finden.

Mit Hilfe einer Zeichencodetabelle im Internet lässt sich dann zügig eine Makrolösung basteln, die die UTF8-Codes in sinnvoll lesbare Zeichen bzw. Character übersetzt.

In meinem Fall lief das mit einem Visual Basic-Makro in Word, dazu vorher mit 224 mit Hilfe von Excel-Text-Formeln schnell zusammengeschaufelten Codezeilen nach dem Muster ".Text = "%2F": .Replacement.Text = "/": .Execute Replace:=wdReplaceAll" alle denkbaren, mit UTF-8 verschüsselten Zeichen nacheinander wieder herstellt.

3. Schritt: Zeilenumbrüche und Tabs wiederherstellen

Auch danach ist der Code noch nicht fertig.

Unter anderem fehlen Zeilenumbrüche, die wiederherzustelen sind. Hier zeigt sich, dass sich passende Steuerzeichen für Zeilenumbrüche im Text an den Stellen überall dort finden, wo ein "\n" (mit nur einem Backslash) - für NewLine - steht. Ebenso gibt es u.U. auch Codeeinrückungen mit Tabulator, die wiederherzustellen sind und die mit der Zeichenfolge "\t" gekennzeichnet sind.

Um beides wiederherzustellen, empfehlen sich Ersetzungen mit regulären Ausdrücken (bzw. "Platzhaltern" wie es z.B. im erweiterten Word-Ersetzungsdialog irreführend heißt). Ersetzt werden müssen alle Vorkommen, die mit (nur) einem Backslash beginnen. Dies kann in Word (bzw. einem Word-VBA-Makro) mit einem Ersetzungstext wie folgt erfolgen:

    .Text = "([!\\])([\\]n)": .Replacement.Text = "\1^l": .Execute Replace:=wdReplaceAll
oder:
   .Text = "([!\\])([\\]t)": .Replacement.Text = "\1^t": .Execute Replace:=wdReplaceAll

4. Schritt: Verbleibende mit Backslash maskierte Zeichen vereinfachen:

Jetzt ist der Text schon gut in Form gebracht und lesbar. Allerdings finden sich ggf. noch an mehreren Stellen Doppel-"Backslash"-Zeichenfolgen für mit "Backslash"-maskierte Zeichenbefehle, die sich in der Regel in Textsstrings finden. Diese Zeichenfolgen lassen sich ebenfalls mit Ersetzungen auf solche mit nur einem Backslash reduzieren:

        .Text = "\\n": .Replacement.Text = "\n":  .Execute Replace:=wdReplaceAll    '   demaskierten Absatz-Code bereinigen
        .Text = "\\t": .Replacement.Text = "\t":  .Execute Replace:=wdReplaceAll    '   demaskierten Tab-Code bereinigen

Ebenso müssen Anführungsstreichen für Textstrings, die mit einem Backslash "maskiert" sind auf ein einfaches " zurückgeführt werden:

        .Text = "\""": .Replacement.Text = """": .Execute Replace:=wdReplaceAll ' demaskiertes Anführungszeichen Anführungszeichen

Ergebnis

Spätestens jetzt sollte das verschlüsselte Skript - in meinem Beispiel mit Hilfe von Word, Excel ud VBA - wiederhergestellt sein.

Nur die spezifischen Befehlsfolgen, die scheinbar von Drafts beim Installieren für das Anlegen von Drafts-Aktionen benötigt werden sind noch nicht vollständig aufgebröselt.

Fügt man den bereinigte Text in einen Editor wie notepad++ ein und aktiviert Syntaxhighlighting für Java-Skript, erschließt sich der ggf. gewünschte Code nun ziemlich gut.

Auch wenn man wie ich kein gelernter Programmierer ist, kann man sich das mit etwas Übung halbwegs gut erarbeiten, und eine spannende Drafts-Lösung auch in Drafts 4 ggf. nachbauen oder anpassen.


Nachfolgend habe ich noch einmal meinen vollständigen Word-VBA-Makrocode eingefügt.

Sicher gibt es auch bessere oder professionellere Makro-Umgebungen,
ich kann nur halt gut und schnell mit dieser Umgebung umgehen… ;-)


VG, Henning

--- 


Code:
'----------------------- Sub DraftInstallCode2Text() -----------------------
Public Sub DraftInstallCode2Text()
'
' Created     : 18.06.2020, Henning
' Purpose     : Installationscode mit JAVA-Script-Sequenzen aus einem "Draft-Install-Link" durch Erstzungen rekonstruieren/entschlüsseln
'               siehe z.B. den Install-Link unter https://actions.getdrafts.com/g/1Sd
' Requires    : ./.
'---------------------------------------------------------------------------------------
'
    With Selection.Find
       
      ' VOREINSTELLUNGEN, allgemein
        .ClearFormatting
        .Replacement.ClearFormatting
       
        .Forward = True
        .Wrap = wdFindContinue
        .format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchKashida = False
        .MatchDiacritics = False
        .MatchAlefHamza = False
        .MatchControl = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
   
      ' code: From UTF-8 to Character
        .Text = "%20": .Replacement.Text = " ":  .Execute Replace:=wdReplaceAll
        .Text = "%21": .Replacement.Text = "!":  .Execute Replace:=wdReplaceAll
        .Text = "%22": .Replacement.Text = """":  .Execute Replace:=wdReplaceAll
        .Text = "%23": .Replacement.Text = "#":  .Execute Replace:=wdReplaceAll
        .Text = "%24": .Replacement.Text = "$":  .Execute Replace:=wdReplaceAll
        .Text = "%25": .Replacement.Text = "%":  .Execute Replace:=wdReplaceAll
        .Text = "%26": .Replacement.Text = "&":  .Execute Replace:=wdReplaceAll
        .Text = "%27": .Replacement.Text = "'":  .Execute Replace:=wdReplaceAll
        .Text = "%28": .Replacement.Text = "(":  .Execute Replace:=wdReplaceAll
        .Text = "%29": .Replacement.Text = ")":  .Execute Replace:=wdReplaceAll
        .Text = "%2A": .Replacement.Text = "*":  .Execute Replace:=wdReplaceAll
        .Text = "%2B": .Replacement.Text = "+":  .Execute Replace:=wdReplaceAll
        .Text = "%2C": .Replacement.Text = ",":  .Execute Replace:=wdReplaceAll
        .Text = "%2D": .Replacement.Text = "-":  .Execute Replace:=wdReplaceAll
        .Text = "%2E": .Replacement.Text = ".":  .Execute Replace:=wdReplaceAll
        .Text = "%2F": .Replacement.Text = "/":  .Execute Replace:=wdReplaceAll
        .Text = "%30": .Replacement.Text = "0":  .Execute Replace:=wdReplaceAll
        .Text = "%31": .Replacement.Text = "1":  .Execute Replace:=wdReplaceAll
        .Text = "%32": .Replacement.Text = "2":  .Execute Replace:=wdReplaceAll
        .Text = "%33": .Replacement.Text = "3":  .Execute Replace:=wdReplaceAll
        .Text = "%34": .Replacement.Text = "4":  .Execute Replace:=wdReplaceAll
        .Text = "%35": .Replacement.Text = "5":  .Execute Replace:=wdReplaceAll
        .Text = "%36": .Replacement.Text = "6":  .Execute Replace:=wdReplaceAll
        .Text = "%37": .Replacement.Text = "7":  .Execute Replace:=wdReplaceAll
        .Text = "%38": .Replacement.Text = "8":  .Execute Replace:=wdReplaceAll
        .Text = "%39": .Replacement.Text = "9":  .Execute Replace:=wdReplaceAll
        .Text = "%3A": .Replacement.Text = ":":  .Execute Replace:=wdReplaceAll
        .Text = "%3B": .Replacement.Text = ";":  .Execute Replace:=wdReplaceAll
        .Text = "%3C": .Replacement.Text = "< ":  .Execute Replace:=wdReplaceAll
        .Text = "%3D": .Replacement.Text = "=":  .Execute Replace:=wdReplaceAll
        .Text = "%3E": .Replacement.Text = "> ":  .Execute Replace:=wdReplaceAll
        .Text = "%3F": .Replacement.Text = "?":  .Execute Replace:=wdReplaceAll
        .Text = "%40": .Replacement.Text = "@":  .Execute Replace:=wdReplaceAll
        .Text = "%41": .Replacement.Text = "A":  .Execute Replace:=wdReplaceAll
        .Text = "%42": .Replacement.Text = "B":  .Execute Replace:=wdReplaceAll
        .Text = "%43": .Replacement.Text = "C":  .Execute Replace:=wdReplaceAll
        .Text = "%44": .Replacement.Text = "D":  .Execute Replace:=wdReplaceAll
        .Text = "%45": .Replacement.Text = "E":  .Execute Replace:=wdReplaceAll
        .Text = "%46": .Replacement.Text = "F":  .Execute Replace:=wdReplaceAll
        .Text = "%47": .Replacement.Text = "G":  .Execute Replace:=wdReplaceAll
        .Text = "%48": .Replacement.Text = "H":  .Execute Replace:=wdReplaceAll
        .Text = "%49": .Replacement.Text = "I":  .Execute Replace:=wdReplaceAll
        .Text = "%4A": .Replacement.Text = "J":  .Execute Replace:=wdReplaceAll
        .Text = "%4B": .Replacement.Text = "K":  .Execute Replace:=wdReplaceAll
        .Text = "%4C": .Replacement.Text = "L":  .Execute Replace:=wdReplaceAll
        .Text = "%4D": .Replacement.Text = "M":  .Execute Replace:=wdReplaceAll
        .Text = "%4E": .Replacement.Text = "N":  .Execute Replace:=wdReplaceAll
        .Text = "%4F": .Replacement.Text = "O":  .Execute Replace:=wdReplaceAll
        .Text = "%50": .Replacement.Text = "P":  .Execute Replace:=wdReplaceAll
        .Text = "%51": .Replacement.Text = "Q":  .Execute Replace:=wdReplaceAll
        .Text = "%52": .Replacement.Text = "R":  .Execute Replace:=wdReplaceAll
        .Text = "%53": .Replacement.Text = "S":  .Execute Replace:=wdReplaceAll
        .Text = "%54": .Replacement.Text = "T":  .Execute Replace:=wdReplaceAll
        .Text = "%55": .Replacement.Text = "U":  .Execute Replace:=wdReplaceAll
        .Text = "%56": .Replacement.Text = "V":  .Execute Replace:=wdReplaceAll
        .Text = "%57": .Replacement.Text = "W":  .Execute Replace:=wdReplaceAll
        .Text = "%58": .Replacement.Text = "X":  .Execute Replace:=wdReplaceAll
        .Text = "%59": .Replacement.Text = "Y":  .Execute Replace:=wdReplaceAll
        .Text = "%5A": .Replacement.Text = "Z":  .Execute Replace:=wdReplaceAll
        .Text = "%5B": .Replacement.Text = "[":  .Execute Replace:=wdReplaceAll
        .Text = "%5C": .Replacement.Text = "\":  .Execute Replace:=wdReplaceAll
        .Text = "%5D": .Replacement.Text = "]":  .Execute Replace:=wdReplaceAll
        '.Text = "%5E": .Replacement.Text = "^":  .Execute Replace:=wdReplaceAll
        .Text = "%5F": .Replacement.Text = "_":  .Execute Replace:=wdReplaceAll
        .Text = "%60": .Replacement.Text = "`":  .Execute Replace:=wdReplaceAll
        .Text = "%61": .Replacement.Text = "a":  .Execute Replace:=wdReplaceAll
        .Text = "%62": .Replacement.Text = "b":  .Execute Replace:=wdReplaceAll
        .Text = "%63": .Replacement.Text = "c":  .Execute Replace:=wdReplaceAll
        .Text = "%64": .Replacement.Text = "d":  .Execute Replace:=wdReplaceAll
        .Text = "%65": .Replacement.Text = "e":  .Execute Replace:=wdReplaceAll
        .Text = "%66": .Replacement.Text = "f":  .Execute Replace:=wdReplaceAll
        .Text = "%67": .Replacement.Text = "g":  .Execute Replace:=wdReplaceAll
        .Text = "%68": .Replacement.Text = "h":  .Execute Replace:=wdReplaceAll
        .Text = "%69": .Replacement.Text = "i":  .Execute Replace:=wdReplaceAll
        .Text = "%6A": .Replacement.Text = "j":  .Execute Replace:=wdReplaceAll
        .Text = "%6B": .Replacement.Text = "k":  .Execute Replace:=wdReplaceAll
        .Text = "%6C": .Replacement.Text = "l":  .Execute Replace:=wdReplaceAll
        .Text = "%6D": .Replacement.Text = "m":  .Execute Replace:=wdReplaceAll
        .Text = "%6E": .Replacement.Text = "n":  .Execute Replace:=wdReplaceAll
        .Text = "%6F": .Replacement.Text = "o":  .Execute Replace:=wdReplaceAll
        .Text = "%70": .Replacement.Text = "p":  .Execute Replace:=wdReplaceAll
        .Text = "%71": .Replacement.Text = "q":  .Execute Replace:=wdReplaceAll
        .Text = "%72": .Replacement.Text = "r":  .Execute Replace:=wdReplaceAll
        .Text = "%73": .Replacement.Text = "s":  .Execute Replace:=wdReplaceAll
        .Text = "%74": .Replacement.Text = "t":  .Execute Replace:=wdReplaceAll
        .Text = "%75": .Replacement.Text = "u":  .Execute Replace:=wdReplaceAll
        .Text = "%76": .Replacement.Text = "v":  .Execute Replace:=wdReplaceAll
        .Text = "%77": .Replacement.Text = "w":  .Execute Replace:=wdReplaceAll
        .Text = "%78": .Replacement.Text = "x":  .Execute Replace:=wdReplaceAll
        .Text = "%79": .Replacement.Text = "y":  .Execute Replace:=wdReplaceAll
        .Text = "%7A": .Replacement.Text = "z":  .Execute Replace:=wdReplaceAll
        .Text = "%7B": .Replacement.Text = "{":  .Execute Replace:=wdReplaceAll
        .Text = "%7C": .Replacement.Text = "|":  .Execute Replace:=wdReplaceAll
        .Text = "%7D": .Replacement.Text = "}":  .Execute Replace:=wdReplaceAll
        .Text = "%7E": .Replacement.Text = "~":  .Execute Replace:=wdReplaceAll
        .Text = "%7F": .Replacement.Text = "":  .Execute Replace:=wdReplaceAll
        .Text = "%E2%82%AC": .Replacement.Text = "`":  .Execute Replace:=wdReplaceAll
        .Text = "%81": .Replacement.Text = "":  .Execute Replace:=wdReplaceAll
        .Text = "%E2%80%9A": .Replacement.Text = "‚":  .Execute Replace:=wdReplaceAll
        .Text = "%C6%92": .Replacement.Text = "ƒ":  .Execute Replace:=wdReplaceAll
        .Text = "%E2%80%9E": .Replacement.Text = "„":  .Execute Replace:=wdReplaceAll
        .Text = "%E2%80%A6": .Replacement.Text = "…":  .Execute Replace:=wdReplaceAll
        .Text = "%E2%80%A0": .Replacement.Text = "†":  .Execute Replace:=wdReplaceAll
        .Text = "%E2%80%A1": .Replacement.Text = "‡":  .Execute Replace:=wdReplaceAll
        .Text = "%CB%86": .Replacement.Text = "ˆ":  .Execute Replace:=wdReplaceAll
        .Text = "%E2%80%B0": .Replacement.Text = "‰":  .Execute Replace:=wdReplaceAll
        .Text = "%C5%A0": .Replacement.Text = "Š":  .Execute Replace:=wdReplaceAll
        .Text = "%E2%80%B9": .Replacement.Text = "‹":  .Execute Replace:=wdReplaceAll
        .Text = "%C5%92": .Replacement.Text = "Œ":  .Execute Replace:=wdReplaceAll
        .Text = "%C5%8D": .Replacement.Text = "":  .Execute Replace:=wdReplaceAll
        .Text = "%C5%BD": .Replacement.Text = "Ž":  .Execute Replace:=wdReplaceAll
        .Text = "%8F": .Replacement.Text = "":  .Execute Replace:=wdReplaceAll
        .Text = "%C2%90": .Replacement.Text = "":  .Execute Replace:=wdReplaceAll
        .Text = "%E2%80%98": .Replacement.Text = "‘":  .Execute Replace:=wdReplaceAll
        .Text = "%E2%80%99": .Replacement.Text = "’":  .Execute Replace:=wdReplaceAll
        .Text = "%E2%80%9C": .Replacement.Text = "“":  .Execute Replace:=wdReplaceAll
        .Text = "%E2%80%9D": .Replacement.Text = "”":  .Execute Replace:=wdReplaceAll
        .Text = "%E2%80%A2": .Replacement.Text = "•":  .Execute Replace:=wdReplaceAll
        .Text = "%E2%80%93": .Replacement.Text = "–":  .Execute Replace:=wdReplaceAll
        .Text = "%E2%80%94": .Replacement.Text = "—":  .Execute Replace:=wdReplaceAll
        .Text = "%CB%9C": .Replacement.Text = "˜":  .Execute Replace:=wdReplaceAll
        .Text = "%E2%84": .Replacement.Text = "":  .Execute Replace:=wdReplaceAll
        .Text = "%C5%A1": .Replacement.Text = "š":  .Execute Replace:=wdReplaceAll
        .Text = "%E2%80": .Replacement.Text = "›":  .Execute Replace:=wdReplaceAll
        .Text = "%C5%93": .Replacement.Text = "œ":  .Execute Replace:=wdReplaceAll
        .Text = "%9D": .Replacement.Text = "":  .Execute Replace:=wdReplaceAll
        .Text = "%C5%BE": .Replacement.Text = "ž":  .Execute Replace:=wdReplaceAll
        .Text = "%C5%B8": .Replacement.Text = "Ÿ":  .Execute Replace:=wdReplaceAll
        .Text = "%C2%A0": .Replacement.Text = "":  .Execute Replace:=wdReplaceAll
        .Text = "%C2%A1": .Replacement.Text = "¡":  .Execute Replace:=wdReplaceAll
        .Text = "%C2%A2": .Replacement.Text = "¢":  .Execute Replace:=wdReplaceAll
        .Text = "%C2%A3": .Replacement.Text = "£":  .Execute Replace:=wdReplaceAll
        .Text = "%C2%A4": .Replacement.Text = "¤":  .Execute Replace:=wdReplaceAll
        .Text = "%C2%A5": .Replacement.Text = "¥":  .Execute Replace:=wdReplaceAll
        .Text = "%C2%A6": .Replacement.Text = "¦":  .Execute Replace:=wdReplaceAll
        .Text = "%C2%A7": .Replacement.Text = "§":  .Execute Replace:=wdReplaceAll
        .Text = "%C2%A8": .Replacement.Text = "¨":  .Execute Replace:=wdReplaceAll
        .Text = "%C2%A9": .Replacement.Text = "":  .Execute Replace:=wdReplaceAll
        .Text = "%C2%AA": .Replacement.Text = "ª":  .Execute Replace:=wdReplaceAll
        .Text = "%C2%AB": .Replacement.Text = "«":  .Execute Replace:=wdReplaceAll
        .Text = "%C2%AC": .Replacement.Text = "¬":  .Execute Replace:=wdReplaceAll
        .Text = "%C2%AD": .Replacement.Text = "­":  .Execute Replace:=wdReplaceAll
        .Text = "%C2%AE": .Replacement.Text = "":  .Execute Replace:=wdReplaceAll
        .Text = "%C2%AF": .Replacement.Text = "¯":  .Execute Replace:=wdReplaceAll
        .Text = "%C2%B0": .Replacement.Text = "°":  .Execute Replace:=wdReplaceAll
        .Text = "%C2%B1": .Replacement.Text = "±":  .Execute Replace:=wdReplaceAll
        .Text = "%C2%B2": .Replacement.Text = "²":  .Execute Replace:=wdReplaceAll
        .Text = "%C2%B3": .Replacement.Text = "³":  .Execute Replace:=wdReplaceAll
        .Text = "%C2%B4": .Replacement.Text = "´":  .Execute Replace:=wdReplaceAll
        .Text = "%C2%B5": .Replacement.Text = "µ":  .Execute Replace:=wdReplaceAll
        .Text = "%C2%B6": .Replacement.Text = "¶":  .Execute Replace:=wdReplaceAll
        .Text = "%C2%B7": .Replacement.Text = "·":  .Execute Replace:=wdReplaceAll
        .Text = "%C2%B8": .Replacement.Text = "¸":  .Execute Replace:=wdReplaceAll
        .Text = "%C2%B9": .Replacement.Text = "¹":  .Execute Replace:=wdReplaceAll
        .Text = "%C2%BA": .Replacement.Text = "º":  .Execute Replace:=wdReplaceAll
        .Text = "%C2%BB": .Replacement.Text = "»":  .Execute Replace:=wdReplaceAll
        .Text = "%C2%BC": .Replacement.Text = "¼":  .Execute Replace:=wdReplaceAll
        .Text = "%C2%BD": .Replacement.Text = "½":  .Execute Replace:=wdReplaceAll
        .Text = "%C2%BE": .Replacement.Text = "¾":  .Execute Replace:=wdReplaceAll
        .Text = "%C2%BF": .Replacement.Text = "¿":  .Execute Replace:=wdReplaceAll
        .Text = "%C3%80": .Replacement.Text = "À":  .Execute Replace:=wdReplaceAll
        .Text = "%C3%81": .Replacement.Text = "Á":  .Execute Replace:=wdReplaceAll
        .Text = "%C3%82": .Replacement.Text = "Â":  .Execute Replace:=wdReplaceAll
        .Text = "%C3%83": .Replacement.Text = "Ã":  .Execute Replace:=wdReplaceAll
        .Text = "%C3%84": .Replacement.Text = "Ä":  .Execute Replace:=wdReplaceAll
        .Text = "%C3%85": .Replacement.Text = "Å":  .Execute Replace:=wdReplaceAll
        .Text = "%C3%86": .Replacement.Text = "Æ":  .Execute Replace:=wdReplaceAll
        .Text = "%C3%87": .Replacement.Text = "Ç":  .Execute Replace:=wdReplaceAll
        .Text = "%C3%88": .Replacement.Text = "È":  .Execute Replace:=wdReplaceAll
        .Text = "%C3%89": .Replacement.Text = "É":  .Execute Replace:=wdReplaceAll
        .Text = "%C3%8A": .Replacement.Text = "Ê":  .Execute Replace:=wdReplaceAll
        .Text = "%C3%8B": .Replacement.Text = "Ë":  .Execute Replace:=wdReplaceAll
        .Text = "%C3%8C": .Replacement.Text = "Ì":  .Execute Replace:=wdReplaceAll
        .Text = "%C3%8D": .Replacement.Text = "Í":  .Execute Replace:=wdReplaceAll
        .Text = "%C3%8E": .Replacement.Text = "Î":  .Execute Replace:=wdReplaceAll
        .Text = "%C3%8F": .Replacement.Text = "Ï":  .Execute Replace:=wdReplaceAll
        .Text = "%C3%90": .Replacement.Text = "Ð":  .Execute Replace:=wdReplaceAll
        .Text = "%C3%91": .Replacement.Text = "Ñ":  .Execute Replace:=wdReplaceAll
        .Text = "%C3%92": .Replacement.Text = "Ò":  .Execute Replace:=wdReplaceAll
        .Text = "%C3%93": .Replacement.Text = "Ó":  .Execute Replace:=wdReplaceAll
        .Text = "%C3%94": .Replacement.Text = "Ô":  .Execute Replace:=wdReplaceAll
        .Text = "%C3%95": .Replacement.Text = "Õ":  .Execute Replace:=wdReplaceAll
        .Text = "%C3%96": .Replacement.Text = "Ö":  .Execute Replace:=wdReplaceAll
        .Text = "%C3%97": .Replacement.Text = "×":  .Execute Replace:=wdReplaceAll
        .Text = "%C3%98": .Replacement.Text = "Ø":  .Execute Replace:=wdReplaceAll
        .Text = "%C3%99": .Replacement.Text = "Ù":  .Execute Replace:=wdReplaceAll
        .Text = "%C3%9A": .Replacement.Text = "Ú":  .Execute Replace:=wdReplaceAll
        .Text = "%C3%9B": .Replacement.Text = "Û":  .Execute Replace:=wdReplaceAll
        .Text = "%C3%9C": .Replacement.Text = "Ü":  .Execute Replace:=wdReplaceAll
        .Text = "%C3%9D": .Replacement.Text = "Ý":  .Execute Replace:=wdReplaceAll
        .Text = "%C3%9E": .Replacement.Text = "Þ":  .Execute Replace:=wdReplaceAll
        .Text = "%C3%9F": .Replacement.Text = "ß":  .Execute Replace:=wdReplaceAll
        .Text = "%C3%A0": .Replacement.Text = "à":  .Execute Replace:=wdReplaceAll
        .Text = "%C3%A1": .Replacement.Text = "á":  .Execute Replace:=wdReplaceAll
        .Text = "%C3%A2": .Replacement.Text = "â":  .Execute Replace:=wdReplaceAll
        .Text = "%C3%A3": .Replacement.Text = "ã":  .Execute Replace:=wdReplaceAll
        .Text = "%C3%A4": .Replacement.Text = "ä":  .Execute Replace:=wdReplaceAll
        .Text = "%C3%A5": .Replacement.Text = "å":  .Execute Replace:=wdReplaceAll
        .Text = "%C3%A6": .Replacement.Text = "æ":  .Execute Replace:=wdReplaceAll
        .Text = "%C3%A7": .Replacement.Text = "ç":  .Execute Replace:=wdReplaceAll
        .Text = "%C3%A8": .Replacement.Text = "è":  .Execute Replace:=wdReplaceAll
        .Text = "%C3%A9": .Replacement.Text = "é":  .Execute Replace:=wdReplaceAll
        .Text = "%C3%AA": .Replacement.Text = "ê":  .Execute Replace:=wdReplaceAll
        .Text = "%C3%AB": .Replacement.Text = "ë":  .Execute Replace:=wdReplaceAll
        .Text = "%C3%AC": .Replacement.Text = "ì":  .Execute Replace:=wdReplaceAll
        .Text = "%C3%AD": .Replacement.Text = "í":  .Execute Replace:=wdReplaceAll
        .Text = "%C3%AE": .Replacement.Text = "î":  .Execute Replace:=wdReplaceAll
        .Text = "%C3%AF": .Replacement.Text = "ï":  .Execute Replace:=wdReplaceAll
        .Text = "%C3%B0": .Replacement.Text = "ð":  .Execute Replace:=wdReplaceAll
        .Text = "%C3%B1": .Replacement.Text = "ñ":  .Execute Replace:=wdReplaceAll
        .Text = "%C3%B2": .Replacement.Text = "ò":  .Execute Replace:=wdReplaceAll
        .Text = "%C3%B3": .Replacement.Text = "ó":  .Execute Replace:=wdReplaceAll
        .Text = "%C3%B4": .Replacement.Text = "ô":  .Execute Replace:=wdReplaceAll
        .Text = "%C3%B5": .Replacement.Text = "õ":  .Execute Replace:=wdReplaceAll
        .Text = "%C3%B6": .Replacement.Text = "ö":  .Execute Replace:=wdReplaceAll
        .Text = "%C3%B7": .Replacement.Text = "÷":  .Execute Replace:=wdReplaceAll
        .Text = "%C3%B8": .Replacement.Text = "ø":  .Execute Replace:=wdReplaceAll
        .Text = "%C3%B9": .Replacement.Text = "ù":  .Execute Replace:=wdReplaceAll
        .Text = "%C3%BA": .Replacement.Text = "ú":  .Execute Replace:=wdReplaceAll
        .Text = "%C3%BB": .Replacement.Text = "û":  .Execute Replace:=wdReplaceAll
        .Text = "%C3%BC": .Replacement.Text = "ü":  .Execute Replace:=wdReplaceAll
        .Text = "%C3%BD": .Replacement.Text = "ý":  .Execute Replace:=wdReplaceAll
        .Text = "%C3%BE": .Replacement.Text = "þ":  .Execute Replace:=wdReplaceAll
        .Text = "%C3%BF": .Replacement.Text = "ÿ":  .Execute Replace:=wdReplaceAll


        ' Zeilenumbrüche und Tabs wiederherstellen
        .MatchWildcards = True    ' mit RegExp-Ersetzung

        .Text = "([!\\])([\\]n)": .Replacement.Text = "\1^l":  .Execute Replace:=wdReplaceAll   ' ersetzt mit neuer Zeile '^l', statt mit neuen Absatz '^p'
        .Text = "([!\\])([\\]n)": .Replacement.Text = "\1^l":  .Execute Replace:=wdReplaceAll   ' wegen mehrfachhintereinandfer erfolgender Zeilenumbrüche ,,,
        .Text = "([!\\])([\\]t)": .Replacement.Text = "\1^t":  .Execute Replace:=wdReplaceAll

        ' Zeichencode für maskierte Zeilenumbrüche oder Tabs "demaskieren"
        .MatchWildcards = False   ' ohne RegExp-Ersetzung

        .Text = "^l": .Replacement.Text = "^p":  .Execute Replace:=wdReplaceAll     '   Absätze wiederherstellen: '^l' =>'^p'
        .Text = "\\n": .Replacement.Text = "\n":  .Execute Replace:=wdReplaceAll    '   demaskierten Absatz-Code bereinigen
        .Text = "\\t": .Replacement.Text = "\t":  .Execute Replace:=wdReplaceAll    '   demaskierten Tab-Code bereinigen
        .Text = "\""": .Replacement.Text = """":  .Execute Replace:=wdReplaceAll    '   demaskiertes Anführungszeichen => Anführungszeichen

   
    End With


End Sub
Zitieren


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste