Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Na koji način spremati podatke iz programa?

[es] :: C/C++ programiranje :: Na koji način spremati podatke iz programa?

[ Pregleda: 4065 | Odgovora: 10 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

maximus_1
Max Maximus

Član broj: 46848
Poruke: 277
193.198.27.*



Profil

icon Na koji način spremati podatke iz programa?28.03.2006. u 21:36 - pre 219 meseci
Ovak, pišem jedan mali programčić koji je planer ispita i naišao sam na problem spremanja tih podataka u neku bazu podataka.
Program ovako radi: Postoji forma na kojoj se nalaze 3 editboxa (ime kolegija, opis i datum ispita) i listbox. Kada kliknem na dugme spremi, program bi trebao nadodati podatke u listbox. Npr, recimo da je kolegij Informatika, opis Kolokvij, Datum 20.03.2006. Klikom na dugme u listboxu bih dobio: Informatika-Kolokvij-20.03.2006. To je ok, ali kako to pospremiti tako da sljedećim pokretanjem spremljeni podaci budu dostupni?

Probao sam sa ListBox->Items->SaveToFile(Ime_Datoteke) i spremim, kasnije učitam bez problema ali onda izgubim strukturu podataka, tj dobijem samo jedan red u listboxu, a ne odvojene podatke ime kolegija, opis... Također, kako bih mogao obrisati neki podatak, recimo neki red u listboxu ai zajedno sa njim i podatke u datoteci u koju se spremaju.
 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4902
*.nat-pool.po.sbb.co.yu.

Jabber: xfiles@elitesecurity.org


+638 Profil

icon Re: Na koji način spremati podatke iz programa?29.03.2006. u 14:42 - pre 219 meseci
TListView (u report modu) je bolja komponenta od TListBox-a za taj posao, jer TListBox ima samo
jedno polje podataka koje ti odvajas crticama. Ali nema veze, ako koristis TListBox, onda Ok.

Citat:

Probao sam sa ListBox->Items->SaveToFile(Ime_Datoteke) i spremim, kasnije učitam bez problema ali
onda izgubim strukturu podataka, tj dobijem samo jedan red u listboxu, a ne odvojene podatke ime kolegija, opis...

Kako to mislis? Pokazi taj deo koda... LoadFromFile() treba da vrati sve stavke u TListBox.

Citat:

Također, kako bih mogao obrisati neki podatak, recimo neki red u listboxu ai zajedno sa njim i podatke u
datoteci u koju se spremaju.


Zasto nakon brisanja ne odradis:
ListBox->Items->SaveToFile(Ime_Datoteke)
To je jako brza operacija i sasvim je legitimna.
 
Odgovor na temu

leka
Dejan Lekić
senior software engineer, 3Developers
Ltd.
London, UK

Član broj: 234
Poruke: 2534
..81.static.gus.vf.siwnet.net.

Sajt: dejan.lekic.org


+2 Profil

icon Re: Na koji način spremati podatke iz programa?29.03.2006. u 14:54 - pre 219 meseci
Ako već koristiš Borland C++ Builder, onda predlažem toplo malu bazicu koja dolazi uz njega, a koja se zove Paradoks. Maltene sve Builder-ove komponente znaju da koriste bazu, te možeš lako i jednostavno sve lepo da povežeš u jednu GUI aplikaciju.
Dejan Lekic
software engineer, MySQL/PgSQL DBA, sysadmin
 
Odgovor na temu

maximus_1
Max Maximus

Član broj: 46848
Poruke: 277
193.198.27.*



Profil

icon Re: Na koji način spremati podatke iz programa?29.03.2006. u 16:26 - pre 219 meseci
Najbolje bi mi bilo da imate neki primjer spajanja na bazu paradox jer tako najprije skužim. To ne bi trebao biti neki komplicirani primjer, samo pristupanje, spremanje podataka u bazu i učitavanje podataka i baze -> tj ono što mi zapravo treba u ovom programu.


Citat:
X Files: TListView (u report modu) je bolja komponenta od TListBox-a za taj posao, jer TListBox ima samo
jedno polje podataka koje ti odvajas crticama. Ali nema veze, ako koristis TListBox, onda Ok.



Zasto nakon brisanja ne odradis:
ListBox->Items->SaveToFile(Ime_Datoteke)
To je jako brza operacija i sasvim je legitimna.


Da LoadFromFile vrati sve stavke, ali već kod spremanja ja spremim sadržaj listboxa i onda se spreme svi redovi listboxa koji sadrže više odvojenih podataka. Trebalo bi kad učitam svaki red iz datoteke npr: Informatika - Kolokvij 2 - 30.03.2006 da taj zapis nekako rastavim pa da modu koristiti odvojeno sadržaj zapisa (posebno Informatika, posebno Kolokvij 2, posebno 30.03.2006).

No ipak mi se čini da bi mi prava baza podataka dobro došla pa prelazim na paradox.
 
Odgovor na temu

leka
Dejan Lekić
senior software engineer, 3Developers
Ltd.
London, UK

Član broj: 234
Poruke: 2534
..81.static.gus.vf.siwnet.net.

Sajt: dejan.lekic.org


+2 Profil

icon Re: Na koji način spremati podatke iz programa?04.04.2006. u 20:25 - pre 219 meseci
Nazalost, za pisanje teksta koji sadrzi i namanji primer koriscenja Paradox baze treba puno vremena, za koje nazalost nemam vremena. Uz sve to, ne koristim Borland C++ Builder par godina, i obrisao sam ga sa kompjutera. Srecom, postoji mnogo primera na NET-u. Jedan od njih je na http://www.functionx.com/bcb/databases/cpas.htm .
Dejan Lekic
software engineer, MySQL/PgSQL DBA, sysadmin
 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4902
*.nat-pool.po.sbb.co.yu.

Jabber: xfiles@elitesecurity.org


+638 Profil

icon Re: Na koji način spremati podatke iz programa?04.04.2006. u 21:19 - pre 219 meseci
Da. Slazem se da cak i za najmanji ali potpun i korektan primer za rad sa (desktop) bazama podataka treba
dosta vremena. Ovih dana pravim neki mini tutorijal pa ce uskoro biti dostupan na ovom forumu.

Inace, dBASE i Paradox se sve manje koriste u okviru BCB-a, jer se BDE (Borland Database Engine)
vise ne razvija, pa i ove baze polako odlaze u zaborav, iako su svojevremeno eksploatisane do maksimuma.

Generalno, problem sa dBASE i Paradox-om je bio u nezgrapnoj BDE instalaciji, koju korisnik mora da ima
na klijentskoj masini cak i za trivijalan primer tipa telefonskog imenika, ne bas najboljim alatima za formiranje
strukture Paradox baze, BDE uglavnom nije mogao da vraća "žive" DataSet-ove kao rezultat nekog Query-ija,
i sl.

U danasnje vreme, za BCB i Delphi desktop baze podataka najcesce se preporucuje kombinacija ADO seta
komponenti umesto BDE komponenti. Dakle umesto TTable koristiti TADOTable, umesto TDatabase koristiti
TADOConnection, i sl.

Kao baza kojoj se pristupa preporucuje se MS ACCESS (*.mdb), koga ja inace nikad nisam voleo ali to je vec
druga prica. Moram priznati da iako se tvrdilo da je *.mdb format los, nikada mi se nije desilo da neko od
korisnika izgubi bazu, a desavalo mi se da korisnici dBASE-a na primer obrisu greskom neku od brojnih tabela.

Radio sam i sa *.mdb tabelama od po 1,000,000 zapisa bez problema. Jedino sto se dogadja je nekontrolisano
narastanje baze, sto se resava sa "Compact & Repair" sto se moze odraditi i programski, tj. ne morate ulaziti u
MS ACCESS.

Dobra strana ADO nacina pristupa je sto nikakva dodatna instalacija nije potrebna. Sve je u okviru Windowsa
jos od verzije 98SE. ADO takodje bez ikakvih problema na nivou upita pristupa EXCEL dokumentima i sl, sto
ga cini univerzalnim resenjem.

Doduse BDE je ponekad brzi, ali zato i guta RAM memoriju dok radi. Takodje, na 2% racunara ADO (MDAC) moze
da bude ostecen, sto se opet sanira sa posebnim EXE-om (mdac_typ.exe) koji "pregazi" greske.

P.S.

I jos da se osvrnem na naslov "Na koji način spremati podatke iz programa".

Kada se radi sa bazama podataka, prva asocijacija je da je baza mehanizam za SMEŠTANJE ("spremanje") podataka.
Iako to jeste krajnji cilj, prilikom projektovanja baze prvenstveno treba voditi računa o RELACIRANJU podataka,
postavljanu PRIMARNIH KLJUČEVA, izboru INDEXA, uspostavljanju raznih INTEGRITETA, i sl.

Ovo je bitno jer ce lose projektovana baza da pokaze svoje lice i na samom interfejsu, koji će postati način da
"ubijete" bazu, tj njenu logiku.
 
Odgovor na temu

w3bl0rd
Varaždin, Hrvatska

Član broj: 82659
Poruke: 380
*.cmu.carnet.hr.



+26 Profil

icon Re: Na koji način spremati podatke iz programa?12.05.2006. u 20:46 - pre 218 meseci
a postoji li neki način da se spreme podaci o tipovima podataka poput npr TFont (ovo je samo primjer.... a ustvari mislim na bilo koje....)
there's no place like 127.0.0.1
 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4902
*.nat-pool.po.sbb.co.yu.

Jabber: xfiles@elitesecurity.org


+638 Profil

icon Re: Na koji način spremati podatke iz programa?12.05.2006. u 21:52 - pre 218 meseci
U Borland C++ Builder ne postoji nacin koji ti moze garantovati da 'jednim potezom' snimis neki objekat
i kasnije ga samo ucitas.

Doduse, lako je razviti resenje za 'obicne' tipove, ali kada se radi o nekom slozenom objektu, koji je
sastavljen od gomile dinamickih podobjekata, tada stvar nije jednostavna.

Sada kad ovo vidi Dragi Tata, odmah ce ti reci da moze ;)

