Miért sérült a szövegfájl szoftver - 2. oldal

Tény, hogy jobban érdekel a kérdés: miért romlott a fájlom, semmilyen ok nélkül? És elkényeztetett egyetlen fájlt a 4 részt ebben a programban, a másik három fájl teljesen normális, és még mindig nem romlott. Az A17.txt fájl nem romlott, ahol az adatokat az A16.txt sérült fájlból másolták át.
Még mindig megcsavarom ezt a programot, és jól működik, minden fájl rendben van.

Az ilyen teljesen kiszámíthatatlan és megmagyarázhatatlan viselkedés nagyon szomorú.
Képzeld el: elkezdem a programot, és vártam az eredményeket, és nincs eredmény egy órára, és ketten és egy napra. És az az oka, hogy a program eredeti adatait tartalmazó fájlok egyike el akarta magát kényszeríteni. És ez nem jelentik sehol, hogy romlott!
A programban a visszhangvezérlőt kell beírni, hogy a program minden külső adatot megkapjon a külső fájloktól.

Letöltöttem az A16.txt sérült fájlt a Yandex.Diskről, és újra elvégeztem a kódolás ANSI-re történő módosítását.
Megmutatom az összes lépést, az A76.txt mentett fájlban az új ANSI kódolással, és látok néhány kérdést.

Miért sérült a szöveges fájlszoftver? - 2. oldal

Megnyitotta az A16.txt fájlt a Jegyzettömbben (Notepad -> Open File)

Miért sérült a szövegfájl szoftver - 2. oldal

Az A76.txt új fájlt mentve kiválasztja az ANSI kódolást:

Miért sérült a szöveges fájlszoftver? - 2. oldal

Új A76.txt fájlt nyitottam meg a Jegyzettömbben.

Egyébként az A76.txt fájl még a WordPadban is megnyílik: néhány kérdés.

Tény, hogy jobban érdekel a kérdés: miért romlott a fájlom, semmilyen ok nélkül? És elkényeztetett egyetlen fájlt a 4 részt ebben a programban, a másik három fájl teljesen normális, és még mindig nem romlott. Az A17.txt fájl nem romlott, ahol az adatokat az A16.txt sérült fájlból másolták át.

A fájl nem rontotta el. Egyszerűen Notepad hibásan mutatja (Ön is meggyőződött róla, megnyitva egy Wordpad fájlt). Az ok, amiért már rámutattam:

Ennek oka a WinAPI-shnoy funkció, az IsTextUnicode nem megfelelő működése. amelyet a Notepad használ, hogy automatikusan határozza meg a kódolást a BOM nélküli fájlokban.

Ie Ha az elején a fájl nem található BOM Byte Order Mark (Unicode karakterkódolás, amelynek célja, hogy jelezze a byte sorrendben), a hordozható számítógép egy függvény, amely megkísérli a fájl byte, hogy melyik kódolás (Unicode vagy sem) a szöveget is. Néha (ritkán, meg kell jegyezni, a tisztesség), mint abban az esetben a fájl, ez a funkció úgy találja, hogy a fájl kódolva Unicode, ezért a valóságban nem így van.

Megmutatom az összes lépést, az A76.txt mentett fájlban az új ANSI kódolással, és látok néhány kérdést.

A hiba az, hogy megpróbál menteni egy helytelenül megnyitott fájlt az ANSI kódolásban. És meg kell nyitnia az ANSI-ban. Ie válassza ki az ANSI kódolást a fájlkiválasztó párbeszédablakban ("Nyitott mint").
Nyílt Jegyzettömb Ctrl + O (vagy a Fájl megnyitása.) A Fájl megnyitása párbeszédablakban válassza ki a nevet és ANSI karakterkészlet, kattintson a „Megnyitás”.

Tény, hogy jobban érdekel a kérdés: miért romlott a fájlom, semmilyen ok nélkül? A programban részt vevő négy közül csak egy fájdalmas volt, a másik három fájl teljesen normális és még nem romlott. Az A17.txt fájl nem romlott, ahol az adatokat az A16.txt sérült fájlból másolták át.

A fájl nem rontotta el. Egyszerűen Notepad hibásan mutatja (Ön is meggyőződött róla, megnyitva egy Wordpad fájlt).


Nos, a fájl nem sérült meg.
Akkor ezt a kérdést: a program helyesen adja meg a fájl kezdeti adatait? Megérti, hogy ezek számok, nem kínai karakterek?
Most ellenőrizhetem, bejövök a visszhangvezérlő programba, és megnézem, mi kap ez a fájl hieroglifákkal.

Kezdetben magának a fájlnak is elrontotta magát.

Hogyan határozták meg ezt?


Tehát leírtam. Megszakítottam a programot, és mind a négy fájlt az eredeti adatokkal ellenőriztem, természetesen a Notepad-ban (mint mindig). Három fájlban láttam a megfelelő számokat, a negyedik fájlban láttam a hieroglifákat. Okuda hieroglifákat vett, ha egy számot írtam a fájlba (kézzel írom őket)?

Ez egy hiba jegyzettömb, és nem minden verzió.

Amennyire megértem, bárki. Ie alapvetően algoritmus Vista / 7/8 képest nem változott az XP és régebbi verziók (minden hiba még mindig felugrik). Valamilyen módon letiltotta megnyilvánulását rövid szöveges vonalakon (például "ez az alkalmazás megszakíthatja" stb.). Úgy gondolom, hogy a fájlok Unicode automatikus felderítése kisebb, mint 128 bájt.

Kezdetben magának a fájlnak is elrontotta magát.

A fájl nem rontotta el!

Ismét hangsúlyozom: a program négy fájlt tartalmaz az eredeti adatokkal, közülük csak egy romlott.

Természetesen csak egy. Ez a viselkedés ritkaság lehet, különben a Microsoft régóta feltölti a panaszokat.

Számomra abban a pillanatban, amikor kiderült, hogy a fájl elkényeztetett, már nincs értelme annak helyes megnyitásához.

De hiába. Mégis próbáld meg, és meglepődsz majd.

Csak töröltem a sérült fájlt, és írtam az adatokat egy új fájlba.

Mi is kiderül?

Tehát leírtam. Megszakítottam a programot, és mind a négy fájlt az eredeti adatokkal ellenőriztem, természetesen a Notepad-ban (mint mindig).

Így hibát találhat a Jegyzettömbben. Hogyan tudtad meg, hogy a fájl sérült, és a Notepad hibás?


Miért tévedett a Notepad a 4 fájl egyikében (mind a négy fájl azonos típusú, és manuálisan lett létrehozva)?

Már mondtam, én nem tudom, ki a baj, de látom, hogy a fájl adatai hibásan jelenik meg kell számokat és karaktereket ábrázolják.

Csak töröltem a sérült fájlt, és írtam az adatokat egy új fájlba.

Mi is kiderül?


Azt mondod, hogy ugyanazt mondod. Azt hiszem, már írtam, hogy a rögzített adatokat egy új fájlt A17.txt, én még mindig dolgozik a program és adatfájlokat, és még nem romlott, minden rendben.

Kapcsolódó cikkek