Файл. Файл типтерi
Сыртқы жадтың (дискiнiң не дискеттiң) атау берiлген облысын файл не дискiлiк файл деп, дискiге жазылатын ин¬формацияны берiлгендер файлы (БФ) деп атайды. БФ-ке мы¬сал ретiнде мынадай тiзiм алуға болады:
1. Шәймерденқызы Гүлнар 1975 қазақ
2. Оралханұлы Ержан 1977 қазақ
3. Нұрғалиқызы Жәмила 1978 қазақ
(тiзiм кез келген n жолдан тұруы мүмкiн).
Тiзiмнiң әр жолында бiр адам жөнiндегi мәлiмет бе¬рiлген. Ол сандық және мәтiндiк болатын түрлi типтi төрт мәннен тұр. Мұндай мәлiметтi берiлгендер файлының элементi деп атайды. Элемент жол не жазу деп те аталады; жол құрайтын мәндер өрiс элементтерi делiнедi. Яғни, тiзiмнен тұратын берiлгендер файлы – жолдар жиынтығы, әр жол - файлдың бiр элементi. Берiлген тiзiмде әр жол төрт өрiс элементiнен, ал файл үш элементтен және оларға сәйкес төрт бағаннан (өрiстен) тұр. Өрiс элементтерi:
Нөмiр, Аты-жөнi, Туған жылы, Ұлты (Nomer, Fam, Tjili, Ulti).
Мұндай құрылымға жаңа өрiстердi қосу да мүмкiн, мыса¬лы, ’үй адресi’, ’телефон нөмiрi’, т.б.
БФ дискiге әрiптен басталатын 1-8 символдан тұруы мүмкiн жеке атау арқылы тиелуi (жүктелуi) тиiс, атаудың проект атынан бөлек болуы мiндеттi.
Ескерту. Кейде дискiлiк файл мен БФ-тi де файл деп атай бередi. Оларды сөйлем құрылымына қарап ажырату қиын емес.
БФ-пен жүргiзiлуi мүмкiн жұмыстар:
• файлды дискiге тиеп, сақтау (қажет болса, бiр баған бо¬йынша сорттап тиеуге болады);
• оны экранға шығару не принтер арқылы қағазға басу;
• бiр не бiрнеше белгi бойынша нақты жо¬лын не жол¬дарын таңдап, экранға шығарып көру. Оны редакциялап, дискiге қайта тиеу;
• файлдың бiр не бiрнеше жолын алып тастау не файлға жаңа жол қосу, т.б.
Delphi-де берiлгендер файлымен тiзбектi ену тәсiлi бойынша жұмыс iстеуге болады.
Файл үш түрде сипатталуы мүмкiн: типтiк, мәтiндiк және типсiз форматта. Сипаттау тәсiлдерi:
<атау>=File of <тип>; // типтiк
<атау>=TextFile; // мәтiндiк
<атау>=File; // типсiз
1. Шәймерденқызы Гүлнар 1975 қазақ
2. Оралханұлы Ержан 1977 қазақ
3. Нұрғалиқызы Жәмила 1978 қазақ
(тiзiм кез келген n жолдан тұруы мүмкiн).
Тiзiмнiң әр жолында бiр адам жөнiндегi мәлiмет бе¬рiлген. Ол сандық және мәтiндiк болатын түрлi типтi төрт мәннен тұр. Мұндай мәлiметтi берiлгендер файлының элементi деп атайды. Элемент жол не жазу деп те аталады; жол құрайтын мәндер өрiс элементтерi делiнедi. Яғни, тiзiмнен тұратын берiлгендер файлы – жолдар жиынтығы, әр жол - файлдың бiр элементi. Берiлген тiзiмде әр жол төрт өрiс элементiнен, ал файл үш элементтен және оларға сәйкес төрт бағаннан (өрiстен) тұр. Өрiс элементтерi:
Нөмiр, Аты-жөнi, Туған жылы, Ұлты (Nomer, Fam, Tjili, Ulti).
Мұндай құрылымға жаңа өрiстердi қосу да мүмкiн, мыса¬лы, ’үй адресi’, ’телефон нөмiрi’, т.б.
БФ дискiге әрiптен басталатын 1-8 символдан тұруы мүмкiн жеке атау арқылы тиелуi (жүктелуi) тиiс, атаудың проект атынан бөлек болуы мiндеттi.
Ескерту. Кейде дискiлiк файл мен БФ-тi де файл деп атай бередi. Оларды сөйлем құрылымына қарап ажырату қиын емес.
БФ-пен жүргiзiлуi мүмкiн жұмыстар:
• файлды дискiге тиеп, сақтау (қажет болса, бiр баған бо¬йынша сорттап тиеуге болады);
• оны экранға шығару не принтер арқылы қағазға басу;
• бiр не бiрнеше белгi бойынша нақты жо¬лын не жол¬дарын таңдап, экранға шығарып көру. Оны редакциялап, дискiге қайта тиеу;
• файлдың бiр не бiрнеше жолын алып тастау не файлға жаңа жол қосу, т.б.
Delphi-де берiлгендер файлымен тiзбектi ену тәсiлi бойынша жұмыс iстеуге болады.
Файл үш түрде сипатталуы мүмкiн: типтiк, мәтiндiк және типсiз форматта. Сипаттау тәсiлдерi:
<атау>=File of <тип>; // типтiк
<атау>=TextFile; // мәтiндiк
<атау>=File; // типсiз
Пән: Информатика, Программалау, Мәліметтер қоры
Жұмыс түрі: Материал
Тегін: Антиплагиат
Көлемі: 24 бет
Таңдаулыға:
Жұмыс түрі: Материал
Тегін: Антиплагиат
Көлемі: 24 бет
Таңдаулыға:
IV ТАРАУ. ФАЙЛ. МӘЗlР ҚҰРУ. ТЕСТ
ПРОГРАММАСЫ
4.1. Файл. Файл типтерi
Сыртқы жадтың (дискiнiң не дискеттiң) атау берiлген облысын файл не
дискiлiк файл деп, дискiге жазылатын информацияны берiлгендер файлы (БФ)
деп атайды. БФ-ке мысал ретiнде мынадай тiзiм алуға болады:
1. Шәймерденқызы Гүлнар 1975 қазақ
2. Оралханұлы Ержан 1977 қазақ
3. Нұрғалиқызы Жәмила 1978 қазақ
(тiзiм кез келген n жолдан тұруы мүмкiн).
Тiзiмнiң әр жолында бiр адам жөнiндегi мәлiмет берiлген. Ол сандық және
мәтiндiк болатын түрлi типтi төрт мәннен тұр. Мұндай мәлiметтi берiлгендер
файлының элементi деп атайды. Элемент жол не жазу деп те аталады; жол
құрайтын мәндер өрiс элементтерi делiнедi. Яғни, тiзiмнен тұратын
берiлгендер файлы – жолдар жиынтығы, әр жол - файлдың бiр элементi.
Берiлген тiзiмде әр жол төрт өрiс элементiнен, ал файл үш элементтен және
оларға сәйкес төрт бағаннан (өрiстен) тұр. Өрiс элементтерi:
Нөмiр, Аты-жөнi, Туған жылы, Ұлты (Nomer, Fam, Tjili, Ulti).
Мұндай құрылымға жаңа өрiстердi қосу да мүмкiн, мысалы, ’үй адресi’,
’телефон нөмiрi’, т.б.
БФ дискiге әрiптен басталатын 1-8 символдан тұруы мүмкiн жеке атау
арқылы тиелуi (жүктелуi) тиiс, атаудың проект атынан бөлек болуы мiндеттi.
Ескерту. Кейде дискiлiк файл мен БФ-тi де файл деп атай бередi. Оларды
сөйлем құрылымына қарап ажырату қиын емес.
БФ-пен жүргiзiлуi мүмкiн жұмыстар:
• файлды дискiге тиеп, сақтау (қажет болса, бiр баған бойынша сорттап
тиеуге болады);
• оны экранға шығару не принтер арқылы қағазға басу;
• бiр не бiрнеше белгi бойынша нақты жолын не жолдарын таңдап, экранға
шығарып көру. Оны редакциялап, дискiге қайта тиеу;
• файлдың бiр не бiрнеше жолын алып тастау не файлға жаңа жол қосу, т.б.
Delphi-де берiлгендер файлымен тiзбектi ену тәсiлi бойынша жұмыс iстеуге
болады.
Файл үш түрде сипатталуы мүмкiн: типтiк, мәтiндiк және типсiз форматта.
Сипаттау тәсiлдерi:
атау=File of тип; типтiк
атау=TextFile; мәтiндiк
атау=File; типсiз
Мұндағы атау - тип атауы, тип - Object Pascal-дың кез келген сәйкес
типi. Мысалы, жоғарыда жазылған тiзiм үшiн берiлгендер типiн мынадай
түрлерде сипаттауға болады:
1) type st = record
nomer : char;
fam : string [25];
tjli : integer;
ulti : string [6];
end;
var f1 : file of st; v : st; типтiк
не 2) var f2 : TextFile; мәтiндiк
не 3) var f3 : file; типсiз
Көбiнесе файлды типтiк, кей жағдайларда мәтiндiк етiп сипаттайды.
Файлға жазу, файлдан оқу операторларымен таныстыру алдында мынадай
белгiлеулер енгiзейiк:
f – файлдық айнымалы (файлдық типтi айнымалы ретiнде программада
қолданылатын идентификатор (атау)).
bf – берiлгендер файлының атауы (атау меншiктелетiн айнымалы. Мысалы,
‘В2001’ атаулы берiлгендер файлы үшiн bf:=’B2001’. °детте файл атауы
программа бойынша Edit өрiсiне енгiзiледi: bf:=Edit1.Text, не ол үшiн
InputBox функциясы пайдаланылуы мүмкiн).
v – файлдық элемент (өрiс элементтерiнен тұратын жол).
4.2. Типтiк файл операторлары
AssignFile (f, bf). Ол bf файлын f айнымалысымен байланыстырады да
(assign – тағайындау), одан әрi f-пен жұмыс bf мәнiмен анықталған файл
жұмысына баламалы болады bf орнына файлдың толық атын (iздеудiң толық
жолын) жазу да мүмкiн. Компьютер f-тi саны белгiсiз элементтерден тұратын
bf-тiң атауы ретiнде қабылдайды. Ол мәшиненiң элементтер санын алдын ала
бiлiп алуының қажетсiздiгiне байланысты. Оған қоса, бұл тәсiл бiр программа
бойынша түрлi БФ-тердi өңдеуге мүмкiндiк бередi.
Rewrite (f) – атауы AssignFile операторында анықталған берiлгендер
файлын дискiге тиеу үшiн файлды ашу операторы (rewrite - жаңадан жазу). Ол
f үшiн дискiден арнайы орын ашып, көрсеткiштi (бастиектi) осы орынның
басына орналастырады.
Ескерту. Егер таңдап алынған БФ атауы бұрыннан сыртқы құрылғыда жазулы
БФ атауымен бiрдей болса, rewrite(f) операторын оқыған соң компьютер
алдымен оны өшiрiп тастайды. Сондықтан дискiде жазулы файлды қорғау үшiн
файлға берiлетiн атауды мұқияттықпен таңдап алу керек.
Write (f, v) – атауы AssignFile операторында f арқылы белгiленген
дискiлiк файлға БФ-тiң кезектi элементiн (v) тиеу операторы (v орнына
мәндерi файлға жазылатын үтiрлер арқылы бөлiнген айнымалылар тiзiмiн
енгiзуге де болады).
CloseFile (f) – файлды жабу (оператор БФ-тi дискiге тиеу не дискiден оқу
аяқталған кезде енгiзiледi).
Reset (f) – атауы f арқылы белгiленген файлды ашып, бастиектi осы
файлдың басына орналастырады (reset - қайта орнату).
Read (f, n : Longint) – бастиектi файлдың n+1 нөмiрлi жолының басына
орналастырады. Ол файлдың (n+1) – жолын оқу үшiн қажет.
Дискiде файл жолдары 0-ден бастап автоматты түрде ретiмен нөмiрленедi.
Жоғарғы тiзiмде 1-ден бастап нөмiрленген баған өрiс элементi ретiнде
қарастырырылған.
4.3. Файлды типтiк түрде тиеу
Delphi-де типтiк файлмен жұмысты екi тәсiл бойынша орындау мүмкiн.
Бiрiншiсiнiң дәстүрлi Паскальда қолданылатын тәсiлден көп айырмашылығы жоқ.
Кiтапта осы тәсiл пайдаланылған.
1-Мысал. Типтiк файл форматын пайдаланып, жоғарғы тiзiмдi “В2001”
атауымен дискiге тиеу керек.
1. Жаңа проект ашып, формада Button1, Button2 компоненттерiн орнату.
Button1, Button2 компоненттерiнiң Caption қасиеттерiне Жазу, Оқу
сөздерiн меншiктеу.
2. Button1 компонентiнiң Click оқиғасын өңдеуiш процедурасын құру (сандық
өрiстердi String типтi етiп сипаттауға да болады):
Procedure TForm1.Button1Click (Sender : TObject);
type st = record
a1 : string[3];
a2 : string[20];
a3 : string[5];
a4 : string[7];
end;
var f : file of st; st : bf; bf : string[8]; k : integer;
begin
bf:=InputBox(’Абайлаңыз’, ’БФ-атауы’, ’’);
AssignFile(f, bf);
Rewrite(f);
with v do
for k:=1 to 3 do
begin
a1:=InputBox(’’,’Нөмiр - ’,’’);
a2:=InputBox(’’,’Аты-жөнi - ’,’’);
a3:=InputBox(’’,’Туған жылы - ’,’’);
a4:=InputBox(’’,’Ұлты - ’,’’);
write(f,v);
end;
CloseFile(f);
end;
3. Программаны iске қосып, енгiзу терезесiнде берiлген сұрақтарға сәйкес
жауаптарды енгiзу жеткiлiктi.
4.4. Типтiк файлды оқу
Дискiде сақтаулы файлды формада орнатылған Memo терезесiне шығаруға
болады.
2-Мысал. Дискiге жазылған берiлген файлын (мысалы, “B2001”-тi) экранға
шығару керек.
Жаңа проект ашып, формаға Button2, Memo1 компоненттерiн кiрiстiру.
Button2 компонентiнiң Click оқиғасын өңдеуiш процедурасын құру:
Procedure TForm1.Button2Click (Sender : TObject);
type st = record
a1 : string[3];
a2 : string[20];
a3 : string[5];
a4 : string[7];
end;
var f : file of st; v : st; bf : string[8];
k : integer;
begin
bf:=InputBox(’’, ’БФ-атауы’, ’’);
AssignFile(f,bf);
Reset(f);
With v do
begin
for k:=1 to FileSize (f) do
read(f, v);
Memo1.Lines.Add(a1+’’+a2+’’+a3+’’+a 4);
end;
CloseFile(f);
end;
(мұндағы filesize(f) функциясы файл элементтерiнiң санын анықтайды).
Программаны iске қосу. Көрiнген енгiзу терезесiне БФ атын енгiзiп,
Button2 түймесiн шерткен кезде форманың Memo1 терезесiнде БФ көрiнедi. Оны
редакциялап шығу да мүмкiн (4.1-сурет).
4.1-сурет. Memo1 терезесiне шығарылған файл
Ескерту. Формаға Button1, Button2 компоненттерiн орнатып (4.1-сурет),
файлды жазу, файлды оқу процедураларын олардың OnClick оқиғаларын өңдеуiш
ретiнде код терезесiне енгiзiлетiн бiр программаға жазуға да болады.
4.5. Файлды мәтiндiк типтi түрде тиеу және оқу
Мәтiндiк мәлiметтердi мәтiндiк (Text) типтi файл етiп сақтаған жөн. Оның
әр жолы түрлi ұзындықты болуы да мүмкiн. Мәтiндiк файлды тиеу
программасында жол String типтi етiп сипатталады да, файл элементi түрiнде
қабылданады. Мұндай файлдарды жүктеу және дискiден оқу олардың жолдары
бойынша ретiмен орындалады. Мәтiндiк файлдың әр жолын тиеу және оқу үшiн
пайдаланатын операторлар сәй-кес - Writeln, Readln.
Мысал. Төрт студент және олардың үш пәннен алған бағалары берiлген:
Ысқақова Маржан 5, 5, 5
Мәдiходжаев Сұлтан 5, 4, 5
Имантаева Мәдина 4, 5, 5
Ахметов Марат 3, 4, 4
Жиынтықты мәтiндiк файл түрiнде қарастырып, дискiге тиеу және дискiден
оқып, экранға шығару керек.
Жаңа проект ашып, формаға Memo1, Button1, Button2 компоненттерiн орнату
және Button1-дiң оnClick оқиғасын өңдеуiш процедура құру (дискiге тиеу
процедурасы):
Procedure TForm1.Button1Click (Sender : TObject);
var f : TextFile;
bf : string[8];
s : string; 255 символдық жол
k : integer;
begin
bf:=InputBox(’’, ’Құрылатын файл аты – ’, ’’);
AssignFile(f,bf);
Rewrite(f);
for k:=1 to 4 do
begin
s:=InputBox(’’,’Кезектi жол-?’,’’);
writeln (f,s);
end;
CloseFile(f);
end;
Соңында проектiнi сақтап, iске қосу және берiлетiн сұрақтарға ретiмен
жауап беру керек.
Дискiде сақтаулы ммәтiндiк файлды экранға шығару үшiн (4.2-сурет)
жоғарғы процедура соңына Button2 компонентiнiң OnClick оқиғасын өңдеуiш
процедурасын құру жеткiлiктi:
4.2-сурет. Memo терезесiне шығарылған мәтiндiк файл
Procedure TForm1.Button2Сlick (Sender : TObject);
var f : TextFile;
bf : string[8]; файл аты
s : string; оқылатын файл жолы
begin
bf:=InputBox (’’, ’Файл аты - ?’, ’’);
AssignFile (f, bf);
try
Reset (f);
except
halt;
еnd;
while not еof (f) do
begin
readln (f, s);
Memo.Lines.Add (s);
end;
CloseFile (f);
end;
мұндағы EOF (f) - көрсеткiштiң мәтiндiк файл соңына жетуiн тексеретiн Турбо
Паскальдағы сияқты стандартты функция. Көрсеткiш файл соңына жетпесе, оның
мәнi - ±alse, жетсе - True. Процедураға файлдың (bf) дискiде бар – жоғы
try (байқап көру) кiлттiк сөзi енгiзiлген бөлiм арқылы тексерiлдi. Егер
енгiзу терезесiне енгiзiлген файл дискiде жоқ болса, ерекше жағдай
орындалып, экранға ‘Файл табылған жоқ‘ хабарламасы шығады да, программа
жұмысы тоқтап қалады. Мүндай ерекше жағдайдың орындалуы үшiн Project-
Options ( Compiler командасы берiлген кезде көрiнген 10 checking
(енгiзушығаруды тексеру) жалаушасы орнатулы болуы тиiс ((). Ол
орнатылмаса, бақылауды программа арқылы жүргiзуге болады. Мысалы,
AssignFile(f, bf);
{$I - }
Reset(f);
{$I + ]
if IOResult 0 then
ShowMessage(‘Енгiзушығару қатесi‘);
мұндағы $I нұсқауы қатенi бақылау процесiн басқарады. Егер IOResult
стандартты функциясының мәнi нөлге тең болса, программа жұмысы одан әрi
жалғасады, әйтпесе тоқтап қалады (мұндай бақылау Турбо Паскальдағы сияқты).
Memo терезесiнде көрiнген нәтижелiк мәтiндiк файлды редакциялау да
мүмкiн.
4.6. Типсiз файлдар жөнiнде
Типсiз файлдар берiлгендер байттар тiзбегi түрiнде тиеледi. Оларды блок
бойынша жүктеу, шығару үшiн пайдаланылатын операторлар – BlockRead және
BlockWrite (үндемеген кезде блок ұзындығы 128 байтқа тең. Блоктар ретiмен
тиелiп, оқылады. Фалдың кеңейтiлуi - dat).
Типсiз файлды тиеу программасына мысал:
var f : File;
b : byte;
k : Integer;
begin
AssignFile(f, ‘C:\B5.dat’);
Rewrite(f, k); b : = $41;
for k := 1 to 120 do
BlokWrite(f ,b, k);
CloseFile(f);
Программаның осы учаскесiнiң орындалу нәтижесiнде C: дискiсiне 120 ‘A’
символынан тұратын B5.dat файлы жазылып шығады (мұндағы $41 16-лық санау
жүйесiндегi ‘A’ символының коды).
Кiтапта типсiз файлмен жұмыс iстеу тәсiлдерi толық көрсетiлмеген.
4.7. ТMainMenu компонентi. Мәзiр құру
Windows қосымшалары терезелерiнiң бәрiнде де мәзiр бар. Дайындалатын
программа үшiн Delphi-де де қолдан форма терезесiне енгiзiлетiн түрлi
пункттi мәзiр құруға болады. Мысалы (4.3-сурет):
File
Open
Save
1. Формаға компонеттер панелiнiң Standard бетiнен TMainMenu (Негiзгi мәзiр)
компонентiн орнату.
2. Компоненттi екi рет шерту. Мәзiр құрылатын MainMenu терезесi көрiнедi.
3. Оның Объект инспекторы терезесiн оң түймесiн шертiп, көрiнген View
қатарының құрылымындағы Localizable (Жекелеу) қатарына жалауша орнату.
4. Form1:MainMenu1 терезесiне енгiзiлген төртбұрышты таңдау және көрiнген
қасиеттер терезесiнiң Caption қасиетiне стандартты (File командасын
енгiзiп, КҚ клавишiн басу. File мәзiр ретiнде төртбұрыш iшiне жазылып
қойылады.
Ескерту. ( (амперсенд) - “ыстық клавиш” белгiсi (мәзiр командасын
орындау үшiн мәзiрдi пайдаланбай, клавиатураның осы үшiн арналған клавишiн
басуға болады. °детте мұндай клавиштi ыстық не жылдам клавиш деп атайды).
Ол көптеген қосымшалардың мәзiр пункттерiнде астын сызу белгiсi арқылы
белгiленiп қойылған. Мәзiрде ( белгiсiнен соң бiрiншi болып жазылған әрiп
жылдам клавиш болып тағайындалады, мысалы, мәзiрлер (Copy, Cu(t түрiнде
жазылса, Сору үшiн С, Сut үшiн t клавишi жылдам клавиш болып
тағайындалғаны.
5. Көрсеткiштi мәзiр үстiне әкелiп, тышқан түймесiн басу. Мәзiр астында
төртбұрыш iшiне ашылған өрiс көрiнедi. Оны таңдап, қасиеттер терезесiнiң
Caption қасиетiне (Open (Ашу) пунктiнiң атауын енгiзу және КҚ клавишiн
басу.
Осы тәсiлмен мәзiрге (Save (Сақтау) пунктiн енгiзуге болады, т.с.с.
6. MainMenu терезесiн жабу. Мәзiр пункттерiмен қоса 4.3-суретте көрсетiлген
сияқты формаға жазылып қойылады.
3.
4. Мәзiр пункттерiн орындау үшiн бiрiнен соң бiрi басылатын екi не үш
клавиштi тағайындауға да болады. Ол үшiн қасиеттер терезесiнiң жоғарғы
өрiсiне енгiзiлген Open қатарын не құрылған мәзiрдiң Open пунктiн таңдау
керек. Пункттiң қасиеттер тiзiмi көрiнедi. ShortCut (Жылдам клавиштер)
қасиетiнiң мәндер тiзiмiнен Ctrl+O қатарын таңдаса болғаны. Сол сияқты,
Save үшiн Ctrl+S қатарын таңдау қажет. Жазылған мәзiрдiң көрiнiсi 4.4 -
суретте бейнеленген.
5.
Form1
File
Open Ctrl + O
Save Ctrl + S
6.
4.4-сурет. Мәзiрде “Ыстық” клавиштердiң көрiнiсi
4.9. TOpenDialog, TSaveDialog, TRichEdit
компоненттерi. Құрылған мәзiрдi пайдалану
TOpenDialog компонентi Windows-тың файлды ашу үшiн пайдаланатын
стандартты Файлды ашу терезесiн экранға шығаруға арналған.
TSaveDialog компонентi TOpenDialog компонентi сияқты. Оған сәйкес
процедура Файлды сақтау терезесiн шығарады.
Компоненттермен жұмыс тәсiлi: олар алдымен формаға орналастырылады (бұл
кезде автоматты түрде қажеттi қасиеттерiне мәндер меншiктеледi) да, сәйкес
программа құрылады. Алдымен программаға сұхбаттық терезе құрып, экранға
шығару үшiн Execute (Орындау) әдiсi енгiзiледi, т.с.с. (төменде құрылған
екi процедурадан тұратын программаны қараңыз).
TRichEdit (Мәтiндiк редактор) - TMemo компонентi сияқты, бiрақ, одан
мүмкiндiгi мол стандартты мәтiндiк редактор. Оның бетiне файлды ашу, сақтау
терезелерiн шығаруға болады. Мәтiн оның Lines қасиетi арқылы ашылған
String List Editor (Жолдық тiзiм редакторы) терезесiне енгiзiледi. Оның
Aligment, FirstIndent, т.б. қасиеттерiн орнатып, абзацтарын форматтап шығу
мүмкiн. Жазылған мәтiндi RTF форматында процедураға енгiзiлген
RichEdit1. Lines. SaveToFile(‘атау.rtf’);
әдiсi арқылы арқылы сақтауға болады.
Құрылған мәзiрдi пайдалану үшiн формада қосымша компоненттер
(OpenDialog1, SaveDialog1, RichEdit1) орнатып, код терезесiнде мәзiрдiң әр
пунктiн орындайтын сәйкес процедуралар жазып шығу керек. Мысалы, 4.3-
суретте бейнеленген мәзiр пункттерiн орындау тәсiлi:
1. Жаңа проект ашып, формада 4.4-суретте бейнеленген File (не Файл) мәзiрiн
орнату.
2. Windows бетiнен Формаға қосымша RichEdit1 компонентiн орнатып, оны
барынша кеңейту (Align қасиетiне alClient мәнiн меншiктеу). Оның үстiне
OpenDialog1, SaveDialog1 компоненттерiн орнатып (4.5-сурет), код
терезесiнде қажеттi процедуралар құру.
Құрылған толық модуль:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls,
Forms, Dialogs, Menus, StdCtrls, ComCtrls;
type
TForm1 = class(TForm)
MainMenu1: TMainMenu;
OpenDialog1: TOpenDialog;
SaveDialog1: TSaveDialog;
File1: TMenuItem;
Open1: TMenuItem;
Save1: TMenuItem;
RichEdit1: TRichEdit;
procedure Open1Click(Sender: TObject);
procedure Save1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.Open1Click(Sender: TObject);
var
F: TextFile;
S, s11: string;
begin
OpenDialog1.Execute;
begin
if OpenDialog1.FileName '' then begin
s11:=OpenDialog1.FileName;
AssignFile(F, s11); Reset(F);
while not eof(F) do
begin
Readln(F, S11); s:=s+s11+#13+#10
end;
RichEdit1.Text := S; CloseFile(F); end;
end;
end;
Рrocedure TForm1.Save1Click(Sender: TObject);
var F: TextFile; s, s11: string;
begin
SaveDialog1.Execute;
if SaveDialog1.FileName'' then begin
s11:=SaveDialog1.FileName;
AssignFile(F, s11); Rewrite(F);
s:=RichEdit1.text; writeln(F,s); CloseFile(F); end;
end;
4.5-сурет. Формада құрылған мәзiр, орнатылған
компоненттер
Мәзiрдi пайдаланбай, сұхбаттық терезенi формаға шығару да қиын емес.
Мысалы, формаға TOpenDialog, TButton, TMemo компоненттерiн орнатып, Файлды
ашу терезесiн Button1 компонентiнiң onClick оқиғасын өңдеу процедурасы
арқылы шығаруға болады:
procedure TForm1.Button1Click(Sender: TObject);
var f:TextFile; s, s1:string;
begin
OpenDialog1.Execute;
if OpenDialog1.FileName'' then
begin
s1:=OpenDialog1.FileName;
AssignFile(f,s1); Reset(f);
Memo1.Lines.Clear; Редакторды тазалау
while not EOF(f) do
begin
Readln(f,s); Memo1.Lines.Add(s);
end;
CloseFile(f);
end;
end;
не қысқаша:
procedure TForm1.Button1Click(Sender: TObject);
begin
with opendialog1 do
begin
if not execute then exit;
Memo1.Lines.LoadFromFile(FileName);
end
end;
Ескерту. 1. Программа үшiн TMemo орнына TRichEdit редакторын
пайдалануға болады.
2. Файлды ашу терезесiнiң файл аты өрiсiне кез келген атауды енгiзуге
болады, Файлды сақтау терезiне жоқ файлды енгiзу программа жұмысын күйретуi
мүмкiн. Сондықтан информацияны сақтау мәселесiне ерекше көңiл бөлу қажет.
4.9. TРopupMenu компонентi. Контекстi мәзiр құру
TPopupMenu компонентi тышқанның оң ... жалғасы
ПРОГРАММАСЫ
4.1. Файл. Файл типтерi
Сыртқы жадтың (дискiнiң не дискеттiң) атау берiлген облысын файл не
дискiлiк файл деп, дискiге жазылатын информацияны берiлгендер файлы (БФ)
деп атайды. БФ-ке мысал ретiнде мынадай тiзiм алуға болады:
1. Шәймерденқызы Гүлнар 1975 қазақ
2. Оралханұлы Ержан 1977 қазақ
3. Нұрғалиқызы Жәмила 1978 қазақ
(тiзiм кез келген n жолдан тұруы мүмкiн).
Тiзiмнiң әр жолында бiр адам жөнiндегi мәлiмет берiлген. Ол сандық және
мәтiндiк болатын түрлi типтi төрт мәннен тұр. Мұндай мәлiметтi берiлгендер
файлының элементi деп атайды. Элемент жол не жазу деп те аталады; жол
құрайтын мәндер өрiс элементтерi делiнедi. Яғни, тiзiмнен тұратын
берiлгендер файлы – жолдар жиынтығы, әр жол - файлдың бiр элементi.
Берiлген тiзiмде әр жол төрт өрiс элементiнен, ал файл үш элементтен және
оларға сәйкес төрт бағаннан (өрiстен) тұр. Өрiс элементтерi:
Нөмiр, Аты-жөнi, Туған жылы, Ұлты (Nomer, Fam, Tjili, Ulti).
Мұндай құрылымға жаңа өрiстердi қосу да мүмкiн, мысалы, ’үй адресi’,
’телефон нөмiрi’, т.б.
БФ дискiге әрiптен басталатын 1-8 символдан тұруы мүмкiн жеке атау
арқылы тиелуi (жүктелуi) тиiс, атаудың проект атынан бөлек болуы мiндеттi.
Ескерту. Кейде дискiлiк файл мен БФ-тi де файл деп атай бередi. Оларды
сөйлем құрылымына қарап ажырату қиын емес.
БФ-пен жүргiзiлуi мүмкiн жұмыстар:
• файлды дискiге тиеп, сақтау (қажет болса, бiр баған бойынша сорттап
тиеуге болады);
• оны экранға шығару не принтер арқылы қағазға басу;
• бiр не бiрнеше белгi бойынша нақты жолын не жолдарын таңдап, экранға
шығарып көру. Оны редакциялап, дискiге қайта тиеу;
• файлдың бiр не бiрнеше жолын алып тастау не файлға жаңа жол қосу, т.б.
Delphi-де берiлгендер файлымен тiзбектi ену тәсiлi бойынша жұмыс iстеуге
болады.
Файл үш түрде сипатталуы мүмкiн: типтiк, мәтiндiк және типсiз форматта.
Сипаттау тәсiлдерi:
атау=File of тип; типтiк
атау=TextFile; мәтiндiк
атау=File; типсiз
Мұндағы атау - тип атауы, тип - Object Pascal-дың кез келген сәйкес
типi. Мысалы, жоғарыда жазылған тiзiм үшiн берiлгендер типiн мынадай
түрлерде сипаттауға болады:
1) type st = record
nomer : char;
fam : string [25];
tjli : integer;
ulti : string [6];
end;
var f1 : file of st; v : st; типтiк
не 2) var f2 : TextFile; мәтiндiк
не 3) var f3 : file; типсiз
Көбiнесе файлды типтiк, кей жағдайларда мәтiндiк етiп сипаттайды.
Файлға жазу, файлдан оқу операторларымен таныстыру алдында мынадай
белгiлеулер енгiзейiк:
f – файлдық айнымалы (файлдық типтi айнымалы ретiнде программада
қолданылатын идентификатор (атау)).
bf – берiлгендер файлының атауы (атау меншiктелетiн айнымалы. Мысалы,
‘В2001’ атаулы берiлгендер файлы үшiн bf:=’B2001’. °детте файл атауы
программа бойынша Edit өрiсiне енгiзiледi: bf:=Edit1.Text, не ол үшiн
InputBox функциясы пайдаланылуы мүмкiн).
v – файлдық элемент (өрiс элементтерiнен тұратын жол).
4.2. Типтiк файл операторлары
AssignFile (f, bf). Ол bf файлын f айнымалысымен байланыстырады да
(assign – тағайындау), одан әрi f-пен жұмыс bf мәнiмен анықталған файл
жұмысына баламалы болады bf орнына файлдың толық атын (iздеудiң толық
жолын) жазу да мүмкiн. Компьютер f-тi саны белгiсiз элементтерден тұратын
bf-тiң атауы ретiнде қабылдайды. Ол мәшиненiң элементтер санын алдын ала
бiлiп алуының қажетсiздiгiне байланысты. Оған қоса, бұл тәсiл бiр программа
бойынша түрлi БФ-тердi өңдеуге мүмкiндiк бередi.
Rewrite (f) – атауы AssignFile операторында анықталған берiлгендер
файлын дискiге тиеу үшiн файлды ашу операторы (rewrite - жаңадан жазу). Ол
f үшiн дискiден арнайы орын ашып, көрсеткiштi (бастиектi) осы орынның
басына орналастырады.
Ескерту. Егер таңдап алынған БФ атауы бұрыннан сыртқы құрылғыда жазулы
БФ атауымен бiрдей болса, rewrite(f) операторын оқыған соң компьютер
алдымен оны өшiрiп тастайды. Сондықтан дискiде жазулы файлды қорғау үшiн
файлға берiлетiн атауды мұқияттықпен таңдап алу керек.
Write (f, v) – атауы AssignFile операторында f арқылы белгiленген
дискiлiк файлға БФ-тiң кезектi элементiн (v) тиеу операторы (v орнына
мәндерi файлға жазылатын үтiрлер арқылы бөлiнген айнымалылар тiзiмiн
енгiзуге де болады).
CloseFile (f) – файлды жабу (оператор БФ-тi дискiге тиеу не дискiден оқу
аяқталған кезде енгiзiледi).
Reset (f) – атауы f арқылы белгiленген файлды ашып, бастиектi осы
файлдың басына орналастырады (reset - қайта орнату).
Read (f, n : Longint) – бастиектi файлдың n+1 нөмiрлi жолының басына
орналастырады. Ол файлдың (n+1) – жолын оқу үшiн қажет.
Дискiде файл жолдары 0-ден бастап автоматты түрде ретiмен нөмiрленедi.
Жоғарғы тiзiмде 1-ден бастап нөмiрленген баған өрiс элементi ретiнде
қарастырырылған.
4.3. Файлды типтiк түрде тиеу
Delphi-де типтiк файлмен жұмысты екi тәсiл бойынша орындау мүмкiн.
Бiрiншiсiнiң дәстүрлi Паскальда қолданылатын тәсiлден көп айырмашылығы жоқ.
Кiтапта осы тәсiл пайдаланылған.
1-Мысал. Типтiк файл форматын пайдаланып, жоғарғы тiзiмдi “В2001”
атауымен дискiге тиеу керек.
1. Жаңа проект ашып, формада Button1, Button2 компоненттерiн орнату.
Button1, Button2 компоненттерiнiң Caption қасиеттерiне Жазу, Оқу
сөздерiн меншiктеу.
2. Button1 компонентiнiң Click оқиғасын өңдеуiш процедурасын құру (сандық
өрiстердi String типтi етiп сипаттауға да болады):
Procedure TForm1.Button1Click (Sender : TObject);
type st = record
a1 : string[3];
a2 : string[20];
a3 : string[5];
a4 : string[7];
end;
var f : file of st; st : bf; bf : string[8]; k : integer;
begin
bf:=InputBox(’Абайлаңыз’, ’БФ-атауы’, ’’);
AssignFile(f, bf);
Rewrite(f);
with v do
for k:=1 to 3 do
begin
a1:=InputBox(’’,’Нөмiр - ’,’’);
a2:=InputBox(’’,’Аты-жөнi - ’,’’);
a3:=InputBox(’’,’Туған жылы - ’,’’);
a4:=InputBox(’’,’Ұлты - ’,’’);
write(f,v);
end;
CloseFile(f);
end;
3. Программаны iске қосып, енгiзу терезесiнде берiлген сұрақтарға сәйкес
жауаптарды енгiзу жеткiлiктi.
4.4. Типтiк файлды оқу
Дискiде сақтаулы файлды формада орнатылған Memo терезесiне шығаруға
болады.
2-Мысал. Дискiге жазылған берiлген файлын (мысалы, “B2001”-тi) экранға
шығару керек.
Жаңа проект ашып, формаға Button2, Memo1 компоненттерiн кiрiстiру.
Button2 компонентiнiң Click оқиғасын өңдеуiш процедурасын құру:
Procedure TForm1.Button2Click (Sender : TObject);
type st = record
a1 : string[3];
a2 : string[20];
a3 : string[5];
a4 : string[7];
end;
var f : file of st; v : st; bf : string[8];
k : integer;
begin
bf:=InputBox(’’, ’БФ-атауы’, ’’);
AssignFile(f,bf);
Reset(f);
With v do
begin
for k:=1 to FileSize (f) do
read(f, v);
Memo1.Lines.Add(a1+’’+a2+’’+a3+’’+a 4);
end;
CloseFile(f);
end;
(мұндағы filesize(f) функциясы файл элементтерiнiң санын анықтайды).
Программаны iске қосу. Көрiнген енгiзу терезесiне БФ атын енгiзiп,
Button2 түймесiн шерткен кезде форманың Memo1 терезесiнде БФ көрiнедi. Оны
редакциялап шығу да мүмкiн (4.1-сурет).
4.1-сурет. Memo1 терезесiне шығарылған файл
Ескерту. Формаға Button1, Button2 компоненттерiн орнатып (4.1-сурет),
файлды жазу, файлды оқу процедураларын олардың OnClick оқиғаларын өңдеуiш
ретiнде код терезесiне енгiзiлетiн бiр программаға жазуға да болады.
4.5. Файлды мәтiндiк типтi түрде тиеу және оқу
Мәтiндiк мәлiметтердi мәтiндiк (Text) типтi файл етiп сақтаған жөн. Оның
әр жолы түрлi ұзындықты болуы да мүмкiн. Мәтiндiк файлды тиеу
программасында жол String типтi етiп сипатталады да, файл элементi түрiнде
қабылданады. Мұндай файлдарды жүктеу және дискiден оқу олардың жолдары
бойынша ретiмен орындалады. Мәтiндiк файлдың әр жолын тиеу және оқу үшiн
пайдаланатын операторлар сәй-кес - Writeln, Readln.
Мысал. Төрт студент және олардың үш пәннен алған бағалары берiлген:
Ысқақова Маржан 5, 5, 5
Мәдiходжаев Сұлтан 5, 4, 5
Имантаева Мәдина 4, 5, 5
Ахметов Марат 3, 4, 4
Жиынтықты мәтiндiк файл түрiнде қарастырып, дискiге тиеу және дискiден
оқып, экранға шығару керек.
Жаңа проект ашып, формаға Memo1, Button1, Button2 компоненттерiн орнату
және Button1-дiң оnClick оқиғасын өңдеуiш процедура құру (дискiге тиеу
процедурасы):
Procedure TForm1.Button1Click (Sender : TObject);
var f : TextFile;
bf : string[8];
s : string; 255 символдық жол
k : integer;
begin
bf:=InputBox(’’, ’Құрылатын файл аты – ’, ’’);
AssignFile(f,bf);
Rewrite(f);
for k:=1 to 4 do
begin
s:=InputBox(’’,’Кезектi жол-?’,’’);
writeln (f,s);
end;
CloseFile(f);
end;
Соңында проектiнi сақтап, iске қосу және берiлетiн сұрақтарға ретiмен
жауап беру керек.
Дискiде сақтаулы ммәтiндiк файлды экранға шығару үшiн (4.2-сурет)
жоғарғы процедура соңына Button2 компонентiнiң OnClick оқиғасын өңдеуiш
процедурасын құру жеткiлiктi:
4.2-сурет. Memo терезесiне шығарылған мәтiндiк файл
Procedure TForm1.Button2Сlick (Sender : TObject);
var f : TextFile;
bf : string[8]; файл аты
s : string; оқылатын файл жолы
begin
bf:=InputBox (’’, ’Файл аты - ?’, ’’);
AssignFile (f, bf);
try
Reset (f);
except
halt;
еnd;
while not еof (f) do
begin
readln (f, s);
Memo.Lines.Add (s);
end;
CloseFile (f);
end;
мұндағы EOF (f) - көрсеткiштiң мәтiндiк файл соңына жетуiн тексеретiн Турбо
Паскальдағы сияқты стандартты функция. Көрсеткiш файл соңына жетпесе, оның
мәнi - ±alse, жетсе - True. Процедураға файлдың (bf) дискiде бар – жоғы
try (байқап көру) кiлттiк сөзi енгiзiлген бөлiм арқылы тексерiлдi. Егер
енгiзу терезесiне енгiзiлген файл дискiде жоқ болса, ерекше жағдай
орындалып, экранға ‘Файл табылған жоқ‘ хабарламасы шығады да, программа
жұмысы тоқтап қалады. Мүндай ерекше жағдайдың орындалуы үшiн Project-
Options ( Compiler командасы берiлген кезде көрiнген 10 checking
(енгiзушығаруды тексеру) жалаушасы орнатулы болуы тиiс ((). Ол
орнатылмаса, бақылауды программа арқылы жүргiзуге болады. Мысалы,
AssignFile(f, bf);
{$I - }
Reset(f);
{$I + ]
if IOResult 0 then
ShowMessage(‘Енгiзушығару қатесi‘);
мұндағы $I нұсқауы қатенi бақылау процесiн басқарады. Егер IOResult
стандартты функциясының мәнi нөлге тең болса, программа жұмысы одан әрi
жалғасады, әйтпесе тоқтап қалады (мұндай бақылау Турбо Паскальдағы сияқты).
Memo терезесiнде көрiнген нәтижелiк мәтiндiк файлды редакциялау да
мүмкiн.
4.6. Типсiз файлдар жөнiнде
Типсiз файлдар берiлгендер байттар тiзбегi түрiнде тиеледi. Оларды блок
бойынша жүктеу, шығару үшiн пайдаланылатын операторлар – BlockRead және
BlockWrite (үндемеген кезде блок ұзындығы 128 байтқа тең. Блоктар ретiмен
тиелiп, оқылады. Фалдың кеңейтiлуi - dat).
Типсiз файлды тиеу программасына мысал:
var f : File;
b : byte;
k : Integer;
begin
AssignFile(f, ‘C:\B5.dat’);
Rewrite(f, k); b : = $41;
for k := 1 to 120 do
BlokWrite(f ,b, k);
CloseFile(f);
Программаның осы учаскесiнiң орындалу нәтижесiнде C: дискiсiне 120 ‘A’
символынан тұратын B5.dat файлы жазылып шығады (мұндағы $41 16-лық санау
жүйесiндегi ‘A’ символының коды).
Кiтапта типсiз файлмен жұмыс iстеу тәсiлдерi толық көрсетiлмеген.
4.7. ТMainMenu компонентi. Мәзiр құру
Windows қосымшалары терезелерiнiң бәрiнде де мәзiр бар. Дайындалатын
программа үшiн Delphi-де де қолдан форма терезесiне енгiзiлетiн түрлi
пункттi мәзiр құруға болады. Мысалы (4.3-сурет):
File
Open
Save
1. Формаға компонеттер панелiнiң Standard бетiнен TMainMenu (Негiзгi мәзiр)
компонентiн орнату.
2. Компоненттi екi рет шерту. Мәзiр құрылатын MainMenu терезесi көрiнедi.
3. Оның Объект инспекторы терезесiн оң түймесiн шертiп, көрiнген View
қатарының құрылымындағы Localizable (Жекелеу) қатарына жалауша орнату.
4. Form1:MainMenu1 терезесiне енгiзiлген төртбұрышты таңдау және көрiнген
қасиеттер терезесiнiң Caption қасиетiне стандартты (File командасын
енгiзiп, КҚ клавишiн басу. File мәзiр ретiнде төртбұрыш iшiне жазылып
қойылады.
Ескерту. ( (амперсенд) - “ыстық клавиш” белгiсi (мәзiр командасын
орындау үшiн мәзiрдi пайдаланбай, клавиатураның осы үшiн арналған клавишiн
басуға болады. °детте мұндай клавиштi ыстық не жылдам клавиш деп атайды).
Ол көптеген қосымшалардың мәзiр пункттерiнде астын сызу белгiсi арқылы
белгiленiп қойылған. Мәзiрде ( белгiсiнен соң бiрiншi болып жазылған әрiп
жылдам клавиш болып тағайындалады, мысалы, мәзiрлер (Copy, Cu(t түрiнде
жазылса, Сору үшiн С, Сut үшiн t клавишi жылдам клавиш болып
тағайындалғаны.
5. Көрсеткiштi мәзiр үстiне әкелiп, тышқан түймесiн басу. Мәзiр астында
төртбұрыш iшiне ашылған өрiс көрiнедi. Оны таңдап, қасиеттер терезесiнiң
Caption қасиетiне (Open (Ашу) пунктiнiң атауын енгiзу және КҚ клавишiн
басу.
Осы тәсiлмен мәзiрге (Save (Сақтау) пунктiн енгiзуге болады, т.с.с.
6. MainMenu терезесiн жабу. Мәзiр пункттерiмен қоса 4.3-суретте көрсетiлген
сияқты формаға жазылып қойылады.
3.
4. Мәзiр пункттерiн орындау үшiн бiрiнен соң бiрi басылатын екi не үш
клавиштi тағайындауға да болады. Ол үшiн қасиеттер терезесiнiң жоғарғы
өрiсiне енгiзiлген Open қатарын не құрылған мәзiрдiң Open пунктiн таңдау
керек. Пункттiң қасиеттер тiзiмi көрiнедi. ShortCut (Жылдам клавиштер)
қасиетiнiң мәндер тiзiмiнен Ctrl+O қатарын таңдаса болғаны. Сол сияқты,
Save үшiн Ctrl+S қатарын таңдау қажет. Жазылған мәзiрдiң көрiнiсi 4.4 -
суретте бейнеленген.
5.
Form1
File
Open Ctrl + O
Save Ctrl + S
6.
4.4-сурет. Мәзiрде “Ыстық” клавиштердiң көрiнiсi
4.9. TOpenDialog, TSaveDialog, TRichEdit
компоненттерi. Құрылған мәзiрдi пайдалану
TOpenDialog компонентi Windows-тың файлды ашу үшiн пайдаланатын
стандартты Файлды ашу терезесiн экранға шығаруға арналған.
TSaveDialog компонентi TOpenDialog компонентi сияқты. Оған сәйкес
процедура Файлды сақтау терезесiн шығарады.
Компоненттермен жұмыс тәсiлi: олар алдымен формаға орналастырылады (бұл
кезде автоматты түрде қажеттi қасиеттерiне мәндер меншiктеледi) да, сәйкес
программа құрылады. Алдымен программаға сұхбаттық терезе құрып, экранға
шығару үшiн Execute (Орындау) әдiсi енгiзiледi, т.с.с. (төменде құрылған
екi процедурадан тұратын программаны қараңыз).
TRichEdit (Мәтiндiк редактор) - TMemo компонентi сияқты, бiрақ, одан
мүмкiндiгi мол стандартты мәтiндiк редактор. Оның бетiне файлды ашу, сақтау
терезелерiн шығаруға болады. Мәтiн оның Lines қасиетi арқылы ашылған
String List Editor (Жолдық тiзiм редакторы) терезесiне енгiзiледi. Оның
Aligment, FirstIndent, т.б. қасиеттерiн орнатып, абзацтарын форматтап шығу
мүмкiн. Жазылған мәтiндi RTF форматында процедураға енгiзiлген
RichEdit1. Lines. SaveToFile(‘атау.rtf’);
әдiсi арқылы арқылы сақтауға болады.
Құрылған мәзiрдi пайдалану үшiн формада қосымша компоненттер
(OpenDialog1, SaveDialog1, RichEdit1) орнатып, код терезесiнде мәзiрдiң әр
пунктiн орындайтын сәйкес процедуралар жазып шығу керек. Мысалы, 4.3-
суретте бейнеленген мәзiр пункттерiн орындау тәсiлi:
1. Жаңа проект ашып, формада 4.4-суретте бейнеленген File (не Файл) мәзiрiн
орнату.
2. Windows бетiнен Формаға қосымша RichEdit1 компонентiн орнатып, оны
барынша кеңейту (Align қасиетiне alClient мәнiн меншiктеу). Оның үстiне
OpenDialog1, SaveDialog1 компоненттерiн орнатып (4.5-сурет), код
терезесiнде қажеттi процедуралар құру.
Құрылған толық модуль:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls,
Forms, Dialogs, Menus, StdCtrls, ComCtrls;
type
TForm1 = class(TForm)
MainMenu1: TMainMenu;
OpenDialog1: TOpenDialog;
SaveDialog1: TSaveDialog;
File1: TMenuItem;
Open1: TMenuItem;
Save1: TMenuItem;
RichEdit1: TRichEdit;
procedure Open1Click(Sender: TObject);
procedure Save1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.Open1Click(Sender: TObject);
var
F: TextFile;
S, s11: string;
begin
OpenDialog1.Execute;
begin
if OpenDialog1.FileName '' then begin
s11:=OpenDialog1.FileName;
AssignFile(F, s11); Reset(F);
while not eof(F) do
begin
Readln(F, S11); s:=s+s11+#13+#10
end;
RichEdit1.Text := S; CloseFile(F); end;
end;
end;
Рrocedure TForm1.Save1Click(Sender: TObject);
var F: TextFile; s, s11: string;
begin
SaveDialog1.Execute;
if SaveDialog1.FileName'' then begin
s11:=SaveDialog1.FileName;
AssignFile(F, s11); Rewrite(F);
s:=RichEdit1.text; writeln(F,s); CloseFile(F); end;
end;
4.5-сурет. Формада құрылған мәзiр, орнатылған
компоненттер
Мәзiрдi пайдаланбай, сұхбаттық терезенi формаға шығару да қиын емес.
Мысалы, формаға TOpenDialog, TButton, TMemo компоненттерiн орнатып, Файлды
ашу терезесiн Button1 компонентiнiң onClick оқиғасын өңдеу процедурасы
арқылы шығаруға болады:
procedure TForm1.Button1Click(Sender: TObject);
var f:TextFile; s, s1:string;
begin
OpenDialog1.Execute;
if OpenDialog1.FileName'' then
begin
s1:=OpenDialog1.FileName;
AssignFile(f,s1); Reset(f);
Memo1.Lines.Clear; Редакторды тазалау
while not EOF(f) do
begin
Readln(f,s); Memo1.Lines.Add(s);
end;
CloseFile(f);
end;
end;
не қысқаша:
procedure TForm1.Button1Click(Sender: TObject);
begin
with opendialog1 do
begin
if not execute then exit;
Memo1.Lines.LoadFromFile(FileName);
end
end;
Ескерту. 1. Программа үшiн TMemo орнына TRichEdit редакторын
пайдалануға болады.
2. Файлды ашу терезесiнiң файл аты өрiсiне кез келген атауды енгiзуге
болады, Файлды сақтау терезiне жоқ файлды енгiзу программа жұмысын күйретуi
мүмкiн. Сондықтан информацияны сақтау мәселесiне ерекше көңiл бөлу қажет.
4.9. TРopupMenu компонентi. Контекстi мәзiр құру
TPopupMenu компонентi тышқанның оң ... жалғасы
Ұқсас жұмыстар
Пәндер
- Іс жүргізу
- Автоматтандыру, Техника
- Алғашқы әскери дайындық
- Астрономия
- Ауыл шаруашылығы
- Банк ісі
- Бизнесті бағалау
- Биология
- Бухгалтерлік іс
- Валеология
- Ветеринария
- География
- Геология, Геофизика, Геодезия
- Дін
- Ет, сүт, шарап өнімдері
- Жалпы тарих
- Жер кадастрі, Жылжымайтын мүлік
- Журналистика
- Информатика
- Кеден ісі
- Маркетинг
- Математика, Геометрия
- Медицина
- Мемлекеттік басқару
- Менеджмент
- Мұнай, Газ
- Мұрағат ісі
- Мәдениеттану
- ОБЖ (Основы безопасности жизнедеятельности)
- Педагогика
- Полиграфия
- Психология
- Салық
- Саясаттану
- Сақтандыру
- Сертификаттау, стандарттау
- Социология, Демография
- Спорт
- Статистика
- Тілтану, Филология
- Тарихи тұлғалар
- Тау-кен ісі
- Транспорт
- Туризм
- Физика
- Философия
- Халықаралық қатынастар
- Химия
- Экология, Қоршаған ортаны қорғау
- Экономика
- Экономикалық география
- Электротехника
- Қазақстан тарихы
- Қаржы
- Құрылыс
- Құқық, Криминалистика
- Әдебиет
- Өнер, музыка
- Өнеркәсіп, Өндіріс
Қазақ тілінде жазылған рефераттар, курстық жұмыстар, дипломдық жұмыстар бойынша біздің қор #1 болып табылады.
Ақпарат
Қосымша
Email: info@stud.kz