|
[ 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]
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|