Sto se tice TFont, postoje neka resenja koja jednim potezom mogu snimiti/ucitati ceo objekat, ali
se ne preporucuju. Najsigurnije je sve osobine koje su ti bitne snimiti u INI ili Registry, i kasnije
ucitati jednu po jednu.
 
Odgovor na temu

w3bl0rd
Varaždin, Hrvatska

Član broj: 82659
Poruke: 380
*.cmu.carnet.hr.



+26 Profil

icon Re: Na koji način spremati podatke iz programa?12.05.2006. u 21:57 - pre 218 meseci
To sam i ptrepostavljao... hvala ponovo...
there's no place like 127.0.0.1
 
Odgovor na temu

kiklop74
Darko Miletić
Buenos Aires

Član broj: 78422
Poruke: 569
*.fibertel.com.ar.

Sajt: ar.linkedin.com/pub/darko..


+13 Profil

icon Re: Na koji način spremati podatke iz programa?13.05.2006. u 14:57 - pre 218 meseci
Citat:
w3bl0rd: a postoji li neki način da se spreme podaci o tipovima podataka poput npr TFont (ovo je samo primjer.... a ustvari mislim na bilo koje....)


To o cemu govoris se zove object serialization. .NET framework ima to ugradjeno kao deo platforme. U c++ se treba okrenuti ili sopstvenim resenjima ili gotovim bibliotekama.

Sta je object serialization:
http://www.parashift.com/c++-faq-lite/serialization.html

Jedna gotova biblioteka za to:
http://xparam.sourceforge.net/


Tko leti vrijedi
 
Odgovor na temu

Dragi Tata
Malo ispod Kanade

Član broj: 1958
Poruke: 3906
*.hsd1.ma.comcast.net.



+6 Profil

icon Re: Na koji način spremati podatke iz programa?15.05.2006. u 11:53 - pre 218 meseci
Citat:
X Files

Sada kad ovo vidi Dragi Tata, odmah ce ti reci da moze ;)



:D

Da, kao što reče Kiklop, serijalizacija. Mada, iskreno, nikad ne koristim tako nešto. Najpoznatija C++ biblioteka za serijalizaciju (nije nešto posebno brza) je

Boost Serialization http://www.boost.org/libs/serialization/doc/index.html
 
Odgovor na temu

[es] :: C/C++ programiranje :: Na koji način spremati podatke iz programa?

[ Pregleda: 4065 | Odgovora: 10 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.