[ inostranac @ 14.06.2007. 22:26 ] @
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
[ Jazzva @ 16.06.2007. 03:03 ] @
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 :).
[ inostranac @ 17.06.2007. 10:17 ] @
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
[ Jazzva @ 17.06.2007. 13:15 ] @
No prob :)...