ឯកសារគោលពីរ។ របៀបអានឯកសារគោលពីរ

ធ្វើការជាមួយឯកសារគោលពីរ

ព័ត៌មានទាំងអស់ត្រូវបានរក្សាទុកក្នុងកុំព្យូទ័រក្នុងទម្រង់ 0 និង 1 ពោលគឺក្នុងទម្រង់គោលពីរ។ ឯកសារគោលពីរខុសគ្នាពីឯកសារអត្ថបទតែនៅក្នុងវិធីសាស្រ្តនៃការធ្វើការជាមួយពួកគេ។ ឧទាហរណ៍ ប្រសិនបើយើងសរសេរលេខ “4” ទៅឯកសារអត្ថបទ នោះវាត្រូវបានសរសេរជាតួអក្សរ ហើយត្រូវការមួយបៃដើម្បីរក្សាទុកវា។ ដូច្នោះហើយ ទំហំឯកសារនឹងស្មើនឹងមួយបៃ។ ឯកសារអត្ថបទដែលមានធាតុ៖ "145687" នឹងមានទំហំប្រាំមួយបៃ។

ប្រសិនបើយើងសរសេរចំនួនគត់ 145,687 ទៅក្នុងឯកសារគោលពីរ វានឹងមានទំហំ 4 បៃ ដោយសារនោះជាចំនួនដែលត្រូវការដើម្បីរក្សាទុកទិន្នន័យ int ។ នោះ​គឺ​ឯកសារ​គោលពីរ​មាន​លក្ខណៈ​តូច​ជាង ហើយ​ក្នុង​ករណី​ខ្លះ​ងាយ​ស្រួល​ក្នុង​ការ​ដំណើរការ។

ការសរសេរប្រភេទទិន្នន័យស្តង់ដារទៅឯកសារគោលពីរ

ដើម្បីបើកឯកសារគោលពីរ អ្នកត្រូវតែកំណត់របៀបចូលប្រើទៅ ios::binary (នៅក្នុងកម្មវិធីចងក្រង C++ មួយចំនួន ios::bin)។

ដើម្បីបង្កើតឯកសារលទ្ធផល បង្កើតវត្ថុមួយ៖

ofstream outBinFile("out.bin", ios::out | ios::binary);

/* ការបង្កើតវត្ថុថ្នាក់នៃចរន្ត ចេញ។ ធុង

ប្រសិនបើ (! out_f i 1) // ការត្រួតពិនិត្យស្តង់ដារ

ទិន្នន័យត្រូវបានសរសេរដោយប្រើវិធីសាស្ត្រ write() ដែលមានប៉ារ៉ាម៉ែត្រពីរ៖ ទីមួយគឺជាទ្រនិចទៅការចាប់ផ្តើម (អាសយដ្ឋានចាប់ផ្តើម) នៃទិន្នន័យដែលកំពុងត្រូវបានសរសេរ ទីពីរគឺជាចំនួនបៃដែលត្រូវសរសេរ។ ក្នុងករណីនេះ ទ្រនិចត្រូវតែត្រូវបានបំប្លែងយ៉ាងច្បាស់លាស់ទៅជាប្រភេទ char ។

ឧទាហរណ៍ ១.សរសេរអថេរនៃប្រភេទផ្សេងៗទៅក្នុងឯកសារគោលពីរ៖

ofstream outBinFile("test.bin", ios::out I

ios: : binary); /^ បង្កើត​វត្ថុ​ថ្នាក់នៃស្ទ្រីម ហើយព្យាយាមភ្ជាប់វាទៅឯកសារសាកល្បង។ ធុង នៅក្នុងរបៀបសរសេរឯកសារគោលពីរ */

int a - 145687; // សេចក្តីប្រកាសនៃអថេរទាំងមូល

outBinFi le ។ សរសេរ ((char*) &a, sizeof (a)); /^ សរសេរទៅឯកសារ

អថេរជាស្ទ្រីមនៃបៃ ពោលគឺសរសេរទៅឯកសារតំណាងផ្ទៃក្នុងនៃអថេរទាំងមូល a */ float x - 123.25; // សេចក្តីប្រកាសនៃអថេរពិតប្រាកដ X

outBinFile .write ((char*) &x, sizeof (x)); /^ សរសេរទៅឯកសារ

អថេរ X ជាស្ទ្រីមនៃបៃ ពោលគឺសរសេរទៅឯកសារតំណាងផ្ទៃក្នុងនៃអថេរទាំងមូល x*/

// និយមន័យនៃអថេរនិមិត្តសញ្ញាជាមួយ ហើយចាប់ផ្តើមវាជាមួយនិមិត្តសញ្ញា g outBinFile.write((char*)&c, sizeof(c));

// កត់ត្រានិមិត្តសញ្ញា g ដើម្បីដាក់ឯកសារ

outBinFile.close(); ត្រឡប់ 0;

ប្រសិនបើអ្នកបើកមាតិកានៃឯកសារសាកល្បង .bin ដោយប្រើកម្មវិធីនិពន្ធអត្ថបទ វានឹងមើលទៅដូចនេះ៖

ហើយទំហំឯកសារនឹងមាន 9 បៃ។

ការអានប្រភេទទិន្នន័យស្តង់ដារពីឯកសារគោលពីរ

ដើម្បីបើកឯកសារគោលពីរដែលមានស្រាប់សម្រាប់ការអាន អ្នកត្រូវបង្កើតវត្ថុមួយ៖

ifstream inpBinFile("inp.bin", ios::in I ios::binary);

/* យើងប្រើការបំបែកទង់ដែលបង្ហាញថាឯកសារត្រូវបានបើកសម្រាប់អានក្នុងទម្រង់គោលពីរ */

ប្រសិនបើ (! inpBinFile)

cout ដើម្បីអានទិន្នន័យ យើងប្រើមុខងារ read() ដែលមានប៉ារ៉ាម៉ែត្រស្រដៀងនឹងមុខងារ write()។

#រួមបញ្ចូលការប្រើប្រាស់ namespace std; int main()

ifstream inpBinFile("test.bin", ios::in I

ios::binary); / / បើកឯកសារសម្រាប់អានជាទម្រង់គោលពីរ

int a; អណ្តែត x; char c = "g";

inpBinFile.read((char*)&a, sizeof(a));

// អានអថេរចំនួនគត់ inpBinFile.read((char*)&x, sizeof(x));

// អានអថេរពិតប្រាកដ inpBinFile.read((char*)&c, sizeof (c));

// អានអថេរនិមិត្តសញ្ញា

inpBinFile.close(); cout

លទ្ធផលនៃកម្មវិធី៖

a = 145687 x = 123.25 s = g

សូមចំណាំថាគ្មានការបំប្លែងព័ត៌មានកើតឡើងនៅពេលប្រើមុខងារសរសេរ និងអានទេ។ តំណាងខាងក្នុងនៃទិន្នន័យត្រូវបានសរសេរទៅ និងអានពីឯកសារ។ នោះហើយជាមូលហេតុដែលកម្មវិធីពីរមុនបានផ្តល់លទ្ធផលត្រឹមត្រូវ។

