[ tarzan063 @ 17.08.2005. 21:08 ] @
Interesuje me vise stvari.
• Kako bih moga napraviti mesige box tipa:
Warning! "Uneti broj postoji u bazi", sa dugmetom OK i/ili CANCEL
i sta msg box vraca ako se stisne OK ili CANCEL.

• Kako mogu da upisem neki niz (bilo kog tipa) u binarni fajl? A kako da is;itam?



Iteresuju me primeri koda, a ako neko zna i neki dobar link.


Unapred se zahvaljuljem!
[ Buffy @ 18.08.2005. 16:39 ] @
1)
Code:

MessageBox(NULL,"Uneti broj postoji u bazi!","Warning!",MB_ICONINFORMATION | MB_OKCANCEL)

Ako pritisnes OK funkcija vraca 1,ako Cancel funkcija vraca 2.

2)
Code:

#include <fstream>
#include <iostream>
using namespace std;

void pisi();
void citaj();

class klasa
{
public:
    int a;
    float b;
    char c;
};

int main()
{
    pisi();
    citaj();
    system("pause");
    return 0;   
}

void pisi()
{
    ofstream fout("fajl.txt",ios::binary);
    klasa kl;
    kl.a=100;
    kl.b=1.896;
    kl.c='A';
    fout.write((char*)&kl,sizeof(klasa));
    fout.close();
}

void citaj()
{
    ifstream fin("fajl.txt",ios::binary);
    klasa kl;
    fin.read((char*)&kl,sizeof(klasa));
    cout<<"integer: "<<kl.a<<endl;
    cout<<"float: "<<kl.b<<endl;
    cout<<"char "<<kl.c<<endl;
    fin.close();
}
;
Za upisivanje podataka binarno u datoteku najvazniji je da u konstruktoru stavis flag ios::binary.Onda mozes koristiti write i read metode.
Sa nizovima radis istu stvar kao sa objektima neke klase.Npr:
[code
int a[]{1,100,50,49};
fout.write((char*)&a,sizeof(a));
[/code]
Eto, nadam se da je pomoglo!
Pozdrav
[ itf @ 18.08.2005. 19:51 ] @
Kod MessageBox-a vracaju se sljedece vriednosti:

IDOK, IDNO, IDYES itd... Npr.:

Code:
if((Application->MessageBox("Da ili Ne?", "Ovo je naslov", MB_YESNO|MB_ICONQUESTION))==IDYES){
    Application->MessageBox("Odabrali ste YES", "Odabir", MB_OK|MB_ICONINFORMATION);
else
    Application->MessageBox("Odabrali ste NO", "Odabir", MB_OK|MB_ICONINFORMATION);
}


Binarno citanje i pisanje mozes izvesti jednostavno i pomocu funcija
fread i fwrite. Imas dobre primjere u Help-u.
[ tarzan063 @ 25.08.2005. 00:20 ] @
Citat:
Buffy: 1)
Code:

MessageBox(NULL,"Uneti broj postoji u bazi!","Warning!",MB_ICONINFORMATION | MB_OKCANCEL)

Ako pritisnes OK funkcija vraca 1,ako Cancel funkcija vraca 2.

2)
Code:

#include <fstream>
#include <iostream>
using namespace std;

void pisi();
void citaj();

class klasa
{
public:
    int a;
    float b;
    char c;
};

int main()
{
    pisi();
    citaj();
    system("pause");
    return 0;   
}

void pisi()
{
    ofstream fout("fajl.txt",ios::binary);
    klasa kl;
    kl.a=100;
    kl.b=1.896;
    kl.c='A';
    fout.write((char*)&kl,sizeof(klasa));
    fout.close();
}

