játékfejlesztés.hu
FórumGarázsprojectekCikkekSegédletekJf.hu versenyekKapcsolatokEgyebek
Legaktívabb fórumozók:
Asylum:    5444
FZoli:    4892
Kuz:    4455
gaborlabor:    4449
kicsy:    4304
TPG:    3402
monostoria:    3284
DMG:    3172
HomeGnome:    2919
Matzi:    2519

Pretender:    2498
szeki:    2440
Seeting:    2306
Geri:    2188
Orphy:    1893
Joga:    1791
Bacce:    1783
MaNiAc:    1735
ddbwo:    1625
syam:    1491
Frissebbek | Korábbi postok
[1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [15] [20] [25] [30] > 35 < [40] [45] [50] [55] [60] [65] [70] [75] [80] [85] [90] [95] [100] [105] [110] [115] [120] [125] [130] [135] [140] [141]
Joga - Törzstag | 1791 hsz       Online status #152926   2011.05.29 11:54 GMT+1 óra  
Idézet
Wolfee :
ezt a sizeof(char*)-t meg sürgősen felejtsd el, mert senki nem mondja meg neked, hogy melyik rendszeren mekkora a pointer.

Fordítási időben eldönthető, hogy milyen rendszerre fordít az illető, nem?
(ಠ ›ಠ) Stewie!

   
HomeGnome - Szerkesztő | 2919 hsz       Online status #152921   2011.05.29 10:06 GMT+1 óra  
Akkor realloc, de sztem ennek így nincs sok értelme..
Ha tudod, hogy mit akarsz bekérni, akkor előre meg tudod határozni a szükséges memória méretét is. Pl. ha a highscore listába kéred be a játékos nevét, akkor eleve úgy tervezel, hogy mondjuk max 64 karakter lehet a név. Nincs értelme, hogy egy regényt begépeljen a felhasználó...

Klikk, a JF.hu bulvárlap.
Klikk #6 WIP: 30% (Kuz, sade, ramoryan...)
   
Bukta - Tag | 308 hsz       Online status #152920   2011.05.29 09:11 GMT+1 óra  
Idézet
HomeGnome :
Nem egészen értem, hogy a SIZE-ot miért nem adod át a ReadLine-nak, ha viszont konstans, akkor meg minek a dinamikus memóriafoglalással bohóckodni?



Mert igazából ez ugy akartam megcsinálni, hogy ne kelljen a mérettel (SIZE) foglalkozni, hanem amennyi karaktert beütök annyi helyet foglaljon folyamatosan, uhh ez még át kell gondolni.
ArgumenException: A megadott DependencyObject nem ehhez a Freezable elemhez tartozó környezet. Paraméter neve: context
:oO Mi a???
   
HomeGnome - Szerkesztő | 2919 hsz       Online status #152919   2011.05.29 08:40 GMT+1 óra  
Idézet
Asylum :
A +1 a '\0' miatt kell igen, de nem a beolvasás hanem a késöbbi felhasználás miatt (c-style string).


De ha pascal-style string, akkor is +1 byte, mert az tárolja a sztring hosszát..
Na jó, ez már túl erőltetett poén volt.

Klikk, a JF.hu bulvárlap.
Klikk #6 WIP: 30% (Kuz, sade, ramoryan...)
   
Wolfee - Törzstag | 1336 hsz       Online status #152918   2011.05.29 08:26 GMT+1 óra  
Idézet
Joga :
mivel a '\0' egy karakter ezért azt a +1-et is sizeoffal kell szorozni, az más kérdés, hogy a sizeof char az esetek 99%-ában 1


nem 99%, hanem szabvány szerint 1

ezt a sizeof(char*)-t meg sürgősen felejtsd el, mert senki nem mondja meg neked, hogy melyik rendszeren mekkora a pointer.
FZoli jóváhagyásával XD

   
HomeGnome - Szerkesztő | 2919 hsz       Online status #152898   2011.05.28 18:02 GMT+1 óra  
Nem egészen értem, hogy a SIZE-ot miért nem adod át a ReadLine-nak, ha viszont konstans, akkor meg minek a dinamikus memóriafoglalással bohóckodni?

Klikk, a JF.hu bulvárlap.
Klikk #6 WIP: 30% (Kuz, sade, ramoryan...)
   
Joga - Törzstag | 1791 hsz       Online status #152897   2011.05.28 17:38 GMT+1 óra  
mivel a '\0' egy karakter ezért azt a +1-et is sizeoffal kell szorozni, az más kérdés, hogy a sizeof char az esetek 99%-ában 1
(ಠ ›ಠ) Stewie!

   
Bukta - Tag | 308 hsz       Online status #152896   2011.05.28 17:07 GMT+1 óra  
Jó tudom, h kell a \0 a végére az a képlet (6*4-1) csak tapasztaltam, de mind1 me máshonnét fúj a szél. Még néhány teszt után már teljesen bebutult főleg sizeof(char*) esetén volt, hogy 400 karakter utan lett kivétel aztán 350nél aztán 542nél ugy, semmit se változtattam. Aztán gondoltam most már érdemes lenne megnézni, hogy mit reagál akkor, ha kiteszem a main végére a free(p)-t. És így már jó lett. Több futtatáskor is ugyanaz jött ki a jó képlettel:
sizeof(char) * SIZE + 1
1*4+1="1234"
vagy (Asylum kedvéért):
sizeof(char*) * SIZE + 1
4*4+1="123456789abcdefg"
ArgumenException: A megadott DependencyObject nem ehhez a Freezable elemhez tartozó környezet. Paraméter neve: context
:oO Mi a???
   
Asylum - Törzstag | 5444 hsz       Online status #152895   2011.05.28 16:15 GMT+1 óra  
A +1 a '\0' miatt kell igen, de nem a beolvasás hanem a késöbbi felhasználás miatt (c-style string).
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Joga - Törzstag | 1791 hsz       Online status #152894   2011.05.28 16:14 GMT+1 óra  
nem kivonni, hanem hozzáadni kell az egyet, hogy kiférjen a záró '\0' karakter

Szerk:
Ez az Assylum kicsit durva véleménynyílvánítás
(ಠ ›ಠ) Stewie!

   
HomeGnome - Szerkesztő | 2919 hsz       Online status #152893   2011.05.28 16:05 GMT+1 óra  
sztem van valami bájtigazítás / minimális lapméret, azért 24...

Klikk, a JF.hu bulvárlap.
Klikk #6 WIP: 30% (Kuz, sade, ramoryan...)
   
Asylum - Törzstag | 5444 hsz       Online status #152892   2011.05.28 15:59 GMT+1 óra  
Idézet
Bukta :
Assylum:



És akor mért lepődsz meg azon, hogy a program se tudja mit akarsz?
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Bukta - Tag | 308 hsz       Online status #152891   2011.05.28 15:56 GMT+1 óra  
Nah megszületett az eredmény és Joga nyert thx
csak azt fura, hogy erre:
Kód:
char *p = (char*)malloc(sizeof(char) * 4);

ez a képlet jó:
6 * 4 - 1 -> sizeof(char) * méret - 1 alias 23. 24 karakternél már kilép hibával. Pedig a sizeof(char) az 1 bájt és akk az lenne a logikus, hogy 1*4-1.
A 6*SIZE-1 tesztelésből jott ki. De mért 6?
A sizeof(char*) amugy 4 bájt.
Assylum: az egy char mutató mérete bájtban. De nem tom mért azt irtam oda .
A (ch != -1 || ch != 0) rész nem tom már mért van ott régebben irtam a ReadLine-t...
ArgumenException: A megadott DependencyObject nem ehhez a Freezable elemhez tartozó környezet. Paraméter neve: context
:oO Mi a???
   
gaborlabor - Moderátor | 4449 hsz       Online status #152888   2011.05.28 15:27 GMT+1 óra  
Nem, mert bájtban adja vissza a méretet.
A pointer meg jó eséllyel 4 vagy 8 bájtos egy mai pc-n.

   
bit.0x8000 - Törzstag | 574 hsz       Online status #152886   2011.05.28 15:22 GMT+1 óra  
Nem lehet, hogy ez 32-t, vagy 64-et ad vissza?
   
Asylum - Törzstag | 5444 hsz       Online status #152858   2011.05.28 13:17 GMT+1 óra  
Kód:
sizeof(char*)


Ha megmondod ez mi, megmondom mi a hiba
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Joga - Törzstag | 1791 hsz       Online status #152857   2011.05.28 13:15 GMT+1 óra  
Kód:
char *p = (char*)malloc(sizeof(char*));

Ennek a sornak nincs értelme

ehelyett:
Kód:
char *p = (char*)malloc(sizeof(char) * (maxkarakter + 1));

vagy
Kód:
char p[maxkarakter + 1]


Szerk.:
while (ch != '\n' && (ch != -1 || ch != 0));
ez a kifejezés is furcsa
ez a része: (ch != -1 || ch != 0) mindig teljesül
(ಠ ›ಠ) Stewie!

   
Bukta - Tag | 308 hsz       Online status #152856   2011.05.28 13:03 GMT+1 óra  
Lenne egy C-s kérdésem ezzel a kóddal kapcsolatba:
Kód:
void ReadLine(char *s)
{
char ch;
int counter = 0;
do
{
ch = (char)getchar();
if (ch !='\n')
s[counter]=ch;
counter++;
} while (ch != '\n' && (ch != -1 || ch != 0));
s[counter-1] = '\0';
}
void main()
{
        char *p = (char*)malloc(sizeof(char*));
ReadLine(p);
}

Mért van az, hogy csak 23 karaktert képes beszedni?
a Disassembly itt állt meg:
Kód:
76FCE9F9 CC                   int         3 
ArgumenException: A megadott DependencyObject nem ehhez a Freezable elemhez tartozó környezet. Paraméter neve: context
:oO Mi a???
   
gopher - Törzstag | 496 hsz       Online status #152789   2011.05.27 10:22 GMT+1 óra  
Na, akkor jöhet a highscore/user profile-ok/mentés/betöltés, és lassan kész lesz a stuff
   
Pretender - Törzstag | 2498 hsz       Online status #152788   2011.05.27 10:17 GMT+1 óra  
igazán nincs mit megnéztem azt is, amit linkeltél:
"GetUserDir(): C:\Users\uh102\AppData\Roaming" a log első sora

   
gopher - Törzstag | 496 hsz       Online status #152787   2011.05.27 10:14 GMT+1 óra  
Hoppáréráré Köszi! %appdata% azt adja ami kell nekem.

A biztonság kedvéért megnéznéd nekem légyszi? (Újból feltettem IDE)

Szerk: aztán amint lesz új vinyóm, inkább Win7-et teszek fel majd én is
   
Pretender - Törzstag | 2498 hsz       Online status #152783   2011.05.27 10:10 GMT+1 óra  
ez nálam (win7) működik: http://www.vbforums.com/showthread.php?t=501151
persze lehet, hogy van ennél jobb megoldás is

   
gopher - Törzstag | 496 hsz       Online status #152781   2011.05.27 09:57 GMT+1 óra  
Kezdek morci lenni. Kellene nekem a user könyvtárának elérése. Mivel nem platform független a cucc, ezzel oldottam meg (kell hozzá a sdl_syswm.h és az shlobj.h) :

Kód:
SHGetFolderPath(NULL, CSIDL_APPDATA, NULL, 0, path)


Viszont ITT azt olvasom, hogy Vista-ban (és Windows 7-ben), már az SHGetKnownFolderPath-et kéne használni, de, ha ezt beírom, nem ismeri a functiont.

WinXP-t, Code::Blocks-ot és SDL-t használok, szóval írhatják nekem, hogy szedjem le a legújabb Platform SDK-t, nem nekem való

Mit lehet ezzel csinálni?

Szerk: vagy ez ugyanúgy működik Vista/Win7 alatt is?

Akinek Win7-je van, megtenné nekem, hogy elindítja az INNEN letölthető stuffot, és megnézné az első sorát a létrehozott log.txt-nek, hogy a megfelelő elérési útvonalat adja neki? (Lécci ) Nálam pl.: C:\Documents and Settings\goph-R\Application Data

Ezt a hozzászólást gopher módosította (2011.05.27 10:10 GMT+1 óra, ---)
   
Dookle - Tag | 478 hsz       Online status #152772   2011.05.27 01:23 GMT+1 óra  
Na megoldódott a probléma... Matzi-nak volt igaza . Elcsúszott 1 int -et . Pechem volt mert pont úgy jött ki a hibás lépés hogy a vizuális rész jó lett de egy csomó más "nemlátható" dolog teljesen rossz volt (pár optional adat) aztán 2 köbméter kávé + 14785 óra debugolás után meglett...Minden esetre perfect működik .
És lecseréltem a deklarálásokat is ahogy Asylum javasolta hogy még perfectebb legyen
STEVIE RAY VAUGHAN FOREVER !!!!!

http://pinkcatgames.ucoz.com/
   
Asylum - Törzstag | 5444 hsz       Online status #152648   2011.05.25 18:49 GMT+1 óra  
Igen, eggyel nagyobb tömböt foglalsz és az utolso karaktert beállitod \0-ra (igy lesz zero terminated string).
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
bit.0x8000 - Törzstag | 574 hsz       Online status #152640   2011.05.25 16:53 GMT+1 óra  
Idézet
Dookle :
Igen az mind úgy van a kódban .csak itt írtam el.Elnézést


Lehet ám szerkeszteni a hozzászólást...

A read után valahol visszaállítod a pozíciót a fájl elejére?
   
Dookle - Tag | 478 hsz       Online status #152639   2011.05.25 16:51 GMT+1 óra  
Idézet
Asylum :
1) az index többes száma indices
2) az objData-t deklaráld a cikluson kivül
3) a lezáró \0 karakternek nem foglalsz helyet (és nem is irod bele)
4) nem hatékony 50 szer allokálni és deallokálni, foglalj le elöre egy tömböt (max filenévhossz pl.)




