Falsche 'Steuerzeichen' durch Formatierung ersetzen

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

pano
*
Beiträge: 16
Registriert: Fr, 25.08.2006 21:39

Falsche 'Steuerzeichen' durch Formatierung ersetzen

Beitrag von pano »

Hallo!

Ich bin auf der Suche nach ein paar Zeilen Code. Die Lösung dürfte sehr simpel sein, aber schwer genug für mich, um nicht in einigen einschlägigen Bibliotheken etwas zu finden, aus dem ich schlau werden könnte :)

Und zwar arbeite ich neuerdings mit der Literaturdatenbank Bibliographix, die ganz große klasse ist!! Einen Schönheitsfehler gibt es jedoch im Zusammenspiel mit Oo, und das ist die Auszeichnung bestimmter bibliografischer Angaben in Kapitälchen. Im von Bib kompilierten odt-Dokument werden Passagen, die als Kapitälchen angezeigt werden sollen, folgedermaßen wiedergegeben:

{#scaps Weber}

Jetzt also meine Frage: Wie kann ich mit Oo-Bordmitteln (Makro?) meinen Text entsprechend scannen und alle {#scaps autor} in Kapitälchen-AUTOR verwandeln? Eine Alternative wäre natürlich auch, das caps-Gemüse zu löschen und dem Text darin eine Zeichenvorlage zuzuweisen...

Danke schon jetzt für Eure Hilfe (obwohl ich keinen Code-Schnippel vorweisen kann, der meine ernsthaften Eigen-Bemühungen nachweist :) )

pano
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Beitrag von Stephan »

Im von Bib kompilierten odt-Dokument


Was soll das sein?
Jetzt also meine Frage: Wie kann ich mit Oo-Bordmitteln (Makro?) meinen Text entsprechend scannen und alle {#scaps autor} in Kapitälchen-AUTOR verwandeln? Eine Alternative wäre natürlich auch, das caps-Gemüse zu löschen und dem Text darin eine Zeichenvorlage zuzuweisen...
da ich nicht weiß was ein 'kompilliertes odt Dokument' im Konkreten ist kann ich zunächst nur vermuten es wäre zumindest ein Text in OOo-Writer geöffnet, der Ausdrücke der Form: {#scaps Weber} enthält.
Falls das so ist würde ich mit Suchen-Ersetzen arbeiten.

beispielsweise:
*suche erste alle Ausdrücke der Form {#scaps Weber}
*weise dann eine auffällige Formatierung zu (meinethalben Schriftfarbe Lila)
*suche nun alle {#scaps die lila sind und lösche sie
Suche alle } die lila sind und lösche sie
Suche alles was jetzt noch lila ist und entferne das Lila und vergib das Attribut Kapitälchen



Gruß
Stephan
pano
*
Beiträge: 16
Registriert: Fr, 25.08.2006 21:39

Beitrag von pano »

Stephan hat geschrieben:Was soll das sein?
tatsächlich etwas kryptisch, sorry: die literaturdatenbank bibliographix fügt dynamische literaturverweise in textdokumente ein, welche später durch das programm gegen entsprechende 'harte' informationen ersetzt werden...
Stephan hat geschrieben:da ich nicht weiß was ein 'kompilliertes odt Dokument' im Konkreten ist kann ich zunächst nur vermuten es wäre zumindest ein Text in OOo-Writer geöffnet, der Ausdrücke der Form: {#scaps Weber} enthält.
Falls das so ist würde ich mit Suchen-Ersetzen arbeiten.

beispielsweise:
*suche erste alle Ausdrücke der Form {#scaps Weber}
*weise dann eine auffällige Formatierung zu (meinethalben Schriftfarbe Lila)
*suche nun alle {#scaps die lila sind und lösche sie
Suche alle } die lila sind und lösche sie
Suche alles was jetzt noch lila ist und entferne das Lila und vergib das Attribut Kapitälchen
Im Prinzip keine schlechte Idee, nur ist der Inhalt zwischen '{#scaps ' und '}' leider nicht immer Weber. Da kommen bis zu fünfzig verschiedene Namen rein, was eine Vorgehensweise 'von Hand' nicht praktikabel macht...

aber danke! pano
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Beitrag von Stephan »

Im Prinzip keine schlechte Idee, nur ist der Inhalt zwischen '{#scaps ' und '}' leider nicht immer Weber.
Ja, das nahm ich an
was eine Vorgehensweise 'von Hand' nicht praktikabel macht...
verstehe ich nicht. Meines Erachtens suchst Du doch:

{#scaps <irgendetwas>}

oder nicht?

Falls ja, ist das doch mittels des regulären Ausdrucks:

{#scaps.+}

leicht zu bewerkstelligen.



Gruß
Stephan
pano
*
Beiträge: 16
Registriert: Fr, 25.08.2006 21:39

Beitrag von pano »

Reguläre Ausdrücke: Der Begriff hat mir gefehlt. Wusste nicht, das es sowas gibt...

So sieht es tatsächlich ganz gut aus. Allerdings wird bei zwei Fundstellen im gleichen Absatz der gesamte Bereich zwischen der ersten und der letzten geschwungenen Klammer markiert. Bei der Suche von hinten werden die jeweils ersten Stellen komplett ausgelassen...

Hmm: Könnte wohl einen Zwischenschritt machen und nach lila '}.+{'-Stellen suchen und die wieder schwarz machen. Aber dann erwische ich die beiden Klammern auch mit. Kann ich mit regulären Ausdrücken auch von den Fundstellen ein Zeichen demarkieren?

Gruß. pano
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Beitrag von Stephan »

Allerdings wird bei zwei Fundstellen im gleichen Absatz der gesamte Bereich zwischen der ersten und der letzten geschwungenen Klammer markiert.
Wenn die Ausdrücke mehrfach in einem Absatz auftauchen mußt Du statt:

{#scaps.+}

den Ausdruck:

{#scaps[^{]+}

verwenden.




Gruß
Stephan
pano
*
Beiträge: 16
Registriert: Fr, 25.08.2006 21:39

Beitrag von pano »

ok, danke. nur wie lösche ich im 'ersetzen'-dialog ein zeichen? die liste der regulären ausdrücke hilft mir da irgendwie nicht weiter :cry:
Antworten