Zastąpienie znaków niedrukowanych"Enter"

Nie wiesz, gdzie umieścić swój post? Pisz tutaj!

Zastąpienie znaków niedrukowanych"Enter"

Postprzez Jaceno » Wt kwi 03, 2018 3:11 pm

Witam

Potrzebuję pozbyć się z tekstu znaków niedrukowanych Enter innym znakiem. Szukałem, ale większość wskazówek na ten temat dotyczy innych edytorów tekstu, których nie posiadam.

Podam przykład. Tekst wygląda tak:

Przykładowy tekst

Przykładowy tekst
Przykładowy tekst


A chce by wyglądał tak:

Przykłądowy tekst|Przykładowy tekst|Przykładowy tekst


Enter ma być zastąpiony znakiem ,,|"

Proszę o pomoc i z góry dziękuję.
OpenOffice 4.1.5 na Windows 7
Jaceno
 
Posty: 2
Dołączył(a): Wt kwi 03, 2018 2:57 pm

Re: Zastąpienie znaków niedrukowanych"Enter"

Postprzez Jan_J » Wt kwi 03, 2018 9:43 pm

We Writerze, operacja Znajdź i zamień przy włączonym w opcjach (dostępnych w tym samym oknie dialogowym) użyciu wyrażeń regularnych; w polu Znajdź:
symbol końca akapitu (Enter) kodowany jest jako $
symbol końca wiersza (Shift+Enter) kodowany jest jako \n
Wobec tego zamiana Enterów na | jest bezproblemowa.
JJ
LO (6.1|6.2) ∙ AOO 4.1.6 ∙ Python (3.7|2.7) ∙ Unicode 12 ∙ LATEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Fedora|CentOS|SUSE)
Jan_J
 
Posty: 3948
Dołączył(a): Pt maja 22, 2009 1:20 pm
Lokalizacja: Wrocław

Re: Zastąpienie znaków niedrukowanych"Enter"

Postprzez Jaceno » Śr kwi 04, 2018 9:32 am

Działa, dziękuję Ci bardzo za pomoc.

Mam jeszcze jedno pytanie, mianowicie muszę w ten sposób wyedytować sporą ilość różnych dokumentów do tego pozbyć się pozostałości htmla np: </b> <b> zamienić na spację. Pomyślałem o stworzeniu makra, ale za bardzo sobie z tym nie radzę.
Mogę prosić o jakąś formułę na "Znajdź i zastąp" ?

Pozdrawiam
OpenOffice 4.1.5 na Windows 7
Jaceno
 
Posty: 2
Dołączył(a): Wt kwi 03, 2018 2:57 pm

Re: Zastąpienie znaków niedrukowanych"Enter"

Postprzez Jan_J » Śr kwi 04, 2018 1:35 pm

Jaceno napisał(a):[...], mianowicie muszę w ten sposób wyedytować sporą ilość różnych dokumentów do tego pozbyć się pozostałości htmla np: </b> <b> zamienić na spację. [...]
Writer nieszczegónie się do tego nadaje. Ale same wyrażenia regularne jak najbardziej, więc także użycie formularza Znajdź i Zamień da radę, choć być może wielokrotnie.

Ja bym raczej nie wklejał tekstu od razu do Writera. Kod HTML jest zapisem tekstowym, zapisałbym go w pliku tekstowym i poddał obróbce wyrażeniami regularnymi, a wynik wczytał albo wkleił do Writera.
Taka obróbka mogłaby wykorzystywać program lub język radzący sobie z wyrażeniami tego typu. Klasyka: awk, perl, sed, ew. bardziej współczesny Python. Python jest dostępny w ramach Open/LibreOffice, da się też zastosować w makrze.
Bliżej użytkownika byłyby edytory z obsługą wyrażeń regularnych. Writer oczywiście, ale do nieformatowanych tekstów bardziej nadawałby się Notepad++.

Znaczniki xml-owe są w 3 rodzajach:
otwierający <x> albo <x a="p" c="q">
zamykający </x> (zawsze bez dodatkowych treści -- atrybutów)
pusty <x /> albo <x a="p" c="q" />
Wszystkie "pasują" do wyrażenia regularnego <[^>]*>
które opisuje frazy ograniczone nawiasami <...>, wewnątrz których nie ma symbolu >
Z zastrzeżeniem: będzie to działać OK, o ile cały znacznik znajduje się w pojedynczym wierszu. Bo np. znacznik
Kod: Zaznacz cały   Rozszerz widokZwiń widok
<p
id="a1"
class="summary"
>

jest legalny, ale rozciąga się na 4 wiersze i skanery wyrażeń regularnych (oprócz Perlowego) go nie obejmą, gdyż działają w obrębie wiersza (we Writerze: bloku akapitowego).

Natomiast elementy znakowania xml są w 2 rodzajach:
niepusty, postaci <x>bla bla bla</x> albo <x a="p" c="q">bla bla bla</x>
i pusty, składający się tylko z pustego znacznika jak wyżej.

Gdyby taki element mieścił się w jednym wierszu / akapicie, to (przy pewnych uproszczeniach) opisujący go wzorzec wyglądałby tak:
Kod: Zaznacz cały   Rozszerz widokZwiń widok
<([^ >]+)[^>]*>.*?</\1 *>

We Writerze nie da się go łatwo zastosować, jako że odwołanie do podwyrażenia, czyli \1, nie jest zaimplementowane we frazie "znajdź". Tym niemniej gdyby poszukiwać samych znaczników b, to wzorzec
Kod: Zaznacz cały   Rozszerz widokZwiń widok
<b[^>]*>.*?</b *>

da radę.

Więcej o wyrażeniach regularnych, np. https://pl.wikipedia.org/wiki/Wyra%C5%BCenie_regularne. Zalecam pominięcie rozdziału dot. teorii.



Wyrażenia regularne + makro w Basicu dla Calca, patrz np. https://forum.openoffice.org/en/forum/v ... 45&t=72048
JJ
LO (6.1|6.2) ∙ AOO 4.1.6 ∙ Python (3.7|2.7) ∙ Unicode 12 ∙ LATEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Fedora|CentOS|SUSE)
Jan_J
 
Posty: 3948
Dołączył(a): Pt maja 22, 2009 1:20 pm
Lokalizacja: Wrocław


Powrót do Forum pierwszego kontaktu

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 0 gości