a 3. Pont alatt írt problémara gyanakszom . Ez akkor objData.nameLenght + 1 lenne ?
STEVIE RAY VAUGHAN FOREVER !!!!!

http://pinkcatgames.ucoz.com/
   
Dookle - Tag | 478 hsz       Online status #152636   2011.05.25 16:44 GMT+1 óra  
Éppen az a bajom hogy nem csúszik el, mert a modell tökéletesen megjelenik (1 hiányzó textúrával) minden pontosan a helyén van .

valahol a new[] vagy delete[] - nél keveredhet el a dolog, de már semmi ötletem sincs.

valamint lehet hogy a beolvasás

Kód:
oFile.read( (char*) fileName  , objData.nameLenght );


sem szabályos így ...

bit.0x8000 :
Igen az mind úgy van a kódban .csak itt írtam el.Elnézést
STEVIE RAY VAUGHAN FOREVER !!!!!

http://pinkcatgames.ucoz.com/
   
Asylum - Törzstag | 5444 hsz       Online status #152635   2011.05.25 16:43 GMT+1 óra  
1) az index többes száma indices
2) az objData-t deklaráld a cikluson kivül
3) a lezáró \0 karakternek nem foglalsz helyet (és nem is irod bele)
4) nem hatékony 50 szer allokálni és deallokálni, foglalj le elöre egy tömböt (max filenévhossz pl.)
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
bit.0x8000 - Törzstag | 574 hsz       Online status #152632   2011.05.25 16:34 GMT+1 óra  
Az első read végére nem kéne egy pontosvessző?
A második read-ben minek a 'sizeof'? ('sizeof (objData.nameLenght)' )
   
