Информатика


  Bеrilgаnlаrni fаyllаrdа sаqlаsh



Download 7,86 Mb.
Pdf ko'rish
bet295/485
Sana11.07.2021
Hajmi7,86 Mb.
#115730
1   ...   291   292   293   294   295   296   297   298   ...   485
Bog'liq
informatika

6.7.  Bеrilgаnlаrni fаyllаrdа sаqlаsh. 



    Muhim  so`zlar:    LoadFromFile,  SaveFromFile,  TMemo,  TStringList, 



TlistBox, TComboBox, TRichEdit, delete, insert, add, count, TFileStream. 



        Bilib  olasiz:  Fayllar  bilan  ishlash,  ma`lumot  o`qish,  yozish,  qo`shish, 



o`chirish,  LoadFromFile,  SaveFromFile  protseduralar  bilan  ishlash,    TMemo, 

TStringList,  TlistBox,  TComboBox,  TRichEdit  elementlarda  matnlarni    yozish, 

qo`shish, o`chirish qulayliklari, TFileStream sinfi bilan tanishish. 

Juda  ko`p  visual  elementlar  va  ba`zi  sinflar  fayllar  bilan  ishlash 

imkoniyatiga  egadir.  Asosan  fayllar  bilan  ishlaganda  quyidagi  ikkita  visual 

funksiyalardan foydalanamiz  

LoadFromFile("Fayl nomi"); 

Faylni o`qish 

SaveToFile("Fayl nomi "); 

Faylni saqlash 

Bu funksiyalar matnli fayllar bilan ishlash uchun qulaydir. Masalan,  

 

6.7-listing.Faylni yuklash va saqlash.  



TMemo elementi yordamida faylni yuklash va saqlash. 

Memo1->Lines->Clear(); 

Memo1->Lines->LoadFromFile("a.txt"); 

...... 


Memo1->Lines->SaveToFile("a.txt"); 

...... 


TStringList elementi yordamida faylni yuklash va saqlash. 

TStringList * ptStrintList; 

ptStrintList->Clear(); 

ptStrintList=new TStringList(); 




 

317 


6.7-listing.Faylni yuklash va saqlash.  

ptStrintList->LoadFromFile("a.txt"); 

...... 

ptStrintList->SaveToFile("a.txt"); 

...... 

ptStrintList->Free(); 

TListBox elementi yordamida faylni yuklash va saqlash. 

ListBox1->Items->Clear(); 

ListBox1->Items->LoadFromFile("a.txt"); 

...... 


ListBox1->Items->SaveToFile("a.txt"); 

TComboBox elementi yordamida faylni yuklash va saqlash. 

ComboBox1->Items->Clear(); 

ComboBox1->Items->LoadFromFile("a.txt"); 

...... 

ComboBox1->Items->SaveToFile("a.txt"); 

TRichEdit elementi yordamida faylni yuklash va saqlash. 

RichEdit1->Lines->Clear(); 

RichEdit1->Lines->LoadFromFile("a.txt"); 

..... 


RichEdit1->Lines->SaveToFile("a.txt"); 

 

Bu  elementlardan  tashqari  C++  Builder  da  bir  nechta  elementlar  borki, 



ulardan ham fayllarni yuklash va saqlashda foydalanish mumkin. 

 

SaveToFile funksiyasidan foydalanilganda fayl bo`lmasa, funksiya bu faylni 



darhol  yaratib  beradi.    Barcha  fayllar  matnli  fayl  bo`lib  yaratiladi.  Faqatgina 

TRichEdit  elementi  yordamida  *.rtf  kengaytmali  fayl  bilan  ishlash  mumkin. 

Shuning uchun mantiqiy yozish maqsadga muvofiqdir.  

RichEdit1->Lines->SaveToFile("a.rtf"); 




 

318 


 

Matnli  fayllar  bilan  ishlaganda  foydalaniladigan  funksiya  va  ularning 

xossalari qatorning sonini hisoblaydi. Masalan, 

Memo1->Lines->Count; 

RichEdit1->Lines->Count; 

ptStrintList->Count; 

ListBox1->Items->Count; 

ComboBox1->Items->Count; 

 

Barcha  elementlar  qator  qo`shish,  o`chirish  imkoniyatlarini  bajaradi. 



Masalan,  elementning  ikkinchi  qatorini  o`chirib,  o`rniga  yangi  matnni  qo`yish  va 

matn oxirida qo`shishni olaylik.  

 

