Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem Ukládání v Notepadu vs PSPadu

Zdravím všechny.

Mám textový soubor, který uložím v PSPadu. Když ho přeuložím v Notepadu, má o nějaké bajty navíc. Když ho znova přeuložím v PSPadu, má zase původní velikost. Když se na oba soubory podívám v PSPadu, vypadají stejně - DOS, kódování UTF-8, při zobrazení netisknutelných znaků vypadají oba soubory shodně. Co tedy navíc (nebo jinak) ukládá Notepad?

Jde mi o to, že něco programuji v Lazarusu a používám INI soubor. Vše mi funguje OK do té doby než INI uložím v notepadu. Program INI sice načte ale obsah jako byl prašivý :) Sice tam je ale program to vyhodnotí jako by tam nebyl. Jakmile INI soubor přeuložím (beze změny) v PSPadu, program funguje tak jak má.

Předmět Autor Datum
PSPad vkládá do UTF-8 tzv. BOM (begin order mark) bajty, které identifikují kódování. Pro UTF-8 je m…
Jan Fiala 01.03.2018 10:34
Jan Fiala
Díky za odpověď. Měl jsem to (BOM) v PSPadu vypnuto. Proto byly PSPadové texťáky menší než Notepadov… nový
NagyMaros 01.03.2018 10:45
NagyMaros
BOM nepoužívaj, vyhneš sa podobným problémom. Pre upresnenie, BOM je trojbajtová značka na začiatku… nový
pozorovateľ 01.03.2018 19:40
pozorovateľ
No, já BOM nepoužívám. Pokud potřebuji editovat INI soubor, používám PSPad. Jde o to, že existuje m… nový
NagyMaros 02.03.2018 08:24
NagyMaros
Lazarus používá pro INI UTF-8, ale nechce BOM (podobne je to s weby a PHP). Notepad jej tam vklada n… nový
Jan Fiala 02.03.2018 10:25
Jan Fiala
Podle mě by se to při vynaložení nějakého úsilí změnit dalo. Muselo by se zasáhnout do zdrojového te… nový
ml1 02.03.2018 14:08
ml1
Jasne, ze by se to dalo resit upravou systemoveho zdrojaku. Ale musis na to myslet a kazdou dalsi ve… poslední
Jan Fiala 02.03.2018 15:21
Jan Fiala
Nie begin, ale byte order. nový
pozorovateľ 01.03.2018 19:43
pozorovateľ
Pokud jde o načítání souborů, tak jsem s lazarem bojoval tak dlouho, až jsem dospěl do fáze, že soub… nový
ml1 02.03.2018 14:01
ml1

PSPad vkládá do UTF-8 tzv. BOM (begin order mark) bajty, které identifikují kódování. Pro UTF-8 je možné to vypnout v nastavení programu / Program 2

Developer build 5.x má předělanou práci s kódováním, už sám detekuje, zda soubor BOM obsahuje nebo ne, umožnuje uložit s BOM nebo bez něj apod.

Lazarus používá pro INI UTF-8, ale nechce BOM (podobne je to s weby a PHP). Notepad jej tam vklada natvrdo, proto ti to rozhodi.
pokud nepotrebujes pouzivat v INI diakritiku, je to jedno, protoze ANSI i UTF-8 budou stejne. Rozdil je az v ve znacich s diakritikou.

Tohle v Lazarovi nezmenis, jde o to, jak maji praci s INI implementovanou. Ale mohli by tam mit nejakou property encoding, kterou bys rekl, ze to je nebo neni UTF-8

Podle mě by se to při vynaložení nějakého úsilí změnit dalo. Muselo by se zasáhnout do zdrojového textu, který je k dispozici (stačilo by přece ignorovat znak BOM). Nejvíc úsilí samozřejmě bude vyžadovat nalezení vhodného místa, kam zasáhnout. Pokud je možné zvolit user encoding, bude to nejjednodušší.

Jasne, ze by se to dalo resit upravou systemoveho zdrojaku. Ale musis na to myslet a kazdou dalsi verzi Lazara opravovat. Proto se takovym upravam, pokud to jde, radeji vyhybam. Za pul roku uz si na to nevzpomenes a problem je na svete.

Pokud jde o načítání souborů, tak jsem s lazarem bojoval tak dlouho, až jsem dospěl do fáze, že soubor načítám binárně a sám si ho rozparceluju. Neni to tak pohodlné, jako textfile, ale mám alespoň nad ním plnou kontrolu. Nebyl to problém INI, ty mám vyřešené jinak, ale právě souborů s diakritikou, kde se mi prostě nepodařilo lazarus přesvědčit, že má načítat háčky a čárky.

Zpět do poradny Odpovědět na původní otázku Nahoru