Ékezetes magyar szöveg ékezettelenítése?

Szövegszerkesztő
molngab
Hozzászólások: 24
Csatlakozott: 2010. július 26., hétfő 19:16

Ékezetes magyar szöveg ékezettelenítése?

Hozzászólás Szerző: molngab »

Üdv!


Mi a legjobb megoldás LO Writert használva egy magyar ékezetes szöveg ékezetmentesítésére?
Valami plugin vagy filter-a lényeg hogy automatikus legyen.


Köszönöm
OpenOffice 3.1 a Windows Vista -??n
Avatar
Zizi64
Globális moderátorok
Hozzászólások: 4034
Csatlakozott: 2008. november 12., szerda 21:22
Tartózkodási hely: Budapest

Re: Ékezetes magyar szöveg ékezettelenítése?

Hozzászólás Szerző: Zizi64 »

A legelső ötlet, ami az eszembe jut:
"Keresés és csere" funkció + makró.

Már ha azt érted alatta, hogy á->a, Á->A, é->e É->E...stb. csere történjen.
A Makrórögzítő használata közben végre kell hajtani manuálisan egy "Keresés és csere" műveletet. A keresés és cserénél be kell kapcsolnod a kis/nagy betűk megkülönböztetését, felvenni a makrót mondjuk az "á/a" cserével, aztán a makró kódot ciklusba kell szervezni, hogy a többi betűpárral is végigfusson az egész dokumentumon. Célszerű felvenni a makrórögzítővel egy "visszaugrást" is a dokumentum elejére, hogy ne kelljen beavatkozni, amikor ez egyik cserével elér a dokumentum végéig.

Ha viszont ismered az API függvényeket, és jártas vagy a programozásban, akkor nem a Makrórögzítő használatát javaslom, hanem célszerűbb azokat használva MEGÍRNI a makrót.

A kész, működő makrót pedig hozzá lehet rendelni egy új menüponthoz, gyorsbillentyű-kombinációhoz, vagy eszköztár ikonhoz az egyszerű és gyors elérés érdekében.
Sok sikert!
Kovács Tibor (W10x64Pro/W7x64P: 7.5.8;
winPenPack/PortableApps: LO3.3.1-7.6.2, AOO4.1.14
Ha megoldódott a probléma, jelöld a témaindító hozzászólásod címének szerkesztésével. Írd elé: [Megoldva].
Avatar
Zizi64
Globális moderátorok
Hozzászólások: 4034
Csatlakozott: 2008. november 12., szerda 21:22
Tartózkodási hely: Budapest

Re: Ékezetes magyar szöveg ékezettelenítése?

Hozzászólás Szerző: Zizi64 »

Ezt a kódot a Makrórögzítővel vettem fel, aztán a For... ciklust, és a Keres/Csere tömböket kézzel applikáltam bele.

Kód: Egész kijelölése

REM  *****  BASIC  *****

sub Ekezettelenito
rem ----------------------------------------------------------------------
rem define variables
dim document   as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")


rem ----------------------------------------------------------------------
dim args1(18) as new com.sun.star.beans.PropertyValue
args1(0).Name = "SearchItem.StyleFamily"
args1(0).Value = 2
args1(1).Name = "SearchItem.CellType"
args1(1).Value = 0
args1(2).Name = "SearchItem.RowDirection"
args1(2).Value = true
args1(3).Name = "SearchItem.AllTables"
args1(3).Value = false
args1(4).Name = "SearchItem.Backward"
args1(4).Value = false
args1(5).Name = "SearchItem.Pattern"
args1(5).Value = false
args1(6).Name = "SearchItem.Content"
args1(6).Value = false
args1(7).Name = "SearchItem.AsianOptions"
args1(7).Value = false
args1(8).Name = "SearchItem.AlgorithmType"
args1(8).Value = 0
args1(9).Name = "SearchItem.SearchFlags"
args1(9).Value = 65536
args1(10).Name = "SearchItem.SearchString"
rem args1(10).Value = "Á" Rem ezt majd a kiegészítésban adom meg, ciklikusan...
args1(11).Name = "SearchItem.ReplaceString"
rem args1(11).Value = "A" Rem ezt majd a kiegészítésban adom meg, ciklikusan...
args1(12).Name = "SearchItem.Locale"
args1(12).Value = 255
args1(13).Name = "SearchItem.ChangedChars"
args1(13).Value = 2
args1(14).Name = "SearchItem.DeletedChars"
args1(14).Value = 2
args1(15).Name = "SearchItem.InsertedChars"
args1(15).Value = 2
args1(16).Name = "SearchItem.TransliterateFlags"
args1(16).Value = 1024
args1(17).Name = "SearchItem.Command"
args1(17).Value = 3
args1(18).Name = "Quiet"
args1(18).Value = true




REM --------------------------------------------------------------------------------------
REM A felvett kód kiegészítése: 

KeresTomb = array("á","é","í","ó","ö","ő","ú","ü","ű","Á","É","Í","Ó","Ö","Ő","Ú","Ü","Ű")

REM Angol karakterkészlettel:
CsereTomb = array("a","e","i","o","o","o","u","u","u","A","E","I","O","O","O","U","U","U")

REM Távirati stílusban:
REM CsereTomb = array("aa","ee","ii","oo","oe","oee","uu","ue","uee","AA","EE","II","OO","OE","OEE","UU","UE","UEE")

For i = 0 to 17

dispatcher.executeDispatch(document, ".uno:GoToStartOfDoc", "", 0, Array())

args1(10).Value = KeresTomb(i)
args1(11).Value = CsereTomb(i)
dispatcher.executeDispatch(document, ".uno:ExecuteSearch", "", 0, args1())

next i
REM --------------------------------------------------------------------------------------




end sub
És itt egy konkrét mintafájl a beágyazott makróval. Természetesen - ha minden dokumentumban szeretnéd használni -, akkor át kell emelned a makró-kódot a program Saját makrók - Standard Könyvtárának egy moduljába.
Ekezettelenito.odt
(19.98 KiB) Letöltve 110 alkalommal.
Sok sikert!
Kovács Tibor (W10x64Pro/W7x64P: 7.5.8;
winPenPack/PortableApps: LO3.3.1-7.6.2, AOO4.1.14
Ha megoldódott a probléma, jelöld a témaindító hozzászólásod címének szerkesztésével. Írd elé: [Megoldva].
Avatar
Zizi64
Globális moderátorok
Hozzászólások: 4034
Csatlakozott: 2008. november 12., szerda 21:22
Tartózkodási hely: Budapest

Re: Ékezetes magyar szöveg ékezettelenítése?

Hozzászólás Szerző: Zizi64 »

Köszönöm
OpenOffice 3.1 a Windows Vista -??n
Ja, és nem ártana frissíteni már a programverziódat és/vagy az aláírásodat...
Sok sikert!
Kovács Tibor (W10x64Pro/W7x64P: 7.5.8;
winPenPack/PortableApps: LO3.3.1-7.6.2, AOO4.1.14
Ha megoldódott a probléma, jelöld a témaindító hozzászólásod címének szerkesztésével. Írd elé: [Megoldva].
Válasz küldése