Щозирда инсоният фаолиятининг барча жабщаларига шахсий электрон щисоблаш машиналари (шэщм) шахдам =адамлар билан кириб бормо=д


if IOResult 0 // ochishdagi xatolik then



Yüklə 0,75 Mb.
səhifə24/36
tarix22.12.2023
ölçüsü0,75 Mb.
#153953
1   ...   20   21   22   23   24   25   26   27   ...   36
DELFI

if IOResult<> 0 // ochishdagi xatolik
then Rewrite(f); // yozish uchun ochish
1.7. Faylni yopish
Ishni yakunlanishidan oldin barcha ochiq fayllar yopilishi kerak. Buni Close protsedurasi amalga oshiradi. Close protsedurasi bitta parametrga ega, ya’ni faylli o’zgaruvchi nomiga. Protsedurani qo’llashga misol:
Close(f)
1.8. Dasturga misollar
Navbatdagi dastur oddiy ma’lumotlar bazasini ifodalaydi. Uning har ishga yuklanishida ekranda muloqot oyna hosil bo’ladi (4.5-rasm). Bu oynada foydalanuvchi sana va havo temperaturasini kiritishi mumkin.

4.5-rasm.
Sana Edit1 maydoniga, temperatura esa Edit maydoniga kiritiladi. Dastur matni 4.3-listingda keltirilgan.
4.3-listing.
unit pogoda_;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit; // kun
Edit2: TEdit; // temperatura
Button1: TButton; // Qo'shish tugmasi
Label1: TLabel;
Label2: TLabel;

procedure FormActivate(Sender: TObject);


procedure Button1Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
const
DBNAME = 'ob_havo.db';
var
db: TextFile; // ma'lumotlar bazasi fayli
procedure TForm1.FormActivate(Sender: TObject);
begin
AssignFile(db, DBNAME);
{$I-}
Append(db);
if IOResult = 0
then
begin
Edit1.Text:= DateToStr(Date); // Joriy kunni olish
Edit2.SetFocus; // kursorni Edit2 ga o'rnatish
end
else
begin
Rewrite(db);
if IOResult <> 0 then
begin
// kiritish oynasi va tugmasini ruxsat etilmagan
// holatga qo'yish
Edit1.Enabled := False;
Edit2.Enabled := False;
Button1.Enabled := False;
ShowMessage('Yaratishdagi xatolik '+DBNAME);
end;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
if (Length(edit1.text)=0) or (Length(edit2.text)=0)
then ShowMessage('Ma`lumotlarni kiritishda xatolik.'
+#13+'Barcha maydonlar to`ldirilishi shart.')
else writeln(db, edit1.text,' ',edit2.text);
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
CloseFile(db); // faylni yopish
end;
end.
Ma’lumotlar bazasi faylini onActivate hodisasini qayta ishlovchi FormActivate protsedurasi tashkil etadi. OnActivate hodilsasi forma aktivlashishi bilan sodir bo’ladi, shuninh uchun ilova formasi aktivlashganda protsedura avtomatik tarzda ishga tushadi. Agar faylni ochish amali muvoffaqiyatli yakunlansa, u holda Edit1 maydonida joriy sana hosil bo’ladi. Joriy sana haqidagi ma’lumotni Date funksiyasi qaytaradi. Date funksiyasi qaytaruvchi qiymatni (qiymat tipi Double) Edit1 maydoniga chiqarish uchun DateToStr sanani satrli tipga aylantiruvchi funksiyadan foydalaniladi. Edit1 maydoniga sana yozilganidan keyin SetFocus uslubi bilan temperaturani kiritish maydonida kursor o’rnatiladi.
Agar faylni ochish yoki yangi fayl yaratish jarayonida hatolik yuz bersa, u holda Qo’shish tugmasi ruxsat etilmagan holatga qo’yiladi va bu haqda ma’lumot chiqariladi.
TForm1.Button1Click protsedurasi (OnClick hodisasini qayta ishlovchi protsedura) Qo’shish tugmasi (Button1) bosilishi bilan ishga tushadi. Natijada kiritilgan ma’lumotlar ma’lumotlar bazasi - ob_havo.db fayliga yoziladi. ma’lumot faylga yozilishidan oldin dastur formaning barcha maydonlari to’ldirilganligini tekshiradi, agar to’ldirilmagan bo’lsa ekranda ma’lumot hosil bo’ladi.
Protsedura ishi natijasida joriy sana (kun, oy, yil) va temperatura ob_havo.db faylining oxirida yoziladi.
Ushbu dasturda Write emas Writeln buyrug’idan foydalanildi. Chunki kiritilayotgan har kunlik ma’lumot yangi satrdan joy oladi.
E’tibor bering, writeln buyrug’ining chiquvchi qiymatlari uchta elementdan tashkil topgan. Faylga sana kiritilgandan so’ng bo’sh joy belgisi qo’yiladi. Undan keyin temperatura yoziladi.
Ma’lumotlar bazasini onClose hodisasini qayta ishlovchi Tform1.Formclose protsedurasi ilova formasi yopilayotganda berkitadi.
Dasturni bir necha marta ishga tushirilganidan keyin ob_havo.db fayli quyidagicha ko’rinishga ega bo’lishi mumkin:
9.05.2001 10 10.05.2001 12 11.05.2001 10 12.05.2001 7

Yüklə 0,75 Mb.

Dostları ilə paylaş:
1   ...   20   21   22   23   24   25   26   27   ...   36




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©genderi.org 2024
rəhbərliyinə müraciət

    Ana səhifə