Dopplungen: Mehrfach verwendete Zitate im Text suchen

Mach nur. Aber wenn man schon mit einem Export arbeitet, wäre ein Word Makro wohl der schönere Weg.

Episch war bezogen auf die Sprachelemente, die teils viele Zeichen enthalten. Ein Befehl in COBOL ist oft sehr lang. Leider habe ich aktuell kein Beispiel zur Hand.
Wie hast Du „episch“ aufgefasst?

Gruß aus MG
Klaus

Hmm, ich spreche kein VBA. Aber du hast Recht, das in Word oder ähnlichen zu machen wäre komfortabler.

Ich brauche kein Beispiel, die Erinnerung verblasst zwar allmählich, ist aber noch da. :wink: Ich bezog episch auf den Aufwand es zu lernen bzw. was damit zu bewerkstelligen. Wirklich schwierig fand ich COBOL nicht.

Schwierig war COBOL nicht, das stimme ich Dir zu. Aber soviel zu schreiben. :wink:

Gruß aus MG
Klaus

Ich musste nochmal nachschauen … Du hast Recht :smiley:

IDENTIFICATION DIVISION.
PROGRAM-ID. HELLOWORLD.

PROCEDURE DIVISION.
DISPLAY "Hello World in COBOL!".
STOP RUN.

Aber zum Thema: Falls jemand hier halbwegs fliessend VBA spricht, eine Übersetzung von @writers_headroom 's Skript wäre bestimmt willkommen, nützlich und durchaus nicht unrelevant für diesen Thread.

1 „Gefällt mir“

Frag doch (auf die schnelle, ungetestet):

Sub MarkDuplicateParagraphsRed()
    Dim dict As Object
    Dim para As Paragraph
    Dim paraText As String
    
    ' Dictionary für Absatztexte erstellen (Late Binding)
    Set dict = CreateObject("Scripting.Dictionary")
    
    ' Durch alle Absätze im Dokument gehen
    For Each para In ActiveDocument.Paragraphs
        
        ' Absatztext holen und säubern
        paraText = Trim(para.Range.Text)
        
        ' (Optional) Falls Groß-/Kleinschreibung ignoriert werden soll:
        ' paraText = LCase(paraText)
        
        ' Prüfen, ob Absatz schon im Dictionary vorhanden ist
        If dict.Exists(paraText) Then
            ' Absatz ist bereits vorgekommen -> rot markieren
            para.Range.Font.Color = wdColorRed
        Else
            ' Absatz ist neu -> in Dictionary hinzufügen
            dict.Add paraText, 1
        End If
    Next para
    
    ' Aufräumen
    Set dict = Nothing
    
    MsgBox "Doppelte Absätze wurden in Rot markiert.", vbInformation, "Makro fertig"
End Sub
2 „Gefällt mir“

Habe ich doch. :wink:

Ich spiele morgen mal ein bisschen damit rum. Heute komme ich nicht dazu.

Als Mac User fühle ich mich bei VBA ausgeschlossen. :wink:

Gruß aus MG
Klaus

Wenn z. B. Excel geöffnet ist unter „Extras“ - „Makro“ - „Visual Basic Editor“. Gibt es da auch. Aber du brauchst halt M$ Office. Ansonsten gibt es bestimmt sinnvolle Alternativen. Oder eben doch .txt und Python. Wobei es für Python bestimmt Bibliotheken für den Umgang mit xyz Dateiformaten gibt.

Vermutlich ist @writers_headroom da aber fitter drin als ich. Ich programmiere nur noch zum Spass und wenn ich Lust habe :wink:

1 „Gefällt mir“

Ich muss gestehen, das habe ich übersehen. Ich dachte VBA ist speziell Microsoft.
Es gbit leider auch kein MS Access für den Mac.
Das Office 365 Paket habe ich.

Gruß aus MG
Klaus

Access brauchst du für das obige Script nicht. Es läuft in Word, allerdings nur unter Windows. Am Mac kommt die Fehlermeldung, dass die „Objekterstellung durch ActiveX-Komponente nicht möglich“ sei. Ich vermute, das dafür die Zeile mit „CreateObject(„Scripting.Dictionary“)“ verantwortlich ist und dass unter macOS keine ActiveX-Komponenten unterstützt werden.

Allerdings hat mich das auf die Idee gebracht, das VBA-Script in Javascript zu übersetzen und auf eine HTML-Seite anzuwenden. Damit kann man aus Papyrus einen HTML-Export durchführen und der Webbrowser zeigt anschließend die doppelten Absätze an.

Das Javascript sieht so aus:

<script language="javascript" type="text/javascript">
	function MarkDuplicateParagraphs() {
		const dict = new Array();
		const para = document.getElementsByTagName("p");
		for (let i = 0; i < para.length; i++) {
			let p = para[i].textContent.trim();
			if (dict.includes(p)) {
				para[i].style.backgroundColor = "yellow";
			}
			else {
				dict.push(p);
			}
		}
	}
	window.addEventListener("load", MarkDuplicateParagraphs);	
</script>

Dieses Script setzt man in Papyrus unter Dokument > Dokument-Eigenschaften > Spezielles > HTML-Header für das Export-Format HTML ein. Beim nächsten HTML-Export erscheinen die doppelten Absätze dann mit gelbem Hintergrund in Safari, Firefox, Chrome etc.

3 „Gefällt mir“

Das wird ja immer besser hier :slight_smile:

1 „Gefällt mir“

Das ich für das Script kein MS Access brauche ist mir klar.
Aber für den Mac habe ich bisher keine vergleichbare Anwendung gefunden.
SIcher es gibt Claris Filemaker aber für ab und an eine Datenbank zu gestalten, incl. Front- und Backend, ist es mir zu kostenintensiv.

Gruß aus MG
Klaus

cool.

1 „Gefällt mir“