Forum » Programiranje » [C++] Problem z datotekami in sortiranjem
[C++] Problem z datotekami in sortiranjem
madviper ::
Pišem en preprost program, ki bi mi iz datoteke prebral maile in jih posortiral v druge datateke odvisno od končnice. Program sem sicer napisal, sam imam nekje napako
Kje?
Kdo najde rešitev ma v dobrem pir pr men!
Lp, madviper
Kje?
int main { ifstream mail; ofstream si, hr, it, de, ru, com; fstream temp; char vrstica; int j=0; mail.open("C:\\mailsort\\mail.txt"); si.open("C:\\mailsort\\si.txt"); hr.open("C:\\mailsort\\hr.txt"); it.open("C:\\mailsort\\it.txt"); de.open("C:\\mailsort\\de.txt"); ru.open("C:\\mailsort\\ru.txt"); com.open("C:\\mailsort\\com.txt"); if ( !mail.good() ) { return 1; } while ( !mail.eof() ) { vrstica = mail.getline(); temp.open("C:\\mailsort\\temp.txt"); temp.put(vrstica); int i=0; char znak, konc; while ( !temp.eof() ) { znak = temp.get; i++; } temp.ignore(j=i-3); konc = temp.getline; if ( konc = ".si" ) si.put(vrstica); if ( konc = ".hr" ) hr.put(vrstica); if ( konc = ".at" || ".de" ) de.put(vrstica); if ( konc = ".it" ) it.put(vrstica); if (konc = ".ru" ) ru.put(vrstica); else (com.put(vrstica)) temp.close("C:\\mailsort\\temp.txt"); } mail.close("C:\\mailsort\\mail.txt"); si.close("C:\\mailsort\\si.txt"); hr.close("C:\\mailsort\\hr.txt"); it.close("C:\\mailsort\\it.txt"); de.close("C:\\mailsort\\de.txt"); ru.close("C:\\mailsort\\ru.txt"); com.close("C:\\mailsort\\com.txt"); return 0; }
Kdo najde rešitev ma v dobrem pir pr men!
Lp, madviper
I'd like to do something crazy!
- spremenil: madviper ()
madviper ::
Aja, če koda je zaščitena - Joke
Če komu koristi, naj kr izvoli, sam men trenutno ne deluje
Če komu koristi, naj kr izvoli, sam men trenutno ne deluje
I'd like to do something crazy!
Brane2 ::
ČIsto tako laično- zakaj je vrstica definirana kot "char", potem jo pa getlineaš ?
A ne bi morala biti tipa string ali vsaj char[] ?
A ne bi morala biti tipa string ali vsaj char[] ?
On the journey of life, I chose the psycho path.
madviper ::
Hmmm... zanimivo vprašanje. Mogoč zato, kr je napača
Hvala
Hvala
I'd like to do something crazy!
Zgodovina sprememb…
- spremenil: madviper ()
madviper ::
@Brane2
Je očitno še kak dodaten bug not. A teb prevede kodo? Men debuger vrže cel kup napak ven.
Prva napaka je v tej vrstici
Je očitno še kak dodaten bug not. A teb prevede kodo? Men debuger vrže cel kup napak ven.
Prva napaka je v tej vrstici
vrstica = mail.getline();
I'd like to do something crazy!
Zgodovina sprememb…
- spremenil: madviper ()
Brane2 ::
Nimam zdaj časa za compile. Pa tudi nimam nekih izkušenj. Ravno sem naredil prvi prehod Bruce Eckelove bukve "Thinking in C++" in se pripravljam za drugi.
Tole sem zinil bolj tko usput. Čisto možno da sem kaj zaj*
Tole sem zinil bolj tko usput. Čisto možno da sem kaj zaj*
On the journey of life, I chose the psycho path.
Zgodovina sprememb…
- spremenil: Brane2 ()
madviper ::
Nisi zaj* kr sem odstrano približno tretino napak, če ne še več, ko sem popravo to kar si svetoval.
Hvala ti!
Hvala ti!
I'd like to do something crazy!
Brane2 ::
če je tako, potem lahko "konc" predelaš na isti način, ker tudi ta je sedaj "char", vanj bi pa rad spravil (get)line...
On the journey of life, I chose the psycho path.
Brane2 ::
A pri closeanju vseh fileov rabiš met v kot vhodni podatek file, ki ga closeaš ?
Saj kličeš member funkcije same instance, ki valjda vedo, kaj v objektu za en fajl je sploh bil odprt...
Saj kličeš member funkcije same instance, ki valjda vedo, kaj v objektu za en fajl je sploh bil odprt...
On the journey of life, I chose the psycho path.
Zgodovina sprememb…
- spremenil: Brane2 ()
madviper ::
Ja najbrž res ne bi rabo, sam škodi pa sicer ne.
Kr sem len pisati, sem sam skopiral odpiranje in sem pol sam spremenil open v close.
Sicer pa lahk to tud spremenim.
Kr sem len pisati, sem sam skopiral odpiranje in sem pol sam spremenil open v close.
Sicer pa lahk to tud spremenim.
I'd like to do something crazy!
BigWhale ::
Kaj ce bi teh nekaj vrstic napisal v kakem skriptnem jeziku? Bash, perl, phyton? Bos prej fertik... ;)
madviper ::
Odkrito povedano, skripte niso moje področje. Zaenkrat jih ne obvladam.
A je kaka dobra duša da mi to naredi ?
A je kaka dobra duša da mi to naredi ?
I'd like to do something crazy!
BigWhale ::
Evo ti bash skripta...
Edini pogoj, da tole deluje je, da imas v vsaki vrstici samo en mail naslov, ki se konca z .nekaj, ce se ne, pojma nimam kaj se zgodi... :P
PS: nucamo bash syntax highlighting! :P
for bla in `sed 's/\(.*\)\(\.[a-z,A-Z]*$\)/\2/' mail.txt | sort -u` do grep ${bla} mail.txt > mail${bla}; done
Edini pogoj, da tole deluje je, da imas v vsaki vrstici samo en mail naslov, ki se konca z .nekaj, ce se ne, pojma nimam kaj se zgodi... :P
PS: nucamo bash syntax highlighting! :P
Zgodovina sprememb…
- spremenil: BigWhale ()
jype ::
madviper> Odkrito povedano, skripte niso moje področje. Zaenkrat jih ne obvladam.
Ja, ampak C++ tudi ne.
No, ker ti je zadevo napisal ze BigWhale, se ne bom matral :)
Ja, ampak C++ tudi ne.
No, ker ti je zadevo napisal ze BigWhale, se ne bom matral :)
madviper ::
Ja, ampak C++ tudi ne.
Sej nisem reko, da je. O C++ se mi nekaj sanja, mal poznam osnovne funkcije, kar pa za druge jezike ne morem trdit.
@BigWhale
Hvala ti! Sam še eno vprašanje. Kaj je to bash syntax highlighting?
I'd like to do something crazy!
madviper ::
A ni bash sam za linux sisteme? Al deluje tud na windowsih (kako?)?
I'd like to do something crazy!
BigWhale ::
Za bash na windows bos nucal cygwin. Zadostovala bo ze minimalna instalacija, ki bo vsebovala tudi sed, grep in sort.
madviper ::
Ok. Tud to sem zadaj dal gor. Hvala!
Zdaj pa nasledna serija vprašanj.
Kako shranit skripto?
In kako skripto potem zagnati, da bo pravilno delovala?
Prosim za ta pojasnila če niso odveč.
Zdaj pa nasledna serija vprašanj.
Kako shranit skripto?
In kako skripto potem zagnati, da bo pravilno delovala?
Prosim za ta pojasnila če niso odveč.
I'd like to do something crazy!
iNN ::
Zivijo
Takole gre v cistem linuxu, ce ti kaj pomaga
Najprej pac ce v recimo nano text editorju napises skripto, in jo normalno shranis. Nato jo chmodas v executable (chmod +x mojaskripta), potem pa zazenes ( ./mojaksripta). That's all.
Takole gre v cistem linuxu, ce ti kaj pomaga
Najprej pac ce v recimo nano text editorju napises skripto, in jo normalno shranis. Nato jo chmodas v executable (chmod +x mojaskripta), potem pa zazenes ( ./mojaksripta). That's all.
==
madviper ::
Star sicer laufa (tud brez vrstice), sam rabo bi da mi mail sortira skupaj v en file. Kakšna ideja?
I'd like to do something crazy!
madviper ::
A mi zna kdo povedat, zakaj mi javla da ne najde ukaza getline v knižici ifstream oz. fstream?
I'd like to do something crazy!
BigWhale ::
Kak mail, da ti sortira? iz katerega filetka v kateri file?
ce bi rad samo sortiran mail, pote naredis cat mail.txt | sort > sortedmail.txt
ce bi rad samo sortiran mail, pote naredis cat mail.txt | sort > sortedmail.txt
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | c++ Branje dolocene vrstica iz .txt-jaOddelek: Programiranje | 1671 (1410) | technolog |
» | Pomoc pri nalogiOddelek: Programiranje | 2003 (1809) | FuI2cY |
» | c++ BRANJE IZ DATOTEKEOddelek: Programiranje | 2565 (1978) | Tutankhamun |
» | [Naloga][C++] podatkovni tip sklad in istoležne vrstice v datotekahOddelek: Programiranje | 2004 (1873) | matjaz1111 |
» | [c++]file read problemOddelek: Programiranje | 1583 (1318) | 'FireSTORM' |