You are here: PSPad forum > České diskuzní fórum > Re: Možný bug doplňování diakritiky

Re: Možný bug doplňování diakritiky

#1 Možný bug doplňování diakritiky

Posted by: peersoft | Date: 2020-10-01 19:42 | IP: IP Logged

Dobrý den,
právě jsem chtěl převést text bez diakritiky na text s diakritikou a vzpomněl jsem si na funkci, která mi dřív fungovala, leč v této verzi (už několik let poté) nějak ne. Respektive ona funguje jen tak, že správně převede jen slova, která se ve slovníku vyskytují jen s čárkou, ale jakmile existuje víc možností, že by slovo mohlo být s háčky nebo jen s čárkou, nepřevede se, to samé pokud by se vyskytlo jen s háčkem. Mám slovník poslední 3.2.5. Jak jsem zjistil, slovník je stále v kódování ANSI, tak jsem si řekl, co se stane, když ho převedu do UTF-8. No, převedl jsem, program se spustil, ale jakmile jsem funkci použil, po několika vteřinách program zhavaroval (výpis níže):
Exception description:

Access violation at address 0040C92A in module 'PSPad.exe'. Read of address 000DC1C5.

Exception class: EAccessViolation
Exception address: 0040C92A
----------------------------------------------------------------------------------------------------
Stack list, generated 01/10/2020 21:36:02
[0040C92A] System.@WStrFromUStr + $6
[00690068] Vcl.Forms.TFormStyleHook.WMShowWindow + $100
[0090C255] uParams.TPSPadParam.SpellOpenDictionary (Line 2504, "uParams.pas" + 40) + $22
[00A85158] uMain.TfPSPad.aAddDiacriticExecute (Line 7226, "uMain.pas" + 1) + $21
[00A92890] uMain.TfPSPad.ActionListExecute (Line 12093, "uMain.pas" + 11) + $7
[005694EC] System.Actions.TContainedActionList.ExecuteAction + $70
[00409CDE] System.@CallDynaInst + $6
[0056C4E5] Vcl.ActnList.TCustomAction.Execute + $69
[004ED08B] System.Classes.TBasicActionLink.Execute + $13
[0069B377] Vcl.Menus.TMenuItem.Click + $93
[0069CB47] Vcl.Menus.TMenu.DispatchCommand + $13
[0067BBD4] Vcl.Forms.TCustomForm.WMCommand + $38
[006B0172] Vcl.Controls.TControl.WndProc + $2BE
[0054E5BF] Vcl.Graphics.FreeMemoryContexts + $9B
[004EDF7C] System.Classes.StdWndProc + $14
[006B505A] Vcl.Controls.TWinControl.WndProc + $686
[0067859D] Vcl.Forms.TCustomForm.WndProc + $691
[006B45DC] Vcl.Controls.TWinControl.MainWndProc + $2C
[004EDF7C] System.Classes.StdWndProc + $14
[006822E7] Vcl.Forms.TApplication.ProcessMessage + $F3
[0068232A] Vcl.Forms.TApplication.HandleMessage + $A
[0068265D] Vcl.Forms.TApplication.Run + $C9
[00AC02F5] PSPad.PSPad (Line 119, "" + 55) + $7
----------------------------------------------------------------------------------------------------
Program : C:\Program Files (x86)\PSPad editor\PSPad.exe 5.0.4 (521)
System : Windows 10 Professional x64, Version: 10.0, Build: 4A62,
Processor: Intel, Intel(R) Core(TM) i7-4600U CPU @ 2.10GHz, 2690 MHz MMX
Display : 1920x1080 pixels, 32 bpp PPI: 96
Skin : Windows
----------------------------------------------------------------------------------------------------
Active Controls Hierarchy:
TPSSynEdit "FEditor1"
TfChildEdit "fEdit_G17609843"
----------------------------------------------------------------------------------------------------

--
Peer

Options: Reply | Quote | Up ^


#2 Re: Možný bug doplňování diakritiky

Posted by: pspad | Date: 2020-10-02 02:50 | IP: IP Logged

Slovnik je v Ansi úmyslně. To, že jej prevedete do jiného kodovani a program s tím nepočítá nemůžete klást za vinu programu.

Pokud je vic variant slov - s carkou, s háčkem, s čárkou a háčkem, podle ceho by se měl program rozhodnout, které použít? PSPad neobsahuje žádnou umělou intekigenci na rozbor věty, pochopení smyslu věty apod. Je to jednoduchá tupá funkce, která doplní diakritiku na základě seznamu slov. Pak je na uživateli, aby opravil zbytek chyb ručně.

Options: Reply | Quote | Up ^


#3 Re: Možný bug doplňování diakritiky

Posted by: peersoft | Date: 2020-10-02 07:40 | IP: IP Logged

Dobrý den,
neplácám tu jen tak, chápu, že máte asi milion jiných věcí k řešení, ale právě jsem si ověřil, že se starým PSPadem 4.5.7 to fungovalo (se slovníkem 3.2.3), kdy se převedlo vše správně až na poslední slovo. Nejnovější PSPad na tom je znatelně hůř, správně převede jen slovo "kterého", ostatní nechá beze změny. Testoval jsem následující větu:
Zkusebni text, na zaklade ktereho se ukaze, zda to driv fungovalo lip.
To s tím slovníkem a převodem do UTF-8 byl jen myšlenkový pochod, ne nikoho vinit, proboha, jen k zamyšlení právě kvůli tomu, že to ve starší verzi, která měla úplně jinak práci s kódováním, fungovalo líp, takže jsem si pamatoval dobře.

--
Peer

Options: Reply | Quote | Up ^


#4 Re: Možný bug doplňování diakritiky

Posted by: pspad | Date: 2020-10-02 08:07 | IP: IP Logged

Vyzkousim. Pokud se to se stejnym slovnikem chova jinak, pak je tam nejaky problem.

Options: Reply | Quote | Up ^


#5 Re: Možný bug doplňování diakritiky

Posted by: pspad | Date: 2020-10-02 09:05 | IP: IP Logged

Měl jste pravdu, je tam chyba, už od doby prvních verzí 5.x
Opraveno.

Výsledek po opravě:
Zkušební text, na základě kterého se ukáže, zda to dřív fungovalo lip.

s "lipami" nic neudělám winking smiley

Options: Reply | Quote | Up ^


#6 Re: Možný bug doplňování diakritiky

Posted by: peersoft | Date: 2020-10-02 09:12 | IP: IP Logged

Díky smiling smiley. Je mi jasné, že více udělat nemůžete, také něco programuju a tyto věci chápu, jak to funguje. Hlavně, že to funguje přesně jako ve verzi 4.x!

--
Peer

Options: Reply | Quote | Up ^






Editor PSPad - freeware editor, © 2001 - 2024 Jan Fiala, Hosted by Webhosting TOJEONO.CZ, design by WebDesign PAY & SOFT, code Petr Dvořák, Privacy policy and GDPR