Matzi - Szerkesztő | 2519 hsz       Online status #152631   2011.05.25 16:25 GMT+1 óra  
Nyilván valahol elcsúszik a beolvasás, és nem onnan olvasol másodjára, ahonnan kellene.
If your game idea starts with the story it’s not a game idea.
Stories in games are optional.
   
Dookle - Tag | 478 hsz       Online status #152630   2011.05.25 16:18 GMT+1 óra  
ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ Meg fogok bolondulni !!!!!!! 2 napja ezzel szenvedek! Mi a gond ezzel ?!!

Kód:
for (int indexes=0; indexes < objects.count; indexes++)
{
       CObjectData objData;
       
        oFile.read(reinterpret_cast<char*>  (&objData) , sizeof (CObjectData) )
       
        char * fileName = new char [objData.nameLenght];

        oFile.read( (char*) fileName  , sizeof (objData.nameLenght) );

        cTexture * texture = textureLoad(fileName);
        delete []  fileName ;
       // bla bla..
}


Tehát egy bináris fileból olvasok be memblockokat .A betöltött block (objData) tartalmazza a bináris fileban a textúra nevének a hosszát .A hossz szerint létrehoz egy char tömböt és ebbe beolvassa a textúra nevét a fileból .Működik is amikor a for ciklus ELŐSZÖR fut le. be tölti a textúrát tökéletesen. Viszont ! Amikor a ciklus másodszor fut le ,a beolvasott textúra neve összevissza van keverve + tele van mindenféle kriksz-kraksz karakterekkel (sőt még az első ciklusban beolvasott textúra neve is benne van).
Kérdés : Amikor a ciklus először fut le miért olvassa a be a textúra nevét rendesen a fileból , és miért nem amikor másodszor , esetleg többször fut le ????