void citaj()
{
    ifstream fin("fajl.txt",ios::binary);
    klasa kl;
    fin.read((char*)&kl,sizeof(klasa));
    cout<<"integer: "<<kl.a<<endl;
    cout<<"float: "<<kl.b<<endl;
    cout<<"char "<<kl.c<<endl;
    fin.close();
}
;
Za upisivanje podataka binarno u datoteku najvazniji je da u konstruktoru stavis flag ios::binary.Onda mozes koristiti write i read metode.
Sa nizovima radis istu stvar kao sa objektima neke klase.Npr:
[code
int a[]{1,100,50,49};
fout.write((char*)&a,sizeof(a));
[/code]
Eto, nadam se da je pomoglo!
Pozdrav


Nikako da snimim i isctitam. Mozda da pitam direktno. Imam definisano sledece:
Code:

typedef struct etapa {
        int pont, pc, bc, time[4];
        AnsiString tip;
        } Etapa;

typedef struct sql {
        AnsiString Ime, Klub, Mesto, Uci, Kateg;
        int StrBr;
        Etapa Trka[40];
        } Sql;
//deklaracija promenjivih
Sql Baza[100],  //glavna baza


E sad Baza-u treba da snimim u binarni fajl a kasnije da iscitam. Nece nikako da uspe. Mislim da me zeza ovaj AnsiString ali nisam siguran. Probao sam i sa fread(), fwrite(); funkcijama.
Jel moze neko da pomogne?
[ itf @ 25.08.2005. 18:02 ] @
Ako je baza binarna neformatirana datoteka onda se u nju ne zapisuje bas AnsiString vec to radi preko char* tj. AnsiString(Podatak).c_str().

[Ovu poruku je menjao itf dana 25.08.2005. u 19:04 GMT+1]
[ tarzan063 @ 27.08.2005. 14:42 ] @
Citat:
itf: Ako je baza binarna neformatirana datoteka onda se u nju ne zapisuje bas AnsiString vec to radi preko char* tj. AnsiString(Podatak).c_str().

[Ovu poruku je menjao itf dana 25.08.2005. u 19:04 GMT+1]


Dobro, ali kako bi ti konkretno napisao kod, za snimanje ove strukture?
[ Goran Arandjelovic @ 28.08.2005. 11:50 ] @
Code:

#include<iostream>
#include<fstream>
#include<string>
using namespace std;

typedef struct etapa {
        int pont, pc, bc, time[4];
        string tip; // izmena!
} Etapa;

typedef struct sql {
        string Ime, Klub, Mesto, Uci, Kateg; // izmena!
        int StrBr;
        Etapa Trka[40];
} Sql;

int main(int argc, char *argv[])
{
    Sql Baza[100];
    Sql NovaBaza[100];
    Baza[0].Ime = "Goranche"; //test podatak
    Baza[0].StrBr = 13; //test podatak
    
    fstream file("test.txt",ios::out|ios::binary);
    file.write((char*)&Baza, sizeof(Baza));
    file.close();
    
    file.open("test.txt",ios::in|ios::binary);
    file.read((char*)&NovaBaza, sizeof(NovaBaza));
    file.close();
    
    cout << NovaBaza[0].Ime;
}


Ovo sasvim dobro funkcionise ;) Ipak, probaj jos jednom...

[Ovu poruku je menjao Goran Arandjelovic dana 28.08.2005. u 12:50 GMT+1]
[ tarzan063 @ 08.09.2005. 22:07 ] @
Citat:
Goran Arandjelovic
Code:

#include<iostream>
#include<fstream>
#include<string>
using namespace std;

typedef struct etapa {
        int pont, pc, bc, time[4];
        string tip; // izmena!
} Etapa;

typedef struct sql {
        string Ime, Klub, Mesto, Uci, Kateg; // izmena!
        int StrBr;
        Etapa Trka[40];
} Sql;

int main(int argc, char *argv[])
{
    Sql Baza[100];
    Sql NovaBaza[100];
    Baza[0].Ime = "Goranche"; //test podatak
    Baza[0].StrBr = 13; //test podatak
    
    fstream file("test.txt",ios::out|ios::binary);
    file.write((char*)&Baza, sizeof(Baza));
    file.close();
    
    file.open("test.txt",ios::in|ios::binary);
    file.read((char*)&NovaBaza, sizeof(NovaBaza));
    file.close();
    
    cout << NovaBaza[0].Ime;
}


Ovo sasvim dobro funkcionise ;) Ipak, probaj jos jednom...

[Ovu poruku je menjao Goran Arandjelovic dana 28.08.2005. u 12:50 GMT+1]


E sad je proradilo. Skontao sam.

Puno hvala!!!

Imam jos jedno pitanje.
Da li postoji neka funkcija za proveru unetog karaktera. Treba do proverim da li je u text box unesen broj (integer).

Hvala svima koji zele da pomognu!

[Ovu poruku je menjao tarzan063 dana 08.09.2005. u 23:16 GMT+1]