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…
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…
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…
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…
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…
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.
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…
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šší.

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