Ez egy saját készítésű modell betöltö része.Az egész modell betőltő tökéletetesen működik , csak ezzel szívok már két napja !!! Bizisten meg fogok bolondulni

Any idea ? Köszönöm előre is !
STEVIE RAY VAUGHAN FOREVER !!!!!

http://pinkcatgames.ucoz.com/
   
Asylum - Törzstag | 5444 hsz       Online status #151990   2011.05.14 11:54 GMT+1 óra  
Az STL-ben sem const-ok. A const csak azt jelenti, hogy az objektumon nem változtat, irok én neked olyan const metódust ami a fájlt viszont megváltoztatja Szóval ez nem valós probléma.
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Wolfee - Törzstag | 1336 hsz       Online status #151988   2011.05.14 00:53 GMT+1 óra  
Idézet
Asylum :
Idézet
Wolfee :
és így a kecske is jóllakott, és a káposztából is maradt.



Asylum pedig orrbavág mindjárt, mert ha a mutable kulcsszot kell használnod az egy óriási tervezési hibára utal


beszélgettem az egyetemen is emberekkel, és találtunk egy valós problémát:
File handler osztály, amiben az open, read, close függvények constok (mivel ugye nem változtatnak a file-on), de a többszálú program miatt kell használni mutexet az erőforrás kisajátítására -> a mutexnek mutable-nek kell lennie.
FZoli jóváhagyásával XD

   
fpeti - Törzstag | 1290 hsz       Online status #151987   2011.05.13 23:03 GMT+1 óra  
Idézet
syam :
Vehehe... halit - kősó - nátrium-klorid - NaCl


Az bevezetőben mondta a fickó, hogy készüljünk fel az efféle poénkodásra.
   
syam - Törzstag | 1491 hsz       Online status #151983   2011.05.13 22:38 GMT+1 óra  
Vehehe... halit - kősó - nátrium-klorid - NaCl
alias aalberik
   
fpeti - Törzstag | 1290 hsz       Online status #151981   2011.05.13 21:58 GMT+1 óra  
Nézem ezt a videót a Google Native Cliens cumójáról, hogy lesz hozzá VS támogatás is (remélem EE verzióhoz is).
NaCl

Úgy néz ki, mintha pont játékokra találták volna ki, ami jó dolog.
Kicsit bonyolultnak tűnik, ahogy megpróbálják megakadályozni, hogy a natív kód nehogy kitörjön a homokozóból, de remélem sikerül nekik. Nem lenne rossz egy ilyen multiplatform böngésző alapú cucc, ami ráadásul full gépikódot futtat, és gpu-hoz és teljes hozzáférése van.
Több architektúrára is lehet fordítani, és a megfelelő fut.
.. de kicsit overkill szaga van valahogy, igazából nem teljesen értem, miért is foglalkoznak ezzel ennyit. (a Wave sorsára juthat könnyen - kivéve ha lesz rá pár jó gáma)
szerk:
muhaha 44:19-él kifagy élőben a cucc

Ezt a hozzászólást fpeti módosította (2011.05.13 22:05 GMT+1 óra, ---)
   
Kuz - Törzstag | 4455 hsz       Online status #151823   2011.05.11 11:15 GMT+1 óra  
Nem mondtam, hogy később nem ez a kód fog majd egy vmmmo-ban dolgozni.
A memóriám már nem a régi. És ráadásul még a memóriám sem a régi...
Az élet attól szép, hogy bármi megtörténhet. És attól szar, hogy meg is történik...
Ha az egyik szinkronúszó megfullad, mit csinál a többi???

   
HomeGnome - Szerkesztő | 2919 hsz       Online status #151822   2011.05.11 11:11 GMT+1 óra  
Nyilván azt a megoldást választod, ami számodra a legmegfelelőbb!

Egyébként no offense, csak én sose fogom megérteni, hogy minek ágyúval verébre lőni.. Persze ha az operation:cooperation -t átírod szöveges kalandjátékká, akkor már minden világos, egyébként meg nemtom minek 100 sztringet dinamikusan menedzselni, nehogy még a végén több felesleges memcsit foglaljanak, mint pl a játék ikonja... (vagy akár maga a sztringeket menedzselő kód)..

szerk.: oké, lehet bal lábbal keltem, és csak magamban morgok, szóval nehogy komolyan vedd amiket összeirkálok!

Ezt a hozzászólást HomeGnome módosította (2011.05.11 11:35 GMT+1 óra, ---)

Klikk, a JF.hu bulvárlap.
Klikk #6 WIP: 30% (Kuz, sade, ramoryan...)
   
Asylum - Törzstag | 5444 hsz       Online status #151821   2011.05.11 11:10 GMT+1 óra  
Idézet
Pretender :
tényleg, ha már itt tartunk, akkor olyan pár száz elem esetén melyikben gyorsabb keresni? std::map-ben, vagy std::vector-ban, (a lentebbi megoldással)?



keresni -> map logaritmikus, vector lineáris
cimezni -> map logaritmikus, vector egy lépés
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Kuz - Törzstag | 4455 hsz       Online status #151819   2011.05.11 10:53 GMT+1 óra  
Nem írok mmorpg-t, de ha már úgyis ezzel a <szokásos vélemény> szenvedek, miért ne próbáljam meg a számomra lehető legjobb megoldással megcsinálni?
A memóriám már nem a régi. És ráadásul még a memóriám sem a régi...
Az élet attól szép, hogy bármi megtörténhet. És attól szar, hogy meg is történik...
Ha az egyik szinkronúszó megfullad, mit csinál a többi???

   
HomeGnome - Szerkesztő | 2919 hsz       Online status #151817   2011.05.11 10:24 GMT+1 óra  
Ja, localization mindjárt jobban hangzik, a ResourceManager alapján én az összes matériát (textúrákat, hangokat, stb..) kezelő valamire asszociáltam..
Szóval nálam a beolvasás része txt-ből van, de a kulcs alapján kereséses dologról inkább mélyen hallgatnék.. Mondjuk Kuz nyilván mmorpg-t ír, hogy 5000 key-value párja lesz, meg timestamp meg minden kutyafüle is kell bele neki..
Szokták egyébként a sztringeket xml-ben is tárolni, akkor csak xml beolvasó kell, editor meg ugye van pár.

Klikk, a JF.hu bulvárlap.
Klikk #6 WIP: 30% (Kuz, sade, ramoryan...)
   
syam - Törzstag | 1491 hsz       Online status #151816   2011.05.11 10:19 GMT+1 óra  
Én luaval oldom meg mindezt - az pedig támogat asszociatív tömböt, de máshogyan is meg lehet oldani vele.
alias aalberik
   
Pretender - Törzstag | 2498 hsz       Online status #151814   2011.05.11 10:14 GMT+1 óra  
tényleg, ha már itt tartunk, akkor olyan pár száz elem esetén melyikben gyorsabb keresni? std::map-ben, vagy std::vector-ban, (a lentebbi megoldással)?

   
Asylum - Törzstag | 5444 hsz       Online status #151813   2011.05.11 10:07 GMT+1 óra  
Ennek localization a böcsületes neve és a szabványos c++-ban nincs rá túl sok támogatás. A .netes c++ hátrányait meg te is tudod.

Hirtelen ezt találtam:
http://www.lingobit.com/solutions/articles/c-localization.htm

Én természetesen irnék egy saját progit ami valamilyen egyszerü nyelv alapján legenerál egy header fájlt amiben

Kód:
#define MENU_TITLE      0
#define MENU_OPTION_0   1


stb. van, illetve egy kulcs-érték tömböt tartalmazo fájlt amit futási idöben lehet cimezni ezekkel a define-kkel (nyilván a tömböt beolvasva). Nem egy nehéz dolog.
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Kuz - Törzstag | 4455 hsz       Online status #151812   2011.05.11 10:04 GMT+1 óra  
Hát én maradnék a beépített resource kezelésnél.

Pret: nem, ennyi a funkciója, szöveget akarok kulcs alapján kikeresni. De lehet amúgy, hogy ilyen jellegű lesz majd a megoldás, megspékelve annyival, hogy cache-szerűen lesznek benne az adatok (tehát nem nyalok fel 5000 key-value párt egyben, csak azt, amit éppen használnom kell, és ellátom őket egy élettartammal is, hogy amit meg betöltöttem, de rég használtam, azt törlöm).
A memóriám már nem a régi. És ráadásul még a memóriám sem a régi...
Az élet attól szép, hogy bármi megtörténhet. És attól szar, hogy meg is történik...
Ha az egyik szinkronúszó megfullad, mit csinál a többi???

   
Pretender - Törzstag | 2498 hsz       Online status #151811   2011.05.11 10:04 GMT+1 óra  
én erre szerintem olyasmit csinálnék, hogy vezetnék egy (ha van hozzá editor akkor bináris, ellenkező esetben szöveges) fájlt.
Csinálok egy ilyen ResManager osztályt (esetleg singleton mintával, ha szükséges), amiben betöltöm magát a lang. file-t. Az egész egy std::map, vagy egy egyszerű struct lista lenne
Kód:
struct Valami
{
    std::string key;
    std::string value;
};
class ResManager
{
    std::vector<Valami> cuccok;
};

Igazából csak ott számít, hogy ez most std::map, vagy struktúrából készült lista, hogy mennyi az elemszám, ugyanis nem mindegy a keresési idő (gondolom )

Ezután a get szimplán annyi lenne, hogy (ebben az esetben) megkeresem az adott key-ű elemet, és visszaadom a value értékét pl.
Kód:
inline const std::string Get(const std::string& p_Key)
{
    for (int i = 0; i != cuccok.size(); i++)
    {
        if (cuccok[i].key == p_Key)
            return cuccok[i].value;
    }

    return "nincsilyenkey"; //vagy akármi
}

Nyilván std::map esetén nem így néz ki a keresés

Vagy lenne valami más funkciója is, vagy szimplán félreértettem?

szerk.:
Látom HG is valahogy hasonlóan oldotta meg (félreértés ne essék, most írtam a kódot, nekem ilyenem nincs)

   
HomeGnome - Szerkesztő | 2919 hsz       Online status #151810   2011.05.11 10:02 GMT+1 óra  
Jóóó, hát az én megoldásom parasztosan eccerű, egy sima szöveges fájlban vannak a kulcsok és a szövegek egymáshoz rendelve (lang_eng.txt), ebből töltöm fel az elején a sztringeket. A setup progiban pedig ki lehet választani a nyelvet (ezt a .cfg-be menti), és így fogja a megfelelő lang_***.txt -t megnyitni programindításkor. Persze lehetne akár futás közben is mondjuk az options menüben nyelvet váltani, de minek bonyolítsam.. Meg nem csak sztringek vannak így, hanem pl a könnyebb paraméterezhetőség érdekében konstansok is (parameters.txt)..
Kódot azt inkább nem mutatok, nehogy kihulljon tőle a hajad..

Klikk, a JF.hu bulvárlap.
Klikk #6 WIP: 30% (Kuz, sade, ramoryan...)
   
Kuz - Törzstag | 4455 hsz       Online status #151807   2011.05.11 09:42 GMT+1 óra  
Muti-muti-muti.
A memóriám már nem a régi. És ráadásul még a memóriám sem a régi...
Az élet attól szép, hogy bármi megtörténhet. És attól szar, hogy meg is történik...
Ha az egyik szinkronúszó megfullad, mit csinál a többi???

   
HomeGnome - Szerkesztő | 2919 hsz       Online status #151805   2011.05.11 09:23 GMT+1 óra  
Bírom ezt a (számomra) kínai csevegést, aztán most meg kiderül, hogy már rég megcsináltam ezt az engine-emben..

Klikk, a JF.hu bulvárlap.
Klikk #6 WIP: 30% (Kuz, sade, ramoryan...)
   
Frissebbek | Korábbi postok
[1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [15] [20] [25] [30] > 35 < [40] [45] [50] [55] [60] [65] [70] [75] [80] [85] [90] [95] [100] [105] [110] [115] [120] [125] [130] [135] [140] [141]