Hi,
Keresek valami ini file beolvaso/feldolgozo forrast. Az Audacity pont olyan config file-t hasznal, amilyen nekem kellene (fa-struktura jellegut, olyan, mint egy Windows-os ini, csak tobb group szintet tud). wxFileGonfig-gal oldottak meg, en viszont nem szeretnem csak emiatt az egy ficsor miatt a wx-et hasznalni (es alapvetoen inkabb C, mint C++ kellene).
Letezik ilyen keszen? Vagy meg kellene irni?
/sza2
- 4904 megtekintés
Hozzászólások
- A hozzászóláshoz be kell jelentkezni
Nekem valami ilyesmit kellene feldolgozni (szinte teljesen ugyanilyet):
[GUI]
[GUI/ToolBars]
[GUI/ToolBars/Control]
Dock=1
Order=1
H=55
[GUI/ToolBars/Tools]
Dock=1
H=55
[GUI/ToolBars/Meter]
Dock=1
W=275
H=55
[GUI/ToolBars/Mixer]
...
Vajon ez tudna? A minta cfg sokkal osszetetteb es mas formatumu.
A formatum kotott, nem en alakitottam ki.
/sza2
- A hozzászóláshoz be kell jelentkezni
ezt leprogramozni tesztelessel kb. egy delutan, vagy annyi se.
- A hozzászóláshoz be kell jelentkezni
> ezt leprogramozni tesztelessel kb. egy delutan, vagy annyi se.
Kezdőknek jó feladat :-)
- A hozzászóláshoz be kell jelentkezni
Na de pont az lett volna a lenyeg, hogy ne kelljen:-)
/sza2
- A hozzászóláshoz be kell jelentkezni
Nem mondom, hogy dögbonyolult feladat, de azér' megnézném azt a teszteléssel egy délutánt vagy annyit se... C-ben. Ahogy elnézem, rendesen dinamikus fa lesz. Különféle hibákra felkészülni, stb.
C++-ban, ha elég rutinos vagy, és ha tág értelemben vesszük a délutánt, akkor lehet.
- A hozzászóláshoz be kell jelentkezni
C-ben is, tesztelessel egy delutan (13h->18h), ha nem bonyolitja tul az ember, es nem mindent 0-rol ir, csak a parsert. (Ha a fakat meg egyeb felhasznalt dolgokat is maga irja az ember, az nyilvan ratesz, de arra van N+1 lib)
Esetleg ket delutan, az elso az atgondolas. De azt igazabol este egy film mellett is teljesen jol meg lehet tenni.
--
|8]
- A hozzászóláshoz be kell jelentkezni
Nem kötözködésképpen, csak hogy a kérdezőt ne vigyük félre:
> Ha a fakat meg egyeb felhasznalt dolgokat is maga irja az ember, az nyilvan ratesz, de arra van N+1 lib
Ez igaz, de ehhez meg ismerni kell az adott libet. Ha nem ismered, ahhoz is kell idő. Ráadásul a C-nek nem a dinamikus adatkezelés általánosítása az erőssége.
Nyilván 10 év rutinnal nem probléma a feladat.
- A hozzászóláshoz be kell jelentkezni
A legtobb lib rendelkezik hasznalhato doksival, aminek a relevans resze lehet mondjuk 2 oldal. Nem szamottevo. Aki eljutott mar odaig, hogy egyatalan ilyet akar irni, arrol feltetelezem, hogy egy ilyen meretu dokumentacio atolvasasa nem okoz neki problemat.
De, hogy leegyszerusitsem a dolgot, en a kovetkezo barbar megoldast alkalmaznam:
* Soronkent olvasom a filet
* Ha ures, vagy #-vel kezdodik, skip
* Ha [...] alaku, akkor a koztes reszt kikapom current_section-be, es kov sor.
* A tobbi esetben ha nem Foo=Bar alaku a stuff, akkor error
* Ha ilyen alaku, akkor = menten split, fogom a config hasht, es current_section + "/" + key kulcsra beteszem a = utani stringet.
* Repeat until EOF
Igy a GUI/ToolBars/Tools alatti Dock valtozo kulcsa pl GUI/ToolBars/Tools/Dock lesz. Lehet accessort irni ami atoi()zik, es intet ad vissza.
Ha meg olyan kell, hogy listazni a GUI/ alatti kulcsokat, arra is lehet egy egyszeru for ciklust irni, ami megnezni, hogy a prefix egyezik-e, es ha igen, akkor orvendunk, es betesszuk a listaba.
Ennyi. Ezt lekodolni ~15 perc. Teszteseteket irni, meg megfelelo accessorokat, meg doksit, stb +3 ora. Megfelelo libet keresni, ami tud hashtablet, meg listat meg ami meg kell, es atnezni a relevans doksi reszletet +1 ora. Van egyebkent olyan lib is, amit embeddelni lehet egyszeruen, portabilis, igy nem kell azzal sem vacakolni, hogy fel legyen telepitve a celgepen (pl publib ilyen, emlekeim szerint).
Es meg mindig egy delutanon belul vagyunk. A megoldas nem lesz a legszebb, se nem a leggyorsabb, ellenben mukodik. Mivel Makefile generalasra kell, es a forras inifile sem epp a legnagyobb, nem hiszem, hogy a csucssebesseg kulonosebben fontos lenne. ~5 sec es ~1sec futas kozott, ha naponta mondjuk 5-6x fut, nem sok kulonbseg van.
--
|8]
- A hozzászóláshoz be kell jelentkezni
fat es mindenfele lancolt listat csipobol irjon mar, aki picit is programozonak vallja magat...
ezek annyira alap, altalanos adatszerkezetek, hogy nehogymar ehhez lib kelljen.
plane, hogy egy ilyen ini-beolvaso izehez tok alap implementacio kell csak, par tucat sor, oszt' kesz.
- A hozzászóláshoz be kell jelentkezni
Nyilvan. De ha mar van N+1 lib, ami megcsinalja nekem a fakat, meg a listat es egyebeket, akkor hulye leszek feltalalni a spanyolviaszt.
Egyebkent igen. Ez rettento trivialis feladat.
--
|8]
- A hozzászóláshoz be kell jelentkezni
Nem értek céül de ez rém egyszerű és jónak tűnik: http://code.google.com/p/inih/
- A hozzászóláshoz be kell jelentkezni
Ha van Qt a gépeden, akkor a QSettings is ini fájl formátumot használ linuxon, más platformon meg közvetlen feldolgozható:
- A hozzászóláshoz be kell jelentkezni
Egy ini jellegu file-bol kellene Makefile-t csinalnom, es valami egeszen egyszerut szeretnek, minel kevesebb fuggoseggel. A Qt-t ide mar soknak tartom, ahogy a wx, GTK es a tobbi is kiesik. Ez vegulis egyszeru szovegfeldolgozas, nem akarom belekeverni a gui-s dolgokat. Nekem van fent Qt, de nem akarom mindenhol feltetetni, ahol ezt szertnek hasznalni. Az a celom, hogy kismeretu, fuggosegmentes, multiplatformos futtathato keletkezzen belole. Nem mindenkinek van kedve a telepitessel meg forditgatassal szuttyogni:-)
/sza2
- A hozzászóláshoz be kell jelentkezni
QtCore elég hozzá, úgy nézem... de persze érdemes megnézni a többi ajánlott libet is.
- A hozzászóláshoz be kell jelentkezni
Feltetlen C-ben akarod irni egyebkent? Mert ez pl Perlben veszettul egyszeru lenne. Perl pedig van kb mindenhol, meg Winen is.
--
|8]
- A hozzászóláshoz be kell jelentkezni
Persze, ha raksz rá, de tapasztalatom szerint kevés winre raknak perl-t. Cserébe win-en van beépített API az ini file-ok kezelésére :)
- A hozzászóláshoz be kell jelentkezni
C fordito sincs rajta alapbol, tudtommal :P
--
|8]
- A hozzászóláshoz be kell jelentkezni
De nem is kell C fordító ahhoz, hogy futtass egy programot.
- A hozzászóláshoz be kell jelentkezni
Valoban. Perlt meg lehet csomagolni a futtathato programhoz, amit amugy is fel kell raknia. Csak 1Mb helyett 80Mb lesz. :P
--
|8]
- A hozzászóláshoz be kell jelentkezni
Ahova ez kell, van C fordito a rendszeren. Csak epp 8051-re fordit:-)
/sza2
- A hozzászóláshoz be kell jelentkezni