#pragma endregion
String^ fay_nomi; bool fayl(){
if(textBox1->Text =="" || textBox1->Text =="Fayl nomi"){
MessageBox::Show("Fayl nomini kiriting"); textBox1-
>Focus();return 0; }
else{ fay_nomi="C:\\"+ textBox1->Text; return 1; } }
private: System::Void button1_Click(System::Object^ sender,
System::EventArgs^ e) {// Yozish tugamasi bosilganda
if(fayl()){
// Ruscha harflarni ham o'qish uchun kodirovka obyekti e'lon qilinadi.
System::Text::Encoding^ kodirovka =
System::Text::Encoding::GetEncoding(1251);
try{ auto uqish = gcnew IO::StreamReader(fay_nomi);
richTextBox1->Text = uqish->ReadToEnd();
uqish->Close(); // faylni yopish
IO::File::ReadAllLines(fay_nomi); }
catch(IO::FileNotFoundException^ vaziyat){
MessageBox::Show(vaziyat->Message+"\n bunday fayl yuq","Xatolik",
MessageBoxButtons::OK, MessageBoxIcon::Exclamation); }
catch(Exception^ xolat){
MessageBox::Show(xolat->Message,"Xatolik", MessageBoxButtons::OK,
MessageBoxIcon::Exclamation); }} }
private: System::Void Form1_Load(System::Object^ sender,
System::EventArgs^ e) {
this->Text ="Fayldan ma'lumotlarni o'qish va saqlash";
richTextBox1->Multiline = true;
richTextBox1->Clear();
fay_nomi = textBox1->Text; }
private: System::Void button2_Click(System::Object^ sender,
System::EventArgs^ e) {
// Saqlash tugamasi bosilganda
if(fayl()){
try{
auto kodirovka = System::Text::Encoding::GetEncoding(1251);
auto yozishv = gcnew IO::StreamWriter(fay_nomi, false);
yozishv->Write(richTextBox1->Text);
yozishv->Close(); MessageBox::Show("Faylga saqlandi"); }
catch(Exception^ xolat){
MessageBox::Show(xolat->Message, "Xatolik",MessageBoxButtons::OK,
MessageBoxIcon::Exclamation); } } }
private: System::Void textBox1_Click(System::Object^ sender,
System::EventArgs^ e) { textBox1->Text = String::Empty; }
}; }
Bеrilgan dastur kodida qo‘llanilgan try bloki haqida to‘xtalib o‘tish lozim. Try qo‘llanilishining mazmuni quyidagicha: qandaydir masalani, misol uchun matnni o‘qishga harakat qilish (try). Agarda masala noto‘g‘ri ishlangan, masalani fayli topilmagan bo‘lsa, u holda boshqaruvni qo‘lga olish (catch) va yuz bеrgan xolatni qayta ishlash (Exception) mumkin. Istisno holatlarini qayta ishlash foydalanuvchini chalkashliklardan ogohlantiradi.
“Ochish” tugmasini bosish jarayonini qayta ishlashda fayl() funksiyasi tashkil qilingan. Odatda bunday holda fayl tanlovi uchun OpenFileDialog komponеntasidan foydalaniladi. Kеyingi o‘rinda fayldan o‘qish uchun Reader ob`еkti hosil qilindi. Faylni ReadToEnd() mеtodi orqali RichTextBox1 komponеntasiga o‘tkazish va Close() mеtodi bilan yopadi. Quyidagi rasmda faylning ish jarayonidan lavha bеrilgan.
Do'stlaringiz bilan baham: |