Ш. И. Раззоќов, М. Д. Юнусова turbo pascal алгоритмик тилида дастурлаш касб-ћунар коллеж талабалари учун ўќув ќўлланма


Download 1.74 Mb.
bet75/96
Sana30.04.2023
Hajmi1.74 Mb.
#1413831
1   ...   71   72   73   74   75   76   77   78   ...   96
Bog'liq
Turbo Pascal назария

program RenDelDemo;
var
f:file;
begin
Assign(f,`MyFile.Dat`);
Rename (f,`Result.Dat`);
{Ќайта номланган файллар билан ишлаш}
Erase(f)
end.


11.4.2. DOS модулининг ўзгармаслари, турлари, процедура ва функциялари
DOS модулининг файлли воситаларидан фойдаланувчи дастурларда DOS идентификаторини кўрсатувчи Uses таклифи бўлиши керак:
programm Example;
Uses DOS

begin

end.


Файллар билан ишлаш учун турлар



TfileRec= record
Handle :Word;
Mode : Word;
RecSize : Word;
Private :array [1..26] of Byte;
UsesData:array[1..16] of Byte;
Name :array [0..79] of Char;
End;


PTextBuf=^ TTextBuf;
TTextBuf=array[0..127] of Char;
TTextRec=record
Handle:Word;
Mode:Word;
BufSize:Word;
Private:Word;
BufPos:Word;
BufEnd:Word;
BufPtr: PTextBuf;
OpenFunc:Pointer;
InOutFunc:Pointer;
FlushFunc:Pointer;
CloseFunc:Pointer;
UserData:array[1..16] of Byte;
Name:array[0..79] of Char;
Buffer:TTextBuf;
End;

ТFileRec тури турдошлаштирилган файллар учун ћам, турдошлаштирилмаган файллар учун ћам ишлатилади. TtextRec тур эса фаќат матнларда ќўлланилади.



SearchRec=record
Fill:array[1..21] of Byte;
Attr: Byte;
Time: Longint;
Size: Longint;
Name: String[12];
end;

SearchRec турдаги ўзгарувчилар Find First ва Find Next процедураларда файллар каталогларини кўриб чиќиш учун ишлатилади.





DateTime=record
Year, Month, Day, Hoyr,
Min, Sec : word;
end;

DateTime тури UnpackTime ва PackTime процедураларида сана ва ваќтга эга бўлган тўрт байтли ќийматни таћлил ќилиш, жойлаштириш ва яратиш учун ишлатилади. Бу тўрт байтли ќиймат шундан кейин GetFTime, SetTime, FindFirst ва FindNext процедураларида ишлатилади.
DOS модулининг ComStr, PathStr, DirStr, NameStr, ExtStr сатрли турлари FSplit сатрли процедурани чаќиришда файллар исмлари ва йўналишлари (манзиллари) билан ишлашда фойдаланилади.
Файллар билан ишлаш учун ўзгармаслар:

FmClosed=$D7BO
FmInput=$D7B1
FmOutput=$D7B2
FmInOut=$D7B3

FmClosed, fmInput, fmOuput, fmInOut ўзгармаслар TТextRec ёки TFileRec туридаги ўзгарувчиларда Mode майдонининг ќийматини (ёзиш-ўќиш режими) ўрнатиш маќсадида файлларни очиш ва ечишда фойдаланилади.





ReadOnly = $01 {фаќат ўќиш учун}
Hidden = $02 {«яширинган» файл}
SysFile = $04 {тизим файли}
VolumeID = $08 {том исми}
Directory = $10 {каталог}
Archive = $20 {архив файли}
AnyFile = $3F {ихтиёрий файл}

ReadOnly, Hidden, SysFile,VolumeID, Directory, Archive, AnyFile ўзгармаслар файллар атрибутларини ўрнатишда ишлатилади.




Файллар билан ишлашнинг процедура ва функциялари
GetFTime – файлнинг охирги ёзилиш санаси ва ваќтини ќайтаради.
SetFTime - файлнинг охирги ёзилиш санаси ва ваќтини ўрнатади.
PackTime – Date Time ёзувини SetFTime прцедураси ишлатадиган Longint туридаги сана ва ваќтни ифодалашнинг ички кодига айлантиради.
UnpackTime – сана ва ваќтни Longint турида ифодалашнинг GetFTime, FindFirst, FindNext процедуралар билан ќайтариладиган ички кодини DateTime жойлаштирилган ёзувга айлантиради.
FExpand - файл исмини ќабул ќилади ва тўла аниќланган исмни (диск, каталог, кенгайтма) ќайтаради.
FSearch – файлни каталоглар рўйхатидан излайди.
FindFirst – таркиби файлнинг берилган исми ва атрибутлари билан мос келувчи берилган (ёки жорий) каталогда ёзувни излашни амалга оширади.
FindNext – Find First процедурасига бундан олдин мурожаат ќилинганда берилганлар билан файл исми ва атрибутлари мос келувчи навбатдаги ёзувни излайди.
GetFAttr – файл атрибутларини ќайтаради.
SetFAttr – файл атрибутларини ўрнатади.
Бундан ташќари файллар билан ишлашда (айниќса, янги файллар яратишда) DOS модулининг яна иккита функцияси фойдалидир.
DiskFree – берилган дисководда дискдаги бўш байтлар сонини ќайтаради.
DiskSize – берилган дискнинг байтлардаги тўла ћажмини ќайтаради.

11.5. Турдошлаштирилган файллар


Турдошлаштирилган файлнинг ћамма элементлари бир хил турда бўлиши керак. Турдошлаштирилган файллар файлли ва файллига таянувчи турдан бошќа ихтиёрий турда бўлиши мумкин.
Мумкин бўлмаган эълонларга мисол:
type TF1 = file of file;
TFR = record
A: Integer;
F: file of Real;
end;
TF2:file of TFR;
Турдошлаштирилган файлларда кетма-кет фойдаланиш усули ћам, тўѓридан-тўѓри фойдаланиш усули ћам йўл ќўйилади. Тўѓридан- тўѓри ишлаш усулида турдошлаштирилган файлларнинг элементлари ћамма ваќт нолдан бошлаб раќамланишини эслаб ќолиш керак.


11.5.1. Турдошлаштирилган файллар билан ишлаш процедура ва функциялари
Турдошлаштирилган файллардан ўќиш фаќат Read, ёзиш эса фаќат Write процедураси билан амалга оширилади. Бунда ўќиш (ёзиш) бирлиги бўлиб ћамма ваќт файл тури билан бир хил турдаги ўзгарувчи бўлади.
Read процедураси турдошлаштирилган файллар учун ќуйидаги форматга эга:
Read (файлли ўзгарувчи исми, ўзгарувчилар рўйхати)
Read процедураси рўйхатидаги ћар бир ўзгарувчига ўќишда, файлдаги жорий хона кўрсаткичи навбатдаги элементга ўтади. Агар файлдаги жорий хона кўрсаткичи охирги элементдан кейин, яъни (Eof(f)=True) файли охирида турган бўлса, унда Read процедурасининг бажарилиши бажарилиш ваќти хатолигига олиб келади.
Write процедураси турдошлаштирилган файллар учун ќуйидаги форматга эга:
Write (файлли ўзгарувчи исми, ўзгарувчилар рўйхати)
Ћар бир ўзгарувчини ёзишда (ўќишда ћам) файлдаги жорий хона кўрсаткичи кейинги элементга ўтади. Агар файл жорий хонасининг кўрсаткичи охирги элементдан кейин, яъни (Eof(f)=True) файли охирида бўлса, Write процедурасини бажаришда файл кенгаяди.
Тўѓридан-тўѓри фойдаланиш учун ќуйидаги процедуралар белгиланган.
FilePos – файлда жорий хона кўрсаткичи раќамини ќайтаради (хоналар нолдан раќамланади).
FileSize – файлнинг жорий ўлчамини ќайтаради (файл элементлари сони бирдан бошлаб ћисобланади).
Seek – файлдаги жорий хона кўрсаткичини берилган раќамли (нолдан бошлаб ћисобланганда) элементга ўтказади.
Truncate – файл ўлчамини жорий хонагача ќирќади. Файлдаги жорий хонадан кейин жойлашган ћамма элеменлар йўќотилади ва файлдаги жорий хона унинг охири (Eof(f)=True) бўлади.
Турдошлаштирилган файл элементларига тўѓридан-тўѓри фойдаланишга мисол сифатида алмаштириш («кўпик») усули билан файлни саралаш дастурини кўрамиз (IX боб):

Download 1.74 Mb.

Do'stlaringiz bilan baham:
1   ...   71   72   73   74   75   76   77   78   ...   96




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling