Rəylər

Koddan Ascii (Mətn) Fayllarını idarə etmək

Koddan Ascii (Mətn) Fayllarını idarə etmək

Sadəcə, mətn sənədlərində oxunan ASCII simvolları var. Delphi'də bir VCR lentində məlumat oynamaq və ya qeyd etmək üçün bənzər bir mətn faylı ilə işləməyi düşünə bilərik.

Mətn faylı ilə dəyişiklik etmək, məlumatları emal edərkən sıçraymaq və ya sonuna başqa bir sənəd əlavə etmək mümkün olsa da, yalnız adi mətnlə işlədiyimizi bildiyimiz zaman bir mətn faylı istifadə etmək tövsiyə olunur. belə əməliyyatlara ehtiyac yoxdur.

Mətn sənədləri, hər bir xəttin bir son işarəsi (CR / LF birləşməsi) ilə xitamlandığı xətlərə biçimlənmiş simvol ardıcıllığını təmsil etdiyi hesab olunur.

TextFile və Təyinat metodu

Mətn sənədləri ilə işləməyə başlamaq üçün bir diskdəki bir faylı kodunuzdakı dəyişən bir faylla əlaqələndirməlisiniz - bir dəyişən TextFile elan edin və bir faylı bir dəyişən ilə bir diskdə birləşdirmək üçün AssignFile prosedurundan istifadə edin.

var

SomeTxtFile: TextFile;

başlamaq

AssignFile (SomeTxtFile, FileName)

Bir mətn faylı məlumat oxumaq

Bir fayldakı məzmunu satır siyahısına oxumaq istəyiriksə, sadəcə bir sətir xətti bu işi görəcəkdir.

Memo1.Lines.LoadFromFile ('c: autoexec.bat')

Bir xətt xəttindən məlumat oxumaq üçün, faylı açmalıyıq giriş istifadə edərək Sıfırlayın proseduru. Bir fayl sıfırlandıqdan sonra istifadə edə bilərik Oxuyun bir fayldakı məlumatı oxumaq üçün (bir mətndən bir sətir oxuyur və sonra növbəti sətirə keçir):

var

SomeTxtFile: TextFile;

tampon: simli;

başlamaq

AssignFile (SomeTxtFile, 'c: autoexec.bat');

Yeniləyin (SomeTxtFile);

ReadLn (SomeTxtFile, bufer);

Memo1.Lines.Add (tampon);

CloseFile (SomeTxtFile);

son;

Bir sənəddən bir mətn sətirini bir memo komponentinə əlavə etdikdən sonra SomeTxtFile bağlanmalıdır. Bu tərəfindən edilir Yaxın açar söz.

Bir fayldan məlumat oxumaq üçün Read prosedurundan da istifadə edə bilərik. Göstərici növbəti sətirə keçirməməsi halında ReadLn kimi oxuyun.

var

SomeTxtFile: TextFile;

buf1, buf2: simli5;

başlamaq

AssignFile (SomeTxtFile, 'c: autoexec.bat');

Yeniləyin (SomeTxtFile);

ReadLn (SomeTxtFile, buf1, buf2);

ShowMessage (buf1 + "+ buf2);

CloseFile (SomeTxtFile);

son;

EOF - Faylın sonu

EOF funksiyasından istifadə edərək sənədin sonundan kənarda oxumağa çalışmadığınızdan əmin olun. Faylın məzmununu mesaj qutularında göstərmək istədiyimizi söyləyək - bir faylın sonuna çatanadək bir-bir satır:

var

SomeTxtFile: TextFile;

tampon: simli;

başlamaq

AssignFile (SomeTxtFile, 'c: autoexec.bat');

Yeniləyin (SomeTxtFile);

  edərkən deyil EOF (SomeTxtFile) başlamaq

ReadLn (SomeTxtFile, bufer);

ShowMessage (tampon);

  son;
CloseFile (SomeTxtFile);

son;

Qeyd: Faylın mövcud olduğu (lakin mümkün olmayan) ehtimalını nəzərə almaq üçün Loop qədər loopdan istifadə etmək daha yaxşıdır.

Bir faylı mətn yazmaq

The Yazın fərdi məlumatları bir fayla göndərməyin bəlkə də ən ümumi yoludur. Aşağıdakı kod bir Memo1 komponentindən bir mətni oxuyacaq (xətlə xətlə) və yeni yaradılan bir mətn sənədinə göndərəcəkdir.

var

SomeTxtFile: TextFile;

j: tam;

başlamaq

AssignFile (SomeTxtFile, 'c: MyTextFile.txt');

Yenidən yazma (SomeTxtFile);

  üçün j: = 0 üçün (-1 + Memo1.Lines.Səngi) etmək

WriteLn (SomeTxtFile, Memo1.Linesj);

CloseFile (SomeTxtFile);

son;

Rewrite proseduruna təqdim olunan faylın vəziyyətindən asılı olaraq SomeTextFile adını daşıyan yeni bir fayl yaradır (çıxışı üçün açar). Eyni adı olan bir fayl artıq varsa, silinir və yerində yeni boş bir fayl yaradılır. SomeTextFile artıq açıqdırsa, əvvəlcə bağlanır və sonra yenidən yaradılır. Mövcud fayl mövqeyi boş faylın əvvəlinə təyin edilmişdir.

Qeyd: Memo1.Lines.SaveToFile ('c: MyTextFile.txt') eyni şeyi edəcəkdir.

Bəzən mövcud bir faylın sonuna sadəcə bəzi mətn məlumatlarını əlavə etməliyik. Əgər belədirsə, zəng vuracağıq Əlavə et bir faylın yalnız yazılı giriş ilə açıldığını təmin etmək və sənədin sonunda yerləşdirilmiş göstərici ilə. Kimi bir şey:

var

SomeTxtFile: TextFile;

başlamaq

AssignFile (SomeTxtFile, 'c: MyTextFile.txt');

Əlavə et (SomeTxtFile);

WriteLn (SomeTxtFile, 'Mətn sənədimdə yeni xətt');
CloseFile (SomeTxtFile);

son;

İstisnalardan xəbərdar olun

Ümumiyyətlə, fayllarla işləyərkən həmişə istisna rəftardan istifadə etməlisiniz. I / O sürprizlərlə doludur. Bir istifadəçinin FAT-ı pozma ehtimalının qarşısını almaq üçün həmişə nəhayət bir blokda CloseFile istifadə edin. Əvvəlki bütün nümunələr aşağıdakı kimi yenidən yazılmalıdır:

var

SomeTxtFile: TextFile;

tampon: simli;

başlamaq

AssignFile (SomeTxtFile, 'c: MyTextFile.txt');

  cəhd edin

Yeniləyin (SomeTxtFile);

ReadLn (SomeTxtFile, bufer);

  nəhayət

CloseFile (SomeTxtFile);

  son;

son;

Strukturlaşdırılmış Fayllarla Manipulyasiya

Delphi həm ASCII fayllarını, həm də ikili məlumatları saxlayan sənədləri idarə etmək qabiliyyətinə malikdir. Budur yazılmış və açılmamış (ikili) fayllarla işləmə üsulları.


Videoya baxın: İnformatika. İnformasiyanın kodlaşdırılması. ASCII və Unicode kodlaşdırma sistemləri Dərs . (Avqust 2021).