ការសរសេរ និងអានប្រភេទទិន្នន័យផ្ទាល់ខ្លួនទៅជាឯកសារគោលពីរ

មិនដូចឯកសារអត្ថបទ ការធ្វើការជាមួយប្រភេទទិន្នន័យផ្ទាល់ខ្លួនដោយប្រើឯកសារគោលពីរគឺមិនខុសពីប្រភេទទិន្នន័យស្តង់ដារទេ។ វិធីសាស្ត្រ write() និង read() ត្រូវបានប្រើស្រដៀងគ្នា។ អ្នកសរសេរកម្មវិធីគ្រាន់តែចង្អុលបង្ហាញអាសយដ្ឋាននៃផ្នែកអង្គចងចាំដែលត្រូវសរសេរ និងចំនួនបៃដែលត្រូវសរសេរ ដោយពិចារណាថាគ្មានការបំប្លែងទិន្នន័យកើតឡើងទេ មានតែតំណាងខាងក្នុងនៃព័ត៌មានប៉ុណ្ណោះដែលត្រូវបានសរសេរ និងអាន។

ដូចគ្នានេះផងដែរនៅពេលធ្វើការជាមួយឯកសារគោលពីរ វិធីសាស្ត្រ seekg(), tellg(), seekp(), tellp() អាចត្រូវបានប្រើ។

ឧទាហរណ៍ ៣.សរសេរកម្មវិធីដែលសរសេរព័ត៌មានអំពីក្រុមអ្នកទេសចរចូលទៅក្នុងឯកសារគោលពីរ។

fstream BinFile("ankety.bin", ios::in I ios::out | ios::binary);

អាន់កេតា គ្រុប = ; សម្រាប់ (int i = 0; i

BinFile.write((char*)&Gruppa[i], sizeof(Anketa)); BinFile.close(); ត្រឡប់ 0;

ឧទាហរណ៍ 4 ។ឯកសារ “ankety.bin” មានទិន្នន័យអំពីក្រុមអ្នកទេសចរ វាចាំបាច់ក្នុងការអានវា និងបង្ហាញវានៅលើអេក្រង់។

#រួមបញ្ចូលការប្រើប្រាស់ namespace std; រចនាសម្ព័ន្ធសំណួរ (

ឈ្មោះ char; អាយុ int;

ប្រភេទទិន្នន័យរចនាសម្ព័ន្ធកម្រងសំណួរ អេក្រង់*/

ostream & ប្រតិបត្តិករ

fstream BinFile("ankety.bin", ios::in | ios::out | ios::binary); ប្រសិនបើ (!BinFile)

សម្រាប់ (int i = 0; i

// អានភ្លាមៗរាល់បៃដែលកាន់កាប់ដោយអថេរប្រភេទ Anketa BinFile.read((char*)&Gruppa[i], sizeof(Anketa));

BinFile.close(); ត្រឡប់ 0;

លទ្ធផលនៃកម្មវិធី៖

Ivanov, 23 Sidorov, 21 Petrov, 22

ដើម្បីបន្ត សូមចុចគ្រាប់ចុចណាមួយ។ . .

បង្កើតថ្នាក់ផ្ទាល់ខ្លួនរបស់អ្នកសម្រាប់ធ្វើការជាមួយឯកសារ

វាមានការរអាក់រអួលក្នុងការប្រើវិធីសាស្ត្រ write() និង read() ជានិច្ច វាជាការរីករាយជាងក្នុងការប្រើប្រតិបត្តិការ ">" ដោយភាពស្រដៀងគ្នាជាមួយឯកសារអត្ថបទ។ ចូរយើងផ្តល់ឧទាហរណ៍នៃការអនុវត្តថ្នាក់របស់យើងសម្រាប់ធ្វើការជាមួយឯកសារគោលពីរ។

ដោយប្រើ namespace std;

រចនាសម្ព័ន្ធសំណួរ // ប្រកាសរចនាសម្ព័ន្ធសម្រាប់រក្សាទុកព័ត៌មាន

/* ផ្ទុកលើសទម្ងន់ប្រតិបត្តិការបញ្ចូលទៅក្នុងស្ទ្រីមសម្រាប់លទ្ធផលផ្ទាល់ខ្លួន

ប្រភេទទិន្នន័យរចនាសម្ព័ន្ធកម្រងសំណួរ អេក្រង់*/

ostream & ប្រតិបត្តិករ

class outBinaryFile: public នៃស្ទ្រីម /^ កំណត់ថ្នាក់របស់យើងសម្រាប់ធ្វើការជាមួយលទ្ធផលឯកសារគោលពីរ។ យើងទាញយកវាពីថ្នាក់សម្រាប់ធ្វើការជាមួយស្ទ្រីមឯកសារលទ្ធផល */

/* នៅពេលពិពណ៌នាអំពី constructor នៃថ្នាក់ដែលបានបង្កើត កុំភ្លេចហៅ constructor នៃ base class ដោយឆ្លងកាត់វានូវប៉ារ៉ាម៉ែត្រចាំបាច់*/

outBinaryFile(char* name) : ofstream(name, ios::out I ios::binary)

// លើសប្រតិបត្តិការចាំបាច់ជាវិធីសាស្ត្រថ្នាក់ outBinaryFile&ប្រតិបត្តិករ

សរសេរ((char*)&chislo, sizeof(chislo)); ត្រឡប់ * នេះ;

outBinaryFile&ប្រតិបត្តិករ

សរសេរ((char*)&ank, sizeof(ank)); ត្រឡប់ * នេះ;

class inpBinaryFile: public if stream /* យើងកំណត់ថ្នាក់របស់យើងសម្រាប់ធ្វើការជាមួយឯកសារគោលពីរបញ្ចូល។ យើងទាញយកវាពីថ្នាក់សម្រាប់ធ្វើការជាមួយស្ទ្រីមឯកសារបញ្ចូល */

inpBinaryFile(char* name): ifstream(name, ios::in I ios::binary)

/* ហៅអ្នកសាងសង់ថ្នាក់មូលដ្ឋានជាមួយនឹងប៉ារ៉ាម៉ែត្រចាំបាច់,

គ្រប់គ្រាន់សម្រាប់អ្នកសាងសង់នៃថ្នាក់ដែលបានទាញយក */

// លើសប្រតិបត្តិការចាំបាច់

inpBinaryFile& operator >> (int&number)

អាន((char*)&chislo, sizeof(chislo)); ត្រឡប់ * នេះ;

inpBinaryFile& operator >> (Anketa&ank)

អាន((char*)&ank, sizeof(ank)); ត្រឡប់ * នេះ;

int a = 111, b = 112; outBinaryFile outFile("dannye.bin");

// បើកឯកសារសម្រាប់ការអាន

inpBinaryFile inpFile("dannye.bin"); ប្រសិនបើ (!inpFile)

សម្រាប់ (int i = 0; i

inpFile >> a; // អានប្រវត្តិរូបពីឯកសារ

cout // ហើយបង្ហាញវានៅលើអេក្រង់

inpFile >> កម្រងសំណួរ; cout

លទ្ធផលនៃកម្មវិធី៖

Kolya, 1990, 582-78-95 ។

ដើម្បីបន្ត សូមចុចគ្រាប់ចុចណាមួយ។ . .

1. តើអាចប្រើប្រតិបត្តិការក្នុងកម្មវិធីបានទេ?

ios::in I ios::out

  • ក) បាទ/ចាស ក្នុងករណីណាក៏ដោយ
  • ខ) បាទ/ចាស ប៉ុន្តែនៅពេលធ្វើការជាមួយឯកសារអត្ថបទតែប៉ុណ្ណោះ។
  • គ) ទេ ក្នុងករណីណាក៏ដោយ
  • 2. បញ្ជាក់ជម្រើសត្រឹមត្រូវសម្រាប់ការបើកឯកសារអត្ថបទសម្រាប់អាន៖
    • ក) ifstream inpF("input.txt", ios::in);
    • ខ) ifstream inpF("input.txt", ios::input);
    • គ) ifstream inpF(ios:in, "input.txt")។

