Forum » Programiranje » [c++] Branje/ pisanje datotek
[c++] Branje/ pisanje datotek
Ph4nt0m ::
Imam težavo, za katero mi še ni uspelo najti rešitve, zato bi prosil za vašo pomoč. Vse bi bilo vredu, če bi šlo za eno vrsto podatka, sedaj pa moram iz datoteke prebrati več uporabnikov s tremi podatki. In sicer sem si zadevo zamislil tako, da so trije podatki zapisani v eni vrstici, ločeni pa so s presledki. Vsaka vrstica velja za novega uporabnika. V konkretnem primeru gre za simulator bankomata, torej prvi podatek je TRR, drugi PIN in tretji stanje na računu. Uporabnik ob prijavi vnese št. TRR, PIN, stanje pa se v primeru zdiga more prepisat. Dokler gre le za enega uporabnika, program deluje, vendar imam sedaj vsak podatek (TRR, PIN in stanje) v svoji vrstici. Prosim za pomoč.
www.kartusatoner.si
xyd1 ::
Vse podatke zapišeš v eno vrstico. Podatke ločiš z preslednico.
Namig 1: beri do preslednice
Namig 2: konec podatkov 1 uporabnika if(znak=="\n")
Tako nekako sem jas to razumel (vrjetno napačno)...
Namig 1: beri do preslednice
Namig 2: konec podatkov 1 uporabnika if(znak=="\n")
Tako nekako sem jas to razumel (vrjetno napačno)...
Ph4nt0m ::
V bistvu si razumel prav, tudi sam razmisljam v tej smeri. Ampak ne vem kako se lotiti programerskrga dela. Bi bilo torej primerno dvodimenzionalno polje? Prva dimenzija za uporabnike, druga pa za podatke? Ali ima mogoce kdo boljso resitev? Vrjetno je ob spremembi stanja potrebno prepisat celotno datoteko?
www.kartusatoner.si
golobich ::
Ph4ntom, če te jst to prav razumem imaš ti pač neko bazo napisano v beležnici in ti bi rad prebral podatke iz beležnice v C++.
Kaj če bi probal naredit eno strukturo podobno tej:
In zdej bi imel eno funkcijo, ki bi preštela vse vrstice v beležnici (ena vrstica en uporabnik).
samo primer:
potem bi potreboval tabelo podatkov v meinu
potem ko bi v C++ odpru datoteko myfile.open()...
bi zapisal ime in priimek v strukturo tam pod ime_priimek.
Rabu bi for zanko, ki bi šla do konc priimka. Kdaj veš kdaj je konec priimka?
Mogu bi it z for zanko čez, ko bi našu prvi presledek, bi števec se poveču za ena in preveru ali je naslednji znak = crka.
Ko pogoj nebo izpolnjen, lahko to zapišeš v ime_priimek. Glede TRR-ja, pa pina pa ti nebi znau pomagat.
glede kode za znak pa mislim da veš ;)
Pač to ni čisto točno, mislim pa da zna bit oreng približek ;)
Kaj če bi probal naredit eno strukturo podobno tej:
struct Podatki { string ime_priimek; int trr; int pin; };
In zdej bi imel eno funkcijo, ki bi preštela vse vrstice v beležnici (ena vrstica en uporabnik).
samo primer:
int sestej () { int uporabnik=0; //Prešteješ vrstice return uporabnik; }
potem bi potreboval tabelo podatkov v meinu
int main () { int x; x=sestej(); Podatki tabela [x]; . . . }
potem ko bi v C++ odpru datoteko myfile.open()...
bi zapisal ime in priimek v strukturo tam pod ime_priimek.
Rabu bi for zanko, ki bi šla do konc priimka. Kdaj veš kdaj je konec priimka?
Mogu bi it z for zanko čez, ko bi našu prvi presledek, bi števec se poveču za ena in preveru ali je naslednji znak = crka.
Ko pogoj nebo izpolnjen, lahko to zapišeš v ime_priimek. Glede TRR-ja, pa pina pa ti nebi znau pomagat.
glede kode za znak pa mislim da veš ;)
//imaš naprimer niz "Janez Novak ..........." for (int j=0; j<niz.length(); j++) { for (char znak='a'; znak<='z';i++) { if( (niz[j]==' ')&&(niz[j+1]!=znak) ) { //pol moreš niz zapisat v spremenljivko ime_priimek } } }
Pač to ni čisto točno, mislim pa da zna bit oreng približek ;)
Ph4nt0m ::
Ja je baza v bistvu, sam je nekoliko manj zakomplicirano, ker imena in priimka ni, ampak so le trije podatki tipa int. Torej TRR, PIN in pa stanje na računu. Bom pa poskusil uporabit prvi del nasveta, hvala :)
www.kartusatoner.si
golobich ::
Aja, sem mislil da je tudi ime in priimek pač uporabnika.
No probi it pa pol z for zanko čez vrstico...
pač maš naprimer prvo TRR pole pride preslede, pole pride PIN, presledek in STANJE na računu.
Zdej nevem če greš lahko točno čez for zanko čez vse, samo ko bi prišel do prvega presledka, bi se vstavil
in vse številke ki si jih prebral zapisal v spremenljivko trr. Z ostalim bi blo isto.
Nisem se drugače nič kaj preveč o pisanju in branju v datoteke oz. iz datotek ukvarju, tako da nevem veliko o tem ;)
Lp golobich
No probi it pa pol z for zanko čez vrstico...
pač maš naprimer prvo TRR pole pride preslede, pole pride PIN, presledek in STANJE na računu.
Zdej nevem če greš lahko točno čez for zanko čez vse, samo ko bi prišel do prvega presledka, bi se vstavil
in vse številke ki si jih prebral zapisal v spremenljivko trr. Z ostalim bi blo isto.
Nisem se drugače nič kaj preveč o pisanju in branju v datoteke oz. iz datotek ukvarju, tako da nevem veliko o tem ;)
Lp golobich
Isotropic ::
kaj pa, ce imas na zacetku nek identifier, za njim pa vrstice z podatki? pa je vec teh identov?
recimo
*stevilka
23232
232323
23
23
2323
23232
*ime
fsdfsd
sdfsd
*...
v loopu skozi file nastavis ustrezne variable, da ves, kaj imas za ene podatke? in if stavek za vsak ident/ variablo? a obstaja se kaksna boljsa varianta?
(resitev naj bi bila psevdo)
recimo
*stevilka
23232
232323
23
23
2323
23232
*ime
fsdfsd
sdfsd
*...
v loopu skozi file nastavis ustrezne variable, da ves, kaj imas za ene podatke? in if stavek za vsak ident/ variablo? a obstaja se kaksna boljsa varianta?
(resitev naj bi bila psevdo)
Zgodovina sprememb…
- spremenil: Isotropic ()
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | [java] imenovanje paketovOddelek: Programiranje | 1129 (974) | ales85 |
» | C# težavaOddelek: Programiranje | 3726 (2572) | mladec |
» | [Android]Vrnitev v "parent" activityOddelek: Programiranje | 1507 (1380) | KernelPanic |
» | [Java] Evidenca delovnega časa - Java v navezi z AccessomOddelek: Programiranje | 3283 (2503) | c0dehunter |
» | Ime Priimek v Ime_Priimek (strani: 1 2 )Oddelek: Programska oprema | 4984 (3944) | Doman |