[GastForen Programme Print/Bildbearbeitung Adobe InDesign Grep 1. Zeichen im Absatz mit Zeichenstil auszeichen wenn es vom 1. des vorherigen Absatzes abweicht

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Print/Bildbearbeitung - Photos, Layout, Design
Themen
Beiträge
Moderatoren
Letzter Beitrag

Grep 1. Zeichen im Absatz mit Zeichenstil auszeichen wenn es vom 1. des vorherigen Absatzes abweicht

Minimac
Beiträge gesamt: 55

7. Dez 2019, 00:51
Beitrag # 1 von 14
Bewertung:
(8413 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Liebe Foristen,
in einem Ortsregister möchte ich immer, wenn der 1. Buchstabe im aktuellen Absatz ein anderer ist als im vorherigen Absatz, ein Zeichenformat anwenden. Das könnte ich nun 26 manuel machen oder vielleicht mit einem "intelligenten" Absatzformat.

Das erste Zeichen des aktuellen Absatzes bekomme ich noch hin, aber wie geht das mit dem Vergleich mit dem 1. Zeichen des vorherigen Absatzes? Geht das überhaupt?
Ein lookbehind allein reicht ja nicht, ich brauche ja 2 Fundstellen die dann auch noch verglichen werden müssen.

Die Alternative ist halt, das ganze per Script zu erledigen, aber das ist mir diesmal nicht "smart genug". Hat da jemand eine Idee oder kann wenigsten sagen: vergiss es, das geht nicht per grep sondern nur per Script.

Gruß
Michael
X

Grep 1. Zeichen im Absatz mit Zeichenstil auszeichen wenn es vom 1. des vorherigen Absatzes abweicht

Kai Rübsamen
  
Beiträge gesamt: 4684

9. Dez 2019, 09:21
Beitrag # 2 von 14
Beitrag ID: #573205
Bewertung:
(8329 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Michael,

Grepstile funktionieren nur absatzweise. D.h. es besteht keine Intelligenz den Inhalt des vorherigen Absatzes innerhalb eines Stils auslesen und es geht in der Tat nur per Skript.


als Antwort auf: [#573196]

Grep 1. Zeichen im Absatz mit Zeichenstil auszeichen wenn es vom 1. des vorherigen Absatzes abweicht

Minimac
Beiträge gesamt: 55

11. Dez 2019, 14:26
Beitrag # 3 von 14
Beitrag ID: #573240
Bewertung:
(8141 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Kai,
gut, wenn das Problem nicht mit einem Absatzformat zu erschlagen ist dann ist das eben so.
Aber denkbar wäre noch, eine Grep Suche zu basteln sofern man dort Absatzübergreifend suchen kann. Denn ich denke, diese Suche ist, wenn das Register mal wieder länger ist, immer noch schneller als wenn ich per Schleife mich durch alle Absätze wühle und dort jeweils das erste Zeichen vergleiche.
Am Ende ist es mir ja egal, ob ich die Suche scripte oder das Register „per Script und Absatzweise“ durchlaufe. Fix soll es halt sein :-)
Prinzipiell interessiert mich eben auch, ob man mit Grep 2 Fundstellen vergleichen kann und je nach Ergebniss „so oder anders“ ersetzen kann.


als Antwort auf: [#573205]

Grep 1. Zeichen im Absatz mit Zeichenstil auszeichen wenn es vom 1. des vorherigen Absatzes abweicht

Minimac
Beiträge gesamt: 55

12. Dez 2019, 21:32
Beitrag # 4 von 14
Beitrag ID: #573261
Bewertung:
(8075 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo, ich nochmal,
hat wirklich keiner eine Idee wie man per Grep in diesem Beispiel das erste B nach dem Axel-Springer-Pl. findet bzw im weiteren Verlauf die anderen "Anfangsbuchstaben"?
Es muß ja nicht unbedingt in ein Absatzformat integriert werden, es reicht, wenn einfach nur die Fundstelle mit einem Zeichenformat belegt wird. Wenn es wirklich nicht mit GREP geht, dann muß ich halt in den Sauren Apfel beißen un mich Zeilenweise per Script durch den Text kämpfen. Nur elegant ist doch anders :-)

Code
Arnoldstr.  E18/19 
Augustenburger Str. B20/21
Axel-Springer-Pl. D/E25
[b]Bahrenfelder Ch. B16-C18
Bahrenfelder Steindamm C18/19



als Antwort auf: [#573240]

Grep 1. Zeichen im Absatz mit Zeichenstil auszeichen wenn es vom 1. des vorherigen Absatzes abweicht

Thomas Richard
Beiträge gesamt: 19324

13. Dez 2019, 00:20
Beitrag # 5 von 14
Beitrag ID: #573263
Bewertung:
(8057 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Ich weiß nicht, was dich daran so stört, einfach per Script das erste Zeichen in Zeile n mit dem ersten Zeichen der Zeile n-1 zu vergleichen und im Falle der Ungleichheit oder nicht vorhandensein dem Zeichen in Zeile n einen anderen Stil zu verpassen?

Grep geht halt nun mal absatzweise vor und fällt somit für Absatzübergreifendes aus.


als Antwort auf: [#573261]

Grep 1. Zeichen im Absatz mit Zeichenstil auszeichen wenn es vom 1. des vorherigen Absatzes abweicht

MarioF
Beiträge gesamt: 389

13. Dez 2019, 15:26
Beitrag # 6 von 14
Beitrag ID: #573288
Bewertung:
(7993 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Moin,
woher kommen die Daten des Ortsregister? Ist es eine einmalige Kiste?


als Antwort auf: [#573263]

Grep 1. Zeichen im Absatz mit Zeichenstil auszeichen wenn es vom 1. des vorherigen Absatzes abweicht

Kai Rübsamen
  
Beiträge gesamt: 4684

13. Dez 2019, 18:30
Beitrag # 7 von 14
Beitrag ID: #573294
Bewertung:
(7970 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Michael, die intelligente Lösung wäre das Skript ;-). Du musst ja verschiedene Zeichen über eine variable Länge vergleichen. Wenn du einen Suchstring a … b erfasst hast, müsste ja die GREP-Suche wieder ums eins zurückspringen, damit du b … c vergleichen kannst. Ich mache mir über sowas keine Gedanken mehr. Wenn ich da nicht sofort eine einfache Lösung sehe, schreibe ich mir ein kleines Skript.


als Antwort auf: [#573288]

Grep 1. Zeichen im Absatz mit Zeichenstil auszeichen wenn es vom 1. des vorherigen Absatzes abweicht

Minimac
Beiträge gesamt: 55

16. Dez 2019, 23:49
Beitrag # 8 von 14
Beitrag ID: #573332
Bewertung:
(7476 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Also diese Register kommen aus Stadtplänen oder Landkarten. Die Teile können auch gerne mal größer werden und dann dauern Script eben auch schon mal etwas länger bei mehreren tausend Ortsnamen (Also Kartograph werde ich des öfteren mit derartigen "Texten" konfrontiert und darf die formatieren). Und da diese Formatierungen immer erst ganz zum Schluß kommen wenn schon alles andere fertig ist, pressiert es dann hat auch mal und dann ist es ein Unterschied, ob eine Suche das in 3 Minuten oder 30 Minuten mit einem Script erledigt. Daher war ich auf der Suche nach einer "möglichst schnellen" Bearbeitung.

Das Grep nur Absatzweise funktioniert, glaube ich nicht, man kann ja auch Absatzmarken bzw den Text zwischen mehreren Absatzmarken finden. Absatzformate mit Grep-Stilen sind aber natürlich auf einzelne Absätze "beschränkt". Nur könnte ich ja auch gut damit leben, wenn es "nur" über die "normale" Grep-Suche funktioniert.
Letztendlich wollte ich ja auch in Erfahrung bringen, ob Grep überhaupt Vergleiche wie hier benötigt, durchführen kann.

Als Fazit bleibe ich also erstmal bei meinem einfachen Script welches sich stur durch alle Absätze graben muß auch wenn es viele sind und daher etwas dauert.

Danke an alle, die über mein Problem nachgedacht haben.


als Antwort auf: [#573294]

Grep 1. Zeichen im Absatz mit Zeichenstil auszeichen wenn es vom 1. des vorherigen Absatzes abweicht

WernerPerplies
Beiträge gesamt: 2759

17. Dez 2019, 07:59
Beitrag # 9 von 14
Beitrag ID: #573335
Bewertung:
(7429 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Moin,

Zitat Daher war ich auf der Suche nach einer "möglichst schnellen" Bearbeitung.


Dann wäre es vielleicht hilfreich, über die Optimierung solch eines Skriptes nachzudenken.


als Antwort auf: [#573332]

Grep 1. Zeichen im Absatz mit Zeichenstil auszeichen wenn es vom 1. des vorherigen Absatzes abweicht

waldviertler
Beiträge gesamt: 43

17. Dez 2019, 14:42
Beitrag # 10 von 14
Beitrag ID: #573354
Bewertung:
(7390 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Du könntest diese Grep-Suche probieren:

Suchen:
Code
^(\u)(.+?)\r\1 


Ersetzen:
Code
$1\r$1$2\r$1 



Das funktioniert natürlich nur bei den Großbuchstaben - es funktioniert nicht bei zB [b].


Mit einer zweiten Suche dann
Code
^\u$ 


Ersetzen:
gewünschtes Absatzformat zuweisen


mfg
Martin


als Antwort auf: [#573335]

Grep 1. Zeichen im Absatz mit Zeichenstil auszeichen wenn es vom 1. des vorherigen Absatzes abweicht

Kai Rübsamen
  
Beiträge gesamt: 4684

17. Dez 2019, 15:51
Beitrag # 11 von 14
Beitrag ID: #573357
Bewertung:
(7371 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Michael, du klingst fast trotzig ;-).

GREP funktioniert nicht absatzweise, GREP-Stile aber schon. Wenn dein Skript für diese paar Einträge 30 Minuten dauert, hat Werner recht und man sollte das vielleicht mal optimieren.

Hast du schon mal daran gedacht, per GREP im Skript zu suchen oder per normaler Textsuche? Das hat den Vorteil, dass du einen String mehrfach untersuchen kannst und auch in einem Schritt das Alphabet abarbeiten kannst.

Wie sieht dein Skript-Ansatz bisher aus?


als Antwort auf: [#573332]

Grep 1. Zeichen im Absatz mit Zeichenstil auszeichen wenn es vom 1. des vorherigen Absatzes abweicht

waldviertler
Beiträge gesamt: 43

17. Dez 2019, 15:58
Beitrag # 12 von 14
Beitrag ID: #573358
Bewertung:
(7367 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hier ein besserer Grep-Suchen-Ansatz:

Suche:
Code
^(\u)((.+\r)+)\1 


Ersetzen:
Code
$1\r$1$2$1 



Dann weiter wie in meinem vorherigen Post.

mfg
Martin


als Antwort auf: [#573354]
(Dieser Beitrag wurde von waldviertler am 17. Dez 2019, 16:15 geändert)

Grep 1. Zeichen im Absatz mit Zeichenstil auszeichen wenn es vom 1. des vorherigen Absatzes abweicht

Minimac
Beiträge gesamt: 55

18. Dez 2019, 12:32
Beitrag # 13 von 14
Beitrag ID: #573371
Bewertung:
(7285 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
-> Kai,
ja manchmal bin ich hartnäckig wenn ich mit einer Lösung nicht 150% zufrieden bin. Dann suche ich gerne mal weiter oder frage Leute, die sich damit besser auskennen. Manchmal reicht ja schon ein veränderter Blickwinkel von außen um einen auf die richtige / bessere Spur zu bringen :-)


-> Martin (du bist mein Held der Woche oder sogar des Jahres),
dein erster Anlauf hat aus
Code
Auburn Walk  D4 
Aughavannagh Rd. J4
Aughrim St. D4/5
Aungier St. G7
Avondale Ave. C6
Avondale Rd. C6
Bachelors Walk E8
Baggot Ln. H10/11
Baggot St., Lower G9-H10
Baggot St., Upper H10


das hier gemacht (Die roten Buchstaben sind "zu viel" :
Code
A 
Aughavannagh Rd. J4
Aughrim St. D4/5
A
Aungier St. G7
Avondale Ave. C6
Avondale Rd. C6
B
Bachelors Walk E8
Baggot Ln. H10/11
B
Baggot St., Lower G9-H10
Baggot St., Upper H10


Mit der 2. Suche konnte ich dann die Zeilen mit dem einzelnen Buchstaben einen Zeichenstil zuweisen. Nur darf bei der 1. Suche nur das allererste A und B gefunden werden und die im speziellen Fall sollen weder A noch in einer eigenen Zeile auftauchen. Wenn ich einen derartigen Index habe, hab ich sogar schon einen GrepStil fertig bekommen, der mit die richtige Formatierung macht

Der 2. Ansatz ist aber aber "die Lösung". Damit wird jeder "Anfangsbuchstabe" des Alphabets erstmal gedoppelt. Wenn, wie in meinem Test, bei Z allerdings nur ein Eintrag steht, oder es bei einem anderen Buchstaben nur "eine Zeile" gibt, dann wird da nichts gefunden. Damit kann ich leben... 1x muß ich ja eh drüber schauen. Da merke ich das dann hoffentlich (auch ich kann mir ja die Anzahl der Ersetzungen ausgeben lassen wenn ich das ganze in ein Script gieße; wenn die nicht = 26 sind dann muß ich eben genau aufpassen beim hin schauen :-) )

Nun, nachdem ich das ganze "am Objekt" getestet habe kann ich sagen, das Martin sich seine goldene Weihnachtskugel verdient hat.
Mit
Code
^(\u)((.+\r)+)\1 

und Ersetzen durch
Code
$1\r$1$2$1 

wird jeweils der das erste Vorkommen von ABC etc gedoppelt.

Im 2. Schritt kann ich dann dieses Dopplungen mit
Code
(^\u)\r(^\u) 

suchen und durch $2 und dem richtigen Zeichenstil ersetzen. Oder, wenn diese Dopplung wirklich einmal erwünscht ist, auch einfach behalten :-)

Ganz viele Dank an Martin. Jetzt mache ich mich an die Arbeit und "optimiere" mein Script indem ich alles darin entsorge und diese 2 Suchvorgänge scripte. Schneller wird es dann wirklich nicht gehen und mein "Zufriedenheitsgrad" hat die oben erwähnten 150% erreicht.


Abschließend wünsche ich noch allen Mitlesern Frohe Weihnachten und einen Guten Rutsch in nächste Jahr.


als Antwort auf: [#573354]

Grep 1. Zeichen im Absatz mit Zeichenstil auszeichen wenn es vom 1. des vorherigen Absatzes abweicht

waldviertler
Beiträge gesamt: 43

18. Dez 2019, 17:17
Beitrag # 14 von 14
Beitrag ID: #573380
Bewertung:
(7255 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Freut mich, wenn ich auch mal helfen konnte!

mfg
Martin


als Antwort auf: [#573371]
X