6.8-listing. Matn qo`shish 



AnsiString vasS="Yes"; 

TMemo elementi 

if(Memo1->Lines->Count >= 2) { 

   Memo1->Lines->Delete(1); 

   Memo1->Lines->Insert(1,vasS); } 

Memo1->Lines->Add(vasS);  

TRichEdit elementi 

if(RichEdit1->Lines->Count >= 2) { 

  RichEdit1->Lines->Delete(1); 

  RichEdit1->Lines->Insert(1,vasS); } 

RichEdit1->Lines->Add(vasS); 

TStrintList elementi 

if(ptStrintList->Count >= 2) { 

  ptStrintList->Delete(1); 

  ptStrintList->Insert(1,vasS); } 

ptStrintList->Add(vasS);  




 

319 


6.8-listing. Matn qo`shish 

TListBox elementi 

if(ListBox1->Items->Count >= 2) { 

 ListBox1->Items->Delete(1); 

 ListBox1->Items->Insert(1,vasS); } 

ListBox1->Items->Add(vasS); 

TComboBox elementi 

if(ComboBox1->Items->Count >= 2) { 

 ComboBox1->Items->Delete(1); 

 ComboBox1->Items->Insert(1,vasS); } 

ComboBox1->Items->Add(vasS); 

 

Matnni saqlovchi qator soni bo`yicha ham saralash mumkin. Masalan, 



AnsiString vasS; 

vasS=Memo1->Lines->Strings[n]; 

vasS=RichEdit1->Lines->Strings[n]; 

vasS=ptStrintList->Strings[n]; 

vasS=ListBox1->Items->Strings[n]; 

vasS=ComboBox1->Items->Strings[n]; 

 

Keltirilgan  elementlar  va  ularning  xossalari  matnli  fayllar  bilan  ishlash 



imkoniyatini  yaratib  beradi.  Eng  ko`p  ishlatiladigan  elementlarga  TMemo 

TrichEdit va  sinflardan TStringList bilan ishlash tavsiya etiladi.  

 

TFileStream sinfi ham borki, u yordamida matnli fayllar bilan ishlashda juda 



ko`p  imkoniyatlar  bor.  Masalan,  TFileStream  sinfida  matnli  fayl  bilan  ishlash 

ancha qulayliklarni beradigan listingni keltiramiz.   

6.9-listing 

//yangi oqim yaratamiz va unga faylni o`qish va yozish uchun yuklaymiz. 

 TFileStream  * tfile=new TFileStream("b.txt",fmOpenReadWrite); 

 //kursorni (0,0) ga  joylashtiramiz. 




 

320 


6.9-listing 

 tfile->Seek(0,0); 

 //bufferni tanlash. 

 char *vchrgBuf; 

 //buffer uchun xotira olinadi. 

 if ((vchrgBuf = (char *) malloc(tfile->Size)) == NULL)  { 

  // buffer uchun olingan xotiraning mavjud emasligi haqidagi xabarni yozish  

// mumkin.  

  return;  } 

 //buferdan axborotni o`qiymiz. 

 tfile->Read(vchrgBuf,tfile->Size); 

 // bufferda axborotni o`zgaruvchi o`qib olamiz. 

 AnsiString vasS=vchrgBuf; 

 //har ehtimolga qarshi 

 vasS.SetLength(tfile->Size); 

 //xotirani tozalash 

 free(vchrgBuf); 

 //oqimni tozalash 

 tfile->Size=0; 

 // TMemo elementiga axborotni ko`rish uchun yozamiz 

//Memo1->Lines->Clear(); 

 Memo1->Lines->Add(vasS); 

 //axborotni o`zgartirmiz 

 if(Memo1->Lines->Count >= 2)  { 

  Memo1->Lines->Delete(1); 

  String vasS1="Salom Buxoro !!!"; 

  Memo1->Lines->Insert(1,vasS1);  } 

 //AnsiString ga TMemo ning ma`lumotini olamiz 




 

321 


6.9-listing 

 vasS=Memo1->Lines->GetText(); 

 // buffer uchun xotira olinadi. 

 if ((vchrgBuf = (char *) malloc(vasS.Length())) == NULL)  { 

  //  // buffer uchun olingan xotiraning mavjud emasligi haqidagi xabarni yozish  

// mumkin.  

  return;  } 

 //matnni buferga olish. 

 vchrgBuf=vasS.c_str(); 

 tfile->Write(vchrgBuf,vasS.Length()); 

 //oqimni tozalaymiz 

 tfile->Free(); 

 //xotirani tozalaymiz. 

 free(vchrgBuf); 

 

Yuqorida  keltirilgan  imkoniyatlar  C++  Builderda  matnli  fayllarga 



ma`lumotlarni  yozish,  o`qish,  o`zgartirish  bilan  ishlash  juda  ko`p  qulayliklarni 

yaratib  beradi.  Bundan  tashqari  C++  Builderda  tipli  fayllari  bilan  ham  ishlash 

mumkin. 




Download 7,86 Mb.

Do'stlaringiz bilan baham:
1   ...   291   292   293   294   295   296   297   298   ...   485




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

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish