» »

Nalaganje nastavitev iz tekstovne datoteke [vodič]

Nalaganje nastavitev iz tekstovne datoteke [vodič]

napsy ::

Napisal sem vodič, kako sprogramirati v programskem jeziku C program, ki naloži nastavitve iz datoteke.

Vodič

Komentirajte ...
"If you die, you die. But when you live you live. There is no time to waste."

OwcA ::

Lepo napisano, edino kar mi ni všeč je uporaba globalnih spremenljivk (edited_line). Glede na to, da gre le za kazalec, bi bil overhead prenašanja kazalca kot argumenta minimalen, koda pa je tako bolj pregledna in še ni možnosti, da bi prišlo do težav z večkratnim brisanjem ali nanašanjem na zbrisani kazalec. Za sledeče nisem prepričan, ampak zdi se mi, da polj char ni potrebno brisati/inicializirati z memsetom, ampak zadostuje, da dodeliš prvemu elementu vednost \0.

napsy ::

glede globalnih spremenljivk: lahko bi tudi enostavno prenašal kazalce. Kaj vem, takšen je moj stil :)

glede memset: moraš inicializirat array, ker drugače ostanenejo voluharji.
"If you die, you die. But when you live you live. There is no time to waste."

cyer^3d ::

Morda nekaj odvecnih stavkov v funkciji
char *read_line(FILE *_stream)...
npr.
if (buffer != NULL) buffer[i - 2] = '\0';
(zakaj dajati 0 na konec ce je tako in tako celo
polje na zacetku resetirano na 0 oz. zakaj bi
sploh dajal i-2 na '\0'?
'\n' itak ne prepises v buffer)
zakaj zaceti z i=1 ? veliko bolje z i=0, pac vecja preglednost ... ostalo se nisem pogledal.
Memory leaking? kje natanco releasas heap od 'buffer'?

Ostalo niti se nism pogledal, saj si hotel komentarje:\

d-mon ::

Hm...Kaj je narobe s temi funkcijami?

BOOL WritePrivateProfileString(
LPCTSTR lpAppName, // section name
LPCTSTR lpKeyName, // key name
LPCTSTR lpString, // string to add
LPCTSTR lpFileName // initialization file
);

DWORD GetPrivateProfileString(
LPCTSTR lpAppName, // section name
LPCTSTR lpKeyName, // key name
LPCTSTR lpDefault, // default string
LPTSTR lpReturnedString, // destination buffer
DWORD nSize, // size of destination buffer
LPCTSTR lpFileName // initialization file name
);

Prepisano z Platform SDK: Windows System Information
[D-mon]

napsy ::

cyer^3d: Mislim, da če nism tako naredil, je bil string popačen. Glede tiste i spremenljivke mi je pa vseeno, pa vseeno hvala. Hmm. Zgleda da sem pozabu zbrisat tist buffer :O. Bom popravu.

Seveda sm hotel komentarje. Bolje je pa že kot pa pri Jokerjevem mnenjalniku, ker tam mam občutek, da še posta opazl niso ;( .

d-mon: ?
"If you die, you die. But when you live you live. There is no time to waste."

Zgodovina sprememb…

  • spremenil: napsy ()

d-mon ::

napsy:
To sta funkciji za branje in pisanje v ini file iz Platform SDKja.

Hotel sem ti povedat, da funkcije, ki jih ti pises ze obstajajo.

Drugacna zgodba pa je seveda, ce se ucis programirati in si naredil program za vajo.
Dobra vaja.
[D-mon]

napsy ::

d-mon: nekje sem že videl te funkcije za branje .ini-podobne datoteke. Sam mislim da tedve funkciji nista prenosljivi.

Kodo sm pa napisal tud mal za utrjevanje in za pomoč drugim.
"If you die, you die. But when you live you live. There is no time to waste."

Vesoljc ::

napsy: "Sam mislim da tedve funkciji nista prenosljivi"
nimaš kej mislt :)
keep up the good job
Abnormal behavior of abnormal brain makes me normal...


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

[C] - spreminjanje atributov datotek

Oddelek: Programiranje
121103 (988) pijavka
»

[VC++] Uporaba INI fajla v isti mapi kot exe ?

Oddelek: Programiranje
121260 (1114) Person
»

[baze] Povezava do slike ali BLOB?

Oddelek: Programiranje
101658 (1455) BlueRunner
»

Coding Style

Oddelek: Programiranje
433461 (2653) 64202
»

Uporaba .dll

Oddelek: Programiranje
61373 (1333) Vesoljc

Več podobnih tem