|
inostranac
Član broj: 141142 Poruke: 27 *.kolej.mff.cuni.cz.
|
Pozdrav!
Imam ovakav problem:
Zadani fajl treba ispisati na ekran, s tim sto svaku #include ime_fajla liniju treba zameniti tekstom fajla ime_fajla (samo na ekranu - originalni fajl se ne menja).
Medjutim, i taj fajl u sebi moze imati direktive #include, i sa njima treba postupiti na isti nacin. Program mora da spreci beskonacni ciklus tipa
fajl A: #include B
fajl B: #include A
ili, naravno, duzi ciklus.
Ime fajla u #include se moze zadavati kao absolutna ili relativna lokacija. #include nije case-sensitive
Ima li neko ideju kako se radi tako nesto, posto ja nemam predstavu?
Plus, za one koji su bas dobro raspolozeni :-) Program bi trebalo da se poziva sa
ime_programa [-v out_fajl1 out_fajl2 ...] -i in_fajl1 in_fajl2 ...
Ako je zadana opcija -v onda se in_fajlX ispisuje u out_fajlX, inace na ekran. Jel moze samo opste, neki hint, kako bi se to najjednostavnije izvelo?
Hvala unapred!
Pozz
|
| 14.06.2007. u 22:26 |
| |
|
Jazzva Beograd
Član broj: 148590 Poruke: 7 *.dynamic.sbb.co.yu.
Jabber: jazzva@jabber.org
|
Ovo mi je prvo palo na pamet...
Koristi listu stringova u kojoj ćeš čuvati već include-ovane fajlove za jedan input fajl. Napiši rekurzivnu funkciju koja će otvoriti fajl i uzimati liniju po liniju i smeštati u string. Nakon toga proveri da li string počinje sa "#include". Ako ne počinje samo ispiši string na ekran, ili u output fajl. Ako počinje prvo proveri da li je taj fajl već includeovan (provera one liste stringova). Ako nije onda smesti ime include fajla u listu stringova i pozovi tu funkciju za taj fajl. To bi bilo to, uopšteno...
Ne verujem da je ovo blizu dobrog rešenja, ali se nadam da će makar malo pomoći :).
|
| 16.06.2007. u 03:03 |
| |
|
inostranac
Član broj: 141142 Poruke: 27 *.kolej.mff.cuni.cz.
|
Hvala ti, Jazzva(o) :-)
Nesto tako se i meni motalo po glavi, ali posle tvog odgovora sam konacno seo i otkucao kod, i radi!
Hvala jos jednom!
Pozz
|
| 17.06.2007. u 10:17 |
| |
|
Jazzva Beograd
Član broj: 148590 Poruke: 7 *.dynamic.sbb.co.yu.
Jabber: jazzva@jabber.org
|
No prob :)...
|
| 17.06.2007. u 13:15 |
| |