Fisiere text

 

In Borland C++ Buider, putem lucra cu fisiere text, asa cum am fost obisnuiti in Borland C++ 3.0.

 

Pentru ale utliza trebuie sa includem, in fisierul care contine functiile utilizatorului fisierul antet fstream.h 

 #include<fstream.h>

 

Numele fisierului nu este de tip AnsiString ,ci este sir de caractere , ca in Borland C++ 3.0.Dar aceasta nu ridica nici o problema intrucat clasa  AnsiString are o metoda care returneaza un pointer(char *) catre sirul de caractere.

char *  c_str();

 

Spre exemplu daca variabila s este de tip AnsiString :

AnsiString s= "fisier.txt" ;

char * numef;

Atunci  se realizeaza atribuirea :

numef=s. c_str();

fstream f ;

f.open(numef,ios ::in) ;  //deschide fisierul numef pentru citire

 

Un exemplu de utilizare a cestei metode este cel din aplicatia urmatoare :

 

q       Aplicatia 1. Sa se creeeze un fisier text cu numere aleatoare.Utilizatorul va introduce numele fisierului , numarul de numere generate si valoare maxima a numerelor care pot fi generate

 

void __fastcall TForm1::Button1Click(TObject *Sender)

{ AnsiString s=Edit1->Text;

char *nf;

nf=s.c_str();

fstream f;

f.open(nf,ios::out);

int x,y;

x= StrToInt(Edit2->Text);

y= StrToInt(Edit3->Text);

randomize();

int i,z;

for(i=1;i<=x;i++)

    {z=random(y)+1;

    f<<z<<endl;

    }

f.close();}

 

 

 

q       Pentru fisierul text creat in programul anterior se cere sa se afiseze valoarea maxima memeorata. Se va adauga in formular un nou buton  (Button2)  si o eticheta (Label4)  in care se va afisa rezultatul

 

void __fastcall TForm1::Button2Click(TObject *Sender)

{

    fstream f(Edit1->Text.c_str(),ios::in);

    int i,Max,valoare;

    if ( f )

      {

         f>>Max;

         while(f>>valoare)

              if(valoare>Max)

                   Max=valoare;

         f.close();

         Label4->Caption=IntToStr(Max);

       }

      else

         ShowMessage("Fisierul nu exista");

  }

 

Probleme propuse:

1. Sa se genereze un formular in care va permite:

(operatia de adaugare)  . O solutie

(operatia de cautare). O solutie