H. តើអ្វីនឹងត្រូវបានបង្ហាញនៅលើអេក្រង់ជាលទ្ធផលនៃការប្រតិបត្តិកូដខាងក្រោម?

inputFile.get(c);

បន្ទាប់ - inputFile.peek();

ប្រសិនបើ (បន្ទាប់ == EOF)

  • ក) មាតិកានៃឯកសារដែលភ្ជាប់ជាមួយស្ទ្រីម inputFile នឹងត្រូវបានបង្ហាញនៅលើអេក្រង់តែម្តង។
  • ខ) មាតិកានៃឯកសារដែលភ្ជាប់ជាមួយស្ទ្រីម inputFile នឹងត្រូវបានបង្ហាញនៅលើអេក្រង់ចំនួនដងគ្មានកំណត់។
  • គ) គ្មានអ្វីនឹងត្រូវបានបង្ហាញនៅលើអេក្រង់ទេ។
  • 4. តើមានតួអក្សរប៉ុន្មាននៅក្នុងឯកសារ?
  • 12 3 4 5 6
  • ក) ៦;
  • ខ) ៧;
  • គ) ១១.
  • 5. តើវិធីសាស្រ្តអ្វីខ្លះដែលអនុញ្ញាតឱ្យអ្នកកំណត់ចុងបញ្ចប់នៃឯកសារ?
  • ក) អ៊ីហ្វ();
  • ខ) ល្អ ();
  • គ) វិធីសាស្រ្តទាំងពីរនេះ។
  • 6. តើមុខងារ getline() មានគោលបំណងអ្វី?
  • ក) អានពាក្យពីឯកសារមួយ;
  • ខ) អានមាតិកាទាំងមូលនៃឯកសារ;
  • គ) អានបន្ទាត់ពីឯកសារ។
  • 7. ដើម្បីសរសេរ/អានប្រភេទទិន្នន័យផ្ទាល់ខ្លួនទៅកាន់ឯកសារ អ្នកត្រូវតែ៖
    • ក) ដំណើរការលើសទម្ងន់ ">>" និង "
    • ខ) ការសរសេរ និងការអានប្រភេទទិន្នន័យផ្ទាល់ខ្លួនគឺអាចរកបានដោយគ្មានសកម្មភាពបន្ថែម។
    • គ) ការសរសេរ និងអានប្រភេទទិន្នន័យផ្ទាល់ខ្លួនទៅឯកសារគឺមិនអាចទៅរួចទេ។
  • 8. តើមុខងារអ្វីខ្លះដែលត្រូវបានប្រើដើម្បីសរសេរ/អានព័ត៌មានក្នុងទម្រង់គោលពីរ?
  • ក) printf / scanf;
  • ខ) សរសេរ / អាន;
  • គ) ដាក់ / ទទួល។
  • 1. សរសេរកម្មវិធីដែលសរសេរអក្សរនៃអក្ខរក្រមអង់គ្លេសទៅជាឯកសារ។
  • 2. ឯកសារ input.txt មានព័ត៌មានពីបន្ទាត់អត្ថបទជាច្រើន។ បង្ហាញមាតិកានៃឯកសារនេះនៅលើអេក្រង់ រាប់ចំនួនបន្ទាត់ក្នុងឯកសារ។
  • 3. ថាសមានឯកសារ result.txt ជាមួយនឹងលទ្ធផលនៃការពិសោធន៍គីមី។ សរសេរកម្មវិធីដែលបង្កើតច្បាប់ចម្លងនៃឯកសារនេះដែលមានឈ្មោះថា copy_resylt.txt ។
  • 4. បញ្ចូលឈ្មោះឯកសារដោយប្រើក្តារចុច។ លុបបន្ទាត់គូទាំងអស់នៅក្នុងឯកសារដែលបានបញ្ជាក់។
  • 5. សរសេរកម្មវិធីដែលនៅក្នុងឯកសារអត្ថបទ ជំនួសអក្សរតូចទាំងអស់ដោយអក្សរធំ និងច្រាសមកវិញ។
  • 6. ឯកសារអត្ថបទប្រភពមានលេខដែលបំបែកដោយដកឃ្លា។ បង្កើតឯកសារថ្មីពីរ៖ ទីមួយគួរតែមានលេខគូ ហើយទីពីរ - សេស។
  • 7. ឯកសារមានលេខពិត។ សរសេរកម្មវិធីដែលបោះបង់ផ្នែកប្រភាគនៃលេខទាំងនេះ ហើយសរសេរវាទៅឯកសារថ្មី។
  • 8. ឯកសារអត្ថបទមានព័ត៌មានអំពីជើងហោះហើររបស់ក្រុមហ៊ុនអាកាសចរណ៍។ ជ្រើសរើសជើងហោះហើរចេញដំណើរនៅពេលរសៀលពីទិន្នន័យនេះហើយបង្ហាញពួកវានៅលើអេក្រង់។
  • 9. Overload the >> និង operators
  • 10. សរសេរថ្នាក់ផ្ទាល់ខ្លួនរបស់អ្នកដើម្បីធ្វើការជាមួយឯកសារគោលពីរ។
  • 11. សរសេរបញ្ជីសិស្ស 10 នាក់ក្នុងថ្នាក់ចូលទៅក្នុងឯកសារអត្ថបទ និងទៅក្នុងឯកសារគោលពីរ។ ប្រៀបធៀបឯកសារទាំងនេះ។ ពន្យល់ពីភាពខុសគ្នានៃលទ្ធផល។
  • 12. បង្កើតថ្នាក់ដែលសរសេរព័ត៌មានអំពីរថយន្ត (ឆ្នាំផលិត ផលិត ពណ៌។ល។) ទៅជាឯកសារអត្ថបទ។ ក្នុងករណីនេះ និមិត្តសញ្ញាព័ត៌មាននីមួយៗត្រូវបានជំនួសដោយ ABO 1-code របស់វា។ បង្ហាញឯកសារលទ្ធផលនៅលើអេក្រង់។

សំណួរសុវត្ថិភាព

  • 1. តើ​ថ្នាក់​អ្វី​ខ្លះ​ដែល​ត្រូវ​បាន​ប្រើ​ដើម្បី​ធ្វើ​ការ​ជាមួយ​នឹង​ការ​ស្ទ្រីម​ឯកសារ?
  • 2. តើរបៀបចូលប្រើអ្វីខ្លះដែលអាចប្រើបាននៅពេលធ្វើការជាមួយឯកសារ? ផ្តល់ឧទាហរណ៍។
  • 3. តើប្រើវិធីអ្វីដើម្បីបើកឯកសារ? ផ្តល់ឧទាហរណ៍។
  • 4. តើមានប្រតិបត្តិការអ្វីខ្លះសម្រាប់ធ្វើការជាមួយឯកសារ? តើមុខងារអ្វីខ្លះត្រូវបានផ្តល់ជូនដើម្បីអនុវត្តប្រតិបត្តិការទាំងនេះ?
  • 5. តើវិធីសាស្រ្តអ្វីខ្លះដែលអនុញ្ញាតឱ្យអ្នកកំណត់ចុងបញ្ចប់នៃឯកសារនៅពេលអានព័ត៌មានពីវា? តើអ្វីជាភាពខុសគ្នារវាងវិធីសាស្រ្តទាំងនេះ? ផ្តល់ឧទាហរណ៍។
  • 6. តើអ្នកអាចអានអថេរនៃប្រភេទទិន្នន័យស្តង់ដារពីឯកសារអត្ថបទដោយរបៀបណា?
  • 7. តើអាចអានអថេរប្រភេទទិន្នន័យផ្ទាល់ខ្លួនពីឯកសារអត្ថបទបានទេ?
  • 8. តើមុខងារអ្វីខ្លះដែលត្រូវបានរចនាឡើងដើម្បីអានព័ត៌មានដោយចៃដន្យពីឯកសារ? ផ្តល់ឧទាហរណ៍។
  • 9. ដាក់ឈ្មោះលក្ខណៈនៃឯកសារគោលពីរ។ តើ​អ្វី​ទៅ​ជា​អត្ថប្រយោជន៍​នៃ​ការ​ប្រើ​ឯកសារ​បែប​នេះ?
  • 10. តើមុខងារអ្វីខ្លះដែលអាចត្រូវបានប្រើដើម្បីសរសេរ/អានព័ត៌មានទៅក្នុងឯកសារគោលពីរ?
  • 11. តើធ្វើដូចម្តេចដើម្បីអានអថេរនៃប្រភេទទិន្នន័យស្តង់ដារពីឯកសារគោលពីរ?
  • 12. តើការពិចារណាអ្វីខ្លះដែលត្រូវយកមកពិចារណានៅពេលអានប្រភេទទិន្នន័យផ្ទាល់ខ្លួនពីឯកសារគោលពីរ?
  • "Ivanov", 23), ("Sidorov", 21),

ឯកសារគោលពីរគឺជាឯកសារណាមួយនៅលើកុំព្យូទ័ររបស់អ្នក។ ព័ត៌មានទាំងអស់នៅលើកុំព្យូទ័រ និងប្រព័ន្ធផ្សព្វផ្សាយដែលពាក់ព័ន្ធត្រូវបានកត់ត្រាជាប៊ីត (ហេតុនេះឈ្មោះ)។ ទោះយ៉ាងណាក៏ដោយ សម្រាប់ការប្រៀបធៀប ឯកសារអត្ថបទអាចត្រូវបានអាននៅក្នុងអ្នកអានដែលត្រូវនឹងផ្នែកបន្ថែម (ឯកសារសាមញ្ញបំផុត - សូម្បីតែនៅក្នុង Notepad) ប៉ុន្តែឯកសារដែលអាចប្រតិបត្តិបានមិនអាច។ ហើយទោះបីជាការពិតឯកសារ txt គឺជាឯកសារគោលពីរដូចគ្នាក៏ដោយ នៅពេលដែលពួកគេនិយាយអំពីបញ្ហានៃការបើកមាតិកានៃឯកសារគោលពីរ ពួកគេមានន័យថាឯកសារដែលអាចប្រតិបត្តិបាន ក៏ដូចជាទិន្នន័យដែលបានបង្ហាប់ផងដែរ។

អ្នកនឹងត្រូវការ

  • - កម្មវិធីកែសម្រួល Hex ។

សេចក្តីណែនាំ

  • ទាញយកកម្មវិធី Hex Edit ទៅកាន់ hard drive របស់អ្នក - កម្មវិធីនិពន្ធឯកសារដែលតំណាងឱ្យមាតិការបស់ពួកគេក្នុងទម្រង់គោលពីរ។ បើកកម្មវិធីដោយចុចពីរដងលើឯកសារចាប់ផ្តើម។ កម្មវិធីនេះអនុញ្ញាតឱ្យអ្នកអានឯកសារគោលពីរក្នុងពេលវេលាជាក់ស្តែង ផ្លាស់ប្តូរមាតិកា បន្ថែមធាតុផ្ទាល់ខ្លួនរបស់អ្នក និងច្រើនទៀត។ ដើម្បីដំណើរការយ៉ាងពេញលេញនៅក្នុងបរិយាកាសនេះ អ្នកត្រូវដឹងបន្តិចបន្តួចអំពីគោលគំនិតទូទៅនៃឯកសារគោលពីរ។
  • បង្អួចកម្មវិធីមិនខុសគ្នាច្រើនពីកម្មវិធីនិពន្ធធម្មតាទេ៖ ម៉ឺនុយដែលធ្លាប់ស្គាល់ និងបន្ទះដែលមានប៊ូតុង តួនៃឯកសារដែលកំពុងត្រូវបានកែសម្រួល ចំណាំ និងរបារស្ថានភាព។ បើកឯកសារគោលពីរតាមរយៈម៉ឺនុយឯកសារ ឬដោយចុចលើរូបតំណាងដែលត្រូវគ្នានៅលើបន្ទះ។ ឯកសារគោលពីរនឹងបង្ហាញនៅពីមុខអ្នកក្នុងទម្រង់ជាខ្សែអក្សរដែលមានលេខ និងអក្សរ។ កុំច្រឡំតួអក្សរទាំងនេះជាមួយនឹងទិន្នន័យដែលបានបោះពុម្ពនៅក្នុងឯកសារអត្ថបទ។ អ្នកក៏អាចកែសម្រួលពួកវាដោយការលុបតួអក្សរ ប៉ុន្តែក្នុងករណីនេះអ្នកនឹងលុបក្រឡាដែលមានទិន្នន័យ បំណែកនៃឯកសារ។
  • ធ្វើការផ្លាស់ប្តូរមាតិកានៃឯកសារ។ កម្មវិធីអាចបង្ហាញផ្នែកសំខាន់ៗនៃឯកសារសម្រាប់ការស្វែងរកកាន់តែងាយស្រួល ហើយថែមទាំងមានការកំណត់ដែលអាចបត់បែនបានសម្រាប់ការបង្ហាញក្រាហ្វិកកូដគោលពីរ។ ប្តូរទិដ្ឋភាពមាតិកាទៅជារបៀប ASCII+IBM/OEM ដើម្បីមើលកូដរបស់ឯកសារ។ ប្រសិនបើអ្នកបញ្ចូលបន្ទាត់មិនត្រឹមត្រូវទៅក្នុងឯកសារ វាអាចនឹងមិនដំណើរការត្រឹមត្រូវ ដែលបណ្តាលឱ្យមានផលវិបាកធ្ងន់ធ្ងរសម្រាប់ប្រព័ន្ធប្រតិបត្តិការរបស់កុំព្យូទ័រផ្ទាល់ខ្លួនរបស់អ្នក។
  • រក្សាទុកការផ្លាស់ប្តូររបស់អ្នក។ ប្រសិនបើអ្នកមិនមានបទពិសោធន៍ក្នុងការកែសម្រួលឯកសារប្រភេទនេះទេ សូមត្រៀមខ្លួនសម្រាប់ការពិតដែលថាឯកសារនឹងមិនបើក ហើយបដិសេធមិនដំណើរការបន្ទាប់ពីធ្វើការកែប្រែ។ អ្នកទំនងជានឹងរញ៉េរញ៉ៃច្បាប់ចម្លងមួយចំនួន មុនពេលអ្នកទទួលបានវាត្រឹមត្រូវ។ ព្យាយាមមិនរក្សាទុកការផ្លាស់ប្តូរទាំងអស់ទៅឯកសារដើម ដូច្នេះមាតិការបស់វានៅតែមិនផ្លាស់ប្តូរ។
  • ការពិពណ៌នា និងតំណាងផ្ទៃក្នុងនៃឯកសារ

    ឯកសារគឺខុសគ្នាពីគ្នាទៅវិញទៅមក។ ឯកសារទាំងអស់ដែលផ្ទុកនៅលើកុំព្យូទ័រមានគុណលក្ខណៈពិសេស i.e. វិធីសាស្រ្តពិពណ៌នាពិសេសដែលអនុញ្ញាតឱ្យអ្នកបែងចែកឯកសារមួយពីឯកសារមួយផ្សេងទៀត: 1) ឈ្មោះ; 2) ទំហំ; 3) កាលបរិច្ឆេទនិងពេលវេលា; 4) រូបតំណាង។

    ឯកសារនីមួយៗមានឈ្មោះ - ឈ្មោះឯកសារ។ ឈ្មោះឯកសារពិពណ៌នាអំពីខ្លឹមសាររបស់វា ឬណែនាំអំពីអ្វីដែលវាអាចប្រើបាន។ ឈ្មោះត្រូវបានកំណត់ទៅឯកសារនៅពេលវាត្រូវបានបង្កើត។ នេះអនុវត្តចំពោះឯកសារទាំងអស់។

    ឯកសារនីមួយៗមានទំហំរូបវន្ត។ ឯកសារយកអង្គចងចាំកុំព្យូទ័រ និងទំហំថាសខ្លះ។

    នៅពេលដែលឯកសារត្រូវបានបង្កើត ប្រព័ន្ធប្រតិបត្តិការដាក់ត្រានៅលើវាដែលបង្ហាញពីកាលបរិច្ឆេទ និងពេលវេលានៃការបង្កើត។ នេះអនុញ្ញាតឱ្យអ្នកតម្រៀបឯកសារតាមកាលបរិច្ឆេទ និងពេលវេលា ហើយនាំឱ្យកុំព្យូទ័ររបស់អ្នកមានសណ្តាប់ធ្នាប់។ កាលបរិច្ឆេទ និងពេលវេលាដែលឯកសារត្រូវបានធ្វើបច្ចុប្បន្នភាព ឬកែប្រែក៏ត្រូវបានកត់សម្គាល់ផងដែរ។

    ឯកសារនីមួយៗគឺជាប្រភេទជាក់លាក់ ដែលទាក់ទងយ៉ាងជិតស្និទ្ធទៅនឹងរូបតំណាងឯកសារដែលយើងឃើញ។ ប្រភេទឯកសារអាស្រ័យលើខ្លឹមសាររបស់វា។ កម្មវិធីនីមួយៗកំណត់ប្រភេទជាក់លាក់មួយ និងរូបតំណាងដែលត្រូវគ្នាទៅនឹងឯកសារដែលបានបង្កើត។

    ទំហំឯកសារត្រូវបានវាស់ជាបៃ ដូចទៅនឹងទំហំអង្គចងចាំដែរ។

    ទំហំឯកសារអាចជា 0 បៃ ដែលមានន័យថាឯកសារមាន ប៉ុន្តែមិនមានអ្វីទាំងអស់។ S ទំហំឯកសារអតិបរមាគឺ 4 GB ។ ប៉ុន្តែឯកសារដ៏ធំបែបនេះកម្រមានណាស់។

    ជាពិសេស នាឡិកាដែលភ្ជាប់មកជាមួយកុំព្យូទ័រគឺត្រូវការជាចាំបាច់ ដើម្បីកំណត់ពេលវេលា និងកាលបរិច្ឆេទនៃការបង្កើតឯកសាររបស់ពួកគេ។ នេះពន្យល់ថាតើវាមានសារៈសំខាន់យ៉ាងណាក្នុងការកំណត់នាឡិកានេះឱ្យបានត្រឹមត្រូវ។ វាក៏មានគុណលក្ខណៈបន្ថែមដើម្បីពណ៌នាអំពីឯកសារដូចជា ឯកសារប្រព័ន្ធ ឯកសារលាក់ ឯកសារបានតែអាន ឯកសារបណ្ណសារ។ល។ ប្រព័ន្ធប្រតិបត្តិការនឹងដោះស្រាយរឿងនេះដោយខ្លួនឯង។

    ឯកសារនីមួយៗមានលិបិក្រមតែមួយគត់។ លិបិក្រមមានព័ត៌មានដែលត្រូវការដោយដំណើរការណាមួយដើម្បីចូលប្រើឯកសារ។ ដំណើរការចូលដំណើរការឯកសារដោយប្រើសំណុំនៃការហៅប្រព័ន្ធដែលបានកំណត់យ៉ាងល្អ និងកំណត់អត្តសញ្ញាណឯកសារជាមួយនឹងខ្សែអក្សរដែលដើរតួជាឈ្មោះឯកសារដែលមានលក្ខណៈសម្បត្តិគ្រប់គ្រាន់។ ឈ្មោះសមាសធាតុនីមួយៗកំណត់អត្តសញ្ញាណឯកសារដោយឡែក ដែលបណ្តាលឱ្យខឺណែលបំប្លែងឈ្មោះទៅជាលិបិក្រមឯកសារ។ សន្ទស្សន៍រួមបញ្ចូលតារាងអាសយដ្ឋានដែលព័ត៌មានឯកសារមានទីតាំងនៅលើថាស។ ដោយសារប្លុកនីមួយៗនៅលើថាសត្រូវបានដោះស្រាយដោយលេខរបស់វា តារាងនេះរក្សាទុកបណ្តុំនៃលេខប្លុកថាស។ ដើម្បីបង្កើនភាពបត់បែន ខឺណែលបន្ថែមឯកសារមួយប្លុកក្នុងពេលតែមួយ ដែលអនុញ្ញាតឱ្យព័ត៌មានរបស់ឯកសារត្រូវបានខ្ចាត់ខ្ចាយពេញប្រព័ន្ធឯកសារ។ ប៉ុន្តែប្លង់នេះធ្វើឱ្យស្មុគស្មាញដល់កិច្ចការស្វែងរកទិន្នន័យ។ តារាងអាសយដ្ឋានមានបញ្ជីលេខប្លុកដែលមានព័ត៌មានជាកម្មសិទ្ធិរបស់ឯកសារ ប៉ុន្តែការគណនាសាមញ្ញបង្ហាញថាបញ្ជីលីនេអ៊ែរនៃប្លុកឯកសារនៅក្នុងលិបិក្រមគឺពិបាកក្នុងការគ្រប់គ្រង។ ដើម្បីធានាថារចនាសម្ព័ន្ធលិបិក្រមតូចអនុញ្ញាតឱ្យធ្វើការជាមួយឯកសារធំ តារាងនៃអាសយដ្ឋានប្លុកថាសត្រូវបាននាំមកស្របជាមួយនឹងរចនាសម្ព័ន្ធ។

    អត្ថបទ និងឯកសារគោលពីរ

    ឯកសារអនុញ្ញាតឱ្យអ្នកប្រើអានទិន្នន័យយ៉ាងច្រើនដោយផ្ទាល់ពីថាសដោយមិនចាំបាច់បញ្ចូលវាពីក្តារចុច។ មានឯកសារពីរប្រភេទសំខាន់ៗ៖ អត្ថបទ និងគោលពីរ។

    អត្ថបទឯកសារដែលមានតួអក្សរណាមួយត្រូវបានហៅ។ ពួក​គេ​ត្រូវ​បាន​រៀប​ចំ​ជា​ជួរ ដោយ​នីមួយៗ​បញ្ចប់​ដោយ " ចុងបញ្ចប់នៃបន្ទាត់". ចុងបញ្ចប់នៃឯកសារខ្លួនវាត្រូវបានចង្អុលបង្ហាញដោយនិមិត្តសញ្ញា " ចុងបញ្ចប់នៃឯកសារ". នៅពេលសរសេរព័ត៌មានទៅឯកសារអត្ថបទ ដែលអាចមើលបានដោយប្រើកម្មវិធីនិពន្ធអត្ថបទ ទិន្នន័យទាំងអស់ត្រូវបានបំប្លែងទៅជាប្រភេទតួអក្សរ ហើយរក្សាទុកក្នុងទម្រង់តួអក្សរ។

    នៅក្នុងប្រព័ន្ធគោលពីរ Xឯកសារព័ត៌មានត្រូវបានអាន និងសរសេរជាទម្រង់ប្លុកនៃទំហំជាក់លាក់មួយ ដែលទិន្នន័យនៃប្រភេទ និងរចនាសម្ព័ន្ធណាមួយអាចត្រូវបានរក្សាទុក។

    ដើម្បីធ្វើការជាមួយឯកសារ ប្រភេទទិន្នន័យពិសេសហៅថា ស្ទ្រីម។ស្ទ្រីម ifstream ត្រូវបានប្រើដើម្បីធ្វើការជាមួយឯកសារក្នុងរបៀបអាន ហើយ ifstream ត្រូវបានប្រើក្នុងរបៀបសរសេរ។ ដើម្បីធ្វើការជាមួយឯកសារទាំងក្នុងរបៀបសរសេរ និងអាន ស្ទ្រីម ifstream ត្រូវបានប្រើ។

    នៅក្នុងកម្មវិធី C++ នៅពេលធ្វើការជាមួយឯកសារអត្ថបទ អ្នកត្រូវតែបញ្ចូលបណ្ណាល័យ ifstream និង iostream ។

    ដើម្បីសរសេរទិន្នន័យទៅឯកសារអត្ថបទ អ្នកត្រូវតែ៖ 1) ពិពណ៌នាអំពីអថេរប្រភេទ នៃចរន្ត បើក; 3) បញ្ជូនព័ត៌មានទៅឯកសារ; 4) ត្រូវប្រាកដថាបិទឯកសារ។

    ដើម្បីអានទិន្នន័យពីឯកសារអត្ថបទ អ្នកត្រូវតែ៖

    1) ពិពណ៌នាអំពីអថេរប្រភេទ ifstream; 2) បើកឯកសារដោយប្រើមុខងារ បើក; 3) អានព័ត៌មានពីឯកសារមួយ នៅពេលអានបំណែកនីមួយៗ ចាំបាច់ត្រូវពិនិត្យមើលថាតើឯកសារនោះបានដល់ទីបញ្ចប់ហើយឬនៅ? 4) បិទឯកសារ។

    វាគួរតែត្រូវបានកត់សម្គាល់ថានៅក្នុងឧទាហរណ៍ទាំងអស់ដែលបានពិភាក្សាខាងលើមុខងារ fopen () នៅក្នុងរបៀប "r" និង "w" បើកឯកសារអត្ថបទសម្រាប់ការអាននិងសរសេររៀងគ្នា។ នេះមានន័យថាតួអក្សរធ្វើទ្រង់ទ្រាយអត្ថបទមួយចំនួន ដូចជាការបញ្ជូនត្រឡប់ '\r' មិនអាចអានជាតួអក្សរដាច់ដោយឡែកបានទេ ពួកវាប្រហែលជាមិនមាននៅក្នុងឯកសារទេ ប៉ុន្តែពួកវានៅទីនោះ។ នេះគឺជាមុខងារនៃទម្រង់អត្ថបទរបស់ឯកសារ។ សម្រាប់ការងារ "ល្អ" បន្ថែមទៀតជាមួយមាតិកាឯកសារ មានរបៀបប្រព័ន្ធគោលពីរដែលតំណាងឱ្យមាតិកាឯកសារជាលំដាប់នៃបៃ ដែលកូដបញ្ជាដែលអាចធ្វើបានទាំងអស់គ្រាន់តែជាលេខប៉ុណ្ណោះ។ វាស្ថិតនៅក្នុងរបៀបនេះ ដែលវាអាចធ្វើទៅបានដើម្បីលុប ឬបន្ថែមតួអក្សរវត្ថុបញ្ជាដែលមិនមាននៅក្នុងរបៀបអត្ថបទ។ ដើម្បីបើកឯកសារក្នុងរបៀបគោលពីរ មុខងារ fopen() ក៏ត្រូវបានប្រើជាមួយប៉ារ៉ាម៉ែត្រចុងក្រោយដែលស្មើនឹង "rb" និង "wb" រៀងគ្នាសម្រាប់ការអាន និងសរសេរ។

    ឯកសារ។ លើសពីនេះទៅទៀត តាមទស្សនៈនៃការអនុវត្តបច្ចេកទេសនៅកម្រិតផ្នែករឹង ឯកសារអត្ថបទគឺជាករណីពិសេសនៃឯកសារគោលពីរ ហើយដូច្នេះក្នុងន័យទូលំទូលាយនៃពាក្យ ឯកសារណាមួយសមនឹងនិយមន័យនៃ "ឯកសារគោលពីរ" ។

    ជាទូទៅ ពាក្យនេះតំណាងឱ្យរង្វាស់នៃទំនាក់ទំនងរវាងអ្នកប្រើប្រាស់ឯកសារគោលពីរ និងឯកសារខ្លួនឯង។ ប្រសិនបើអ្នកប្រើប្រាស់ដឹងពីរចនាសម្ព័ន្ធ និងច្បាប់ដែលគាត់អាចបំប្លែងឯកសារដែលបានផ្តល់ឱ្យទៅជាកម្រិតខ្ពស់ នោះវាមិនមែនជាគោលពីរសម្រាប់គាត់ទេ។ ឧទាហរណ៍ ឯកសារដែលអាចប្រតិបត្តិបានគឺជាប្រព័ន្ធគោលពីរសម្រាប់អ្នកប្រើប្រាស់កុំព្យូទ័រ ប៉ុន្តែមិនមែនជាប្រព័ន្ធគោលពីរសម្រាប់ប្រព័ន្ធប្រតិបត្តិការនោះទេ។ [ ]

    ការមើលឃើញ

    ដើម្បីតំណាងឱ្យឯកសារគោលពីរដោយមើលឃើញ វាត្រូវបានបែងចែកទៅជាបំណែកដែលមានទំហំស្មើគ្នា តំណាងជាលេខ ជាធម្មតាត្រូវបានសរសេរជាលេខគោលដប់ប្រាំមួយ ជួនកាលជាលេខគោលប្រាំបី គោលពីរ ឬទសភាគ។ ទំហំកំណាត់ដែលបានចង្អុលបង្ហាញអាចស្មើនឹងមួយ octet ក៏ដូចជាពីរ ឬបួន (ក្នុងករណីដែលបំបែកទៅជាកំណាត់នៃ octet ជាច្រើន លំដាប់បៃដែលបានអនុម័តនៅលើវេទិកាដែលបានប្រើគឺត្រូវបានប្រើប្រាស់) ។ ភាពអាស្រ័យនៃជួរនៃលេខតំណាងលើទំហំនៃដុំត្រូវបានបង្ហាញក្នុងតារាង៖

    octets ចំនួនប៊ីត លេខគោលដប់ប្រាំមួយ។ ប្រាំបី ទសភាគ
    មិនបានចុះហត្ថលេខា
    ទសភាគ
    រូបតំណាង
    1 8 00

    អេហ្វ
    000

    377
    0

    255
    -128

    127
    2 16 0000

    FFFF
    000000

    177777
    0

    65535
    -32768

    32767
    4 32 00000000

    FFFFFFFF
    00000000000

    37777777777
    0

    4294967295
    -2147483648

    2147483647

    ជាញឹកញាប់ បន្ថែមពីលើតម្លៃបៃជាលេខ តួអក្សរទំព័រកូដ ដូចជា ASCII ក៏ជាលទ្ធផលផងដែរ។ ឧទាហរណ៍ខាងក្រោមបង្ហាញពីអ្វីដែលគេហៅថា។ ការចាក់សំរាមបុរាណ(តំណាងលេខគោលដប់ប្រាំមួយ octet-by-octet នៃ 16 បៃក្នុងមួយជួរ ជាមួយនឹងតួអក្សរ ASCII ដែលអាចបោះពុម្ពបាននៅខាងស្តាំ) នៃការចាប់ផ្តើមនៃឯកសារ PNG និមិត្តសញ្ញា Wikipedia៖

    00000000 89 50 4e 47 0d 0a 1a 0a 00 00 00 0d 49 48 44 52 |.PNG........IHDR| 00000010 00 00 00 87 00 00 00 a0 08 03 00 00 00 11 90 8f |............| 00000020 b6 00 00 00 04 67 41 4d 41 00 00 d6 d8 d4 4f 58 |.....gAMA.....OX| 00000030 32 00 00 00 19 74 45 58 74 53 6f 66 74 77 61 72 |2....tEXtSoftwar| 00000040 65 00 41 64 6f 62 65 20 49 6d 61 67 65 52 65 61 |e.Adobe ImageRea| 00000050 64 79 71 c9 65 3c 00 00 03 00 50 4c 54 45 22 22 |dyq.e<....PLTE""| 00000060 22 56 56 56 47 47 47 33 33 33 30 30 30 42 42 42 |"VVVGGG333000BBB| 00000070 4b 4b 4b 40 40 40 15 15 15 4f 4f 4f 2c 2c 2c 3c |KKK@@@...OOO,<| 00000080 3c 3c 3e 3e 3e 3a 39 39 04 04 04 1d 1d 1d 35 35 |<<>>>:99......55| 00000090 35 51 50 50 37 37 37 11 11 11 25 25 25 0d 0d 0d |5QPP777...%%%...| 000000a0 27 27 27 1a 1a 1a 38 38 38 2a 2a 2a 08 08 08 20 |""""...888**... | 000000b0 20 20 17 17 bb 8 3e 817 bb8 . ............|

    ឧបករណ៍

    សម្រាប់ការមើលឃើញ

    • បំបាត់កំហុស (នៅលើ Microsoft Windows ដោយផ្នែក)
    • hexdump (នៅលើ FreeBSD, GNU/Linux ។ល។)

    សម្រាប់ការកែសម្រួល

    • កម្មវិធីនិពន្ធ HEX
      • beye (សម្រាប់ប្រព័ន្ធប្រតិបត្តិការទាំងអស់ កម្មវិធីឥតគិតថ្លៃ)
      • hiew (សម្រាប់ DOS, Microsoft Windows, Windows NT)
      • WinHex (សម្រាប់ Windows)

    អ្នកប្រហែលជាបានឆ្លងកាត់ពាក្យ "អត្ថបទ" និង "ប្រព័ន្ធគោលពីរ" រួចហើយ ខណៈពេលដែលកំពុងអានអត្ថបទមួយចំនួនអំពី . ហើយពួកគេបានសម្រេចចិត្តថារឿងទាំងអស់នេះគឺស្មុគស្មាញពេកសម្រាប់អ្នក ដែលមិនអាចដោះស្រាយវាចេញបាន ដូច្នេះហើយពួកគេមិនបានស្វែងយល់ពីវាឡើយ ដោយបោះបង់វាចោល។

    យើងនឹងព្យាយាមពន្យល់គ្រប់យ៉ាងដោយពាក្យសាមញ្ញបំផុត ព្រោះព័ត៌មានបែបនេះមានប្រយោជន៍សម្រាប់អ្នកប្រើប្រាស់គ្រប់រូប សូម្បីតែអ្នកដែលគ្មានបទពិសោធន៍បំផុតក៏ដោយ ព្រោះវាទាក់ទងដោយផ្ទាល់ទៅនឹងមូលដ្ឋានគ្រឹះនៃសុវត្ថិភាពកុំព្យូទ័រ។

    ទ្រឹស្តីតិចតួច

    ឯកសារអត្ថបទមានតួអក្សរ ASCII (អក្សរកាត់តំណាងឱ្យកូដស្តង់ដារអាមេរិកសម្រាប់ការផ្លាស់ប្តូរព័ត៌មាន អ្វីមួយដូចជា "កូដស្តង់ដារអាមេរិកសម្រាប់ការផ្លាស់ប្តូរព័ត៌មាន") ។

    តាមពិត ASCII គឺជាតារាងដែលអក្សរនីមួយៗ លេខ សញ្ញាវណ្ណយុត្តិ និង "ឆ្កែ" ផ្សេងៗដែលមាន "ផ្កាព្រិល" (ក្នុងន័យ @ និង *) ត្រូវបានបែងចែកមួយបៃ។ នោះគឺសូន្យប្រាំបី និងមួយ (ប៊ីត)។ លើសពីនេះ ពិតណាស់ គ្រប់គ្រងតួអក្សរដូចជាបន្ទាត់ថ្មី។

    កម្មវិធីសម្រាប់បើកឯកសារដែលមានតួអក្សរ ASCII បំប្លែងបៃទៅជាអក្សរ លេខ និងតួអក្សរដែលអាចបោះពុម្ពបានផ្សេងទៀតនៅលើអេក្រង់។ ជាការពិតណាស់ កម្មវិធីត្រូវតែយល់ថាផ្នែកនៃតារាងដែលត្រូវគ្នានឹងភាសារុស្សី ប៉ុន្តែនេះគឺជាបញ្ហានៃការអ៊ិនកូដរួចហើយ។

    នៅក្នុងឯកសារគោលពីរ លេខសូន្យ និងមួយត្រូវបានរៀបចំតាមលំដាប់លំដោយដែលមិនចាំបាច់ដើម្បីបង្ហាញអត្ថបទ (ទោះបីជាមានមួយចំនួនឧទាហរណ៍ *doc)។ ហេតុអ្វីបានជាអ្នកសួរ។ ចម្លើយគឺសាមញ្ញ៖ សម្រាប់អ្វីៗផ្សេងទៀត។ កម្មវិធី ភាពយន្ត តន្ត្រី រូបភាព - ទ្រង់ទ្រាយនីមួយៗមានគោលការណ៍រចនាសម្ព័ន្ធផ្ទាល់ខ្លួនសម្រាប់រៀបចំទិន្នន័យ។

    ពាក្យ "គោលពីរ" ខ្លួនវាមានន័យថា "មានធាតុផ្សំពីរ" "ទ្វេ" ។ ជាការពិត វាអាចកំណត់យ៉ាងច្បាស់តែពីរសមាសភាគ - សូន្យ និងមួយ ប៊ីត "ឥដ្ឋ" ដែលឯកសារត្រូវបានផ្សំ។ អត្ថន័យនៃអ្វីៗផ្សេងទៀតអាចបង្ហាញបានតែក្នុងអំឡុងពេលចាប់ផ្តើម (បើក ចាក់សារឡើងវិញ)។

    ផ្នែកខុសនៃពិភពឌីជីថល

    អ្នកអាចមើលខាងក្នុងឯកសារគោលពីរដោយប្រើកម្មវិធីពិសេស - កម្មវិធីនិពន្ធ HEX ។ (ពីពាក្យ Hexadecimal តំណាងឱ្យប្រព័ន្ធលេខគោលដប់ប្រាំមួយ) កម្មវិធីបែបនេះបង្ហាញបៃក្នុងទម្រង់នៃការរចនា HEX របស់ពួកគេ ដែលតាមពិតវាមានទីតាំងនៅក្នុងទម្រង់តារាង (ម៉ាទ្រីស) ផងដែរ។

    ឧទាហរណ៍ បៃនៃរូបភាពក្នុងទម្រង់ JPEG ដែលជារូបភាពធម្មតា ឬរូបថតនឹងត្រូវបានបង្ហាញនៅក្នុងបង្អួចកម្មវិធីនិពន្ធដូចជា FF D8 FF 00 04 3A 29 និងបន្តបន្ទាប់ទៀត។

    អ្នកឯកទេសនឹងយល់ថាលំដាប់នៃបៃ FF D8 នៅដើមដំបូងបង្ហាញថានេះគឺជា JPEG ។ ប៉ុន្តែទាំងអស់នេះមិនគួរឱ្យចាប់អារម្មណ៍ខ្លាំងចំពោះអ្នកមិនមែនជាអ្នកឯកទេសទេ។

    អ្នកក៏អាចបើកឯកសារអត្ថបទនៅក្នុងកម្មវិធីនិពន្ធ HEX ដើម្បីមើលថាតើបៃមួយណាដែលត្រូវនឹងអក្សរជាក់លាក់ (តួអក្សរ ASCII) ។ ប៉ុន្តែ​គ្រាន់​តែ​ចេញ​ពី​ការ​ចង់​ដឹង​ប៉ុណ្ណោះ វា​នៅ​តែ​គ្មាន​ចំណុច​អ្វី​សោះ។

    ប៉ុន្តែពេលខ្លះឯកសារគោលពីរត្រូវបានមើលក្នុងទម្រង់គោលដប់ប្រាំមួយសម្រាប់គោលបំណងដ៏មានអត្ថន័យ និងជាក់លាក់។ ជាឧទាហរណ៍ អ្នកឯកទេសមន្ទីរពិសោធន៍ប្រឆាំងមេរោគរកមើលកូដព្យាបាទដែលត្រូវបានបន្ថែមទៅលេខសំខាន់តាមរបៀបនេះ។ ដោយវិធីនេះ ចូរយើងបន្តទៅបញ្ហាសន្តិសុខ។

    អ្វីដែលអាចបង្កគ្រោះថ្នាក់

    ឯកសារអត្ថបទមិនអាចមានអ្វីក្រៅពីតួអក្សរ ASCII ទេ។ ទោះយ៉ាងណាក៏ដោយ កម្មវិធីមិនត្រឹមតែជាប្រព័ន្ធគោលពីរប៉ុណ្ណោះទេ ប៉ុន្តែក៏មាននិមិត្តសញ្ញាខាងលើផងដែរ។ ខ្ញុំមានន័យថា ស្គ្រីប។

    ម្យ៉ាងវិញទៀត ឯកសារ *txt មិនត្រូវបានឆ្លងមេរោគជាគោលការណ៍ ហើយមិនបង្កការគំរាមកំហែងទេ។ ហើយប្រសិនបើមានស្គ្រីបនៅក្នុងឯកសារអត្ថបទនោះ វាអាចមានបញ្ហាច្រើន។

    ឧទាហរណ៍ ឯកសារ *bat មានកូដនៃពាក្យបញ្ជាផ្សេងៗ ហើយត្រូវបានបើកដំណើរការដោយការចុចពីរដង ដូចជាកម្មវិធីធម្មតា។ ពាក្យ​បញ្ជា​ទាំង​នោះ​ត្រូវ​បាន​សរសេរ​ជា​តួអក្សរ ASCII ប៉ុន្តែ​ប្រព័ន្ធ​ប្រតិបត្តិការ​ដឹង​ពី​របៀប​បកស្រាយ​វា - ប្រែក្លាយ​វា​ទៅ​ជា​សូន្យ និង​មួយ​ដែល​ជា​តួយ៉ាង​សម្រាប់​កម្មវិធី។

    ប៉ុន្តែជាការពិត អ្នកមិនចុចលើឯកសារ bat មិនស្គាល់ទេមែនទេ? នោះជាការល្អ។

    ការបោះពុម្ពផ្សាយពីមុន៖

    កែប្រែចុងក្រោយ៖ 2012-11-06 14:45:16

    ស្លាកសម្ភារៈ: ,