Mala pomoc u c

1

Mala pomoc u c

offline
  • Pridružio: 15 Jul 2009
  • Poruke: 150

Pozdrav! Kako ovo da odradim, da cita iz fajla i ponovo definise MENU_TEXT_COLOR? Nesto sam pokusao ali sam pocetnik u c pa malo teze kontam, hvala puno!

#define MENU_TEXT_COLOR 000,191,255 void menu_text_color(void) {    char buf[12];    int fd;    ssize_t nbytes;    fd = open("/res/images/menu.txt", O_RDONLY);    if (fd >= 0) {       nbytes = read(fd, buf, sizeof(buf) - 1);       close(fd);       if (nbytes >= 0)          buf[nbytes] = '\0';       if (nbytes == 11) {          #undef MENU_TEXT_COLOR          #define MENU_TEXT_COLOR (char)strndup(buf, 3), (char)strndup(buf+4, 3), (char)strndup(buf+8, 3)       }    } }



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • soxxx 
  • Prijatelj foruma
  • Pridružio: 25 Maj 2005
  • Poruke: 1482
  • Gde živiš: Gracanica, Kosovo

Imas gresaka, najbolje da prvo procitas malo, pocni ovde (pogledaj deo pod 12. Datoteke):

http://www.mycity.rs/C/Osnovni-koncepti-programiranja-kroz-C-2.html

Pa onda sledece dve stranice:

http://en.wikipedia.org/wiki/C_file_input/output
http://en.wikibooks.org/wiki/C_Programming/File_IO#Standard_Streams

Tu imas navedene primere pravilnog otvaranja fajla, i pisanja/citanja iz njega.
Ako ti je problem engleski, onda baci pogled ovde na stranicu naseg kolege koji je vredno sakupio sve ovo:

http://tutoriali.org/C.html



offline
  • Pridružio: 12 Okt 2010
  • Poruke: 10904

a,jel' ima nesto slicno za c++?

offline
  • Pridružio: 15 Jul 2009
  • Poruke: 150

Napisano: 21 Jan 2012 11:20

Hvala ti za tutorijale, super su! Mada i dalje trazim kako ovo da uradim:
define MENU_TEXT_COLOR (char)strndup(buf, 3), (char)strndup(buf+3, 3), (char)strndup(buf+6, 3)

Ne kontam dali MENU_TEXT_COLOR , koji je u stvari skup od 3 char r,g,b, dali mogu da ga izmenim kao na primer MENU_TEXT_COLOR[0][3] = "000"; MENU_TEXT_COLOR[1][3] = "191"; MENU_TEXT_COLOR [2][3] = "255";

ili sto najvaznije od svega, i sto hocu da naucim, a ne mogu nigde na netu da nadjem, kako da ponovo "define" u funkciji, konkretno u mom "dirty" primery? I ako ti nije problem da mi kazes gde imam gresku, mislis na ovo O_RDONLY ili?

offline
  • Pridružio: 19 Maj 2011
  • Poruke: 297

Kod sto si postavio u prvom postu je pogresan na mnogo nacina. Evo ti zamena:

typedef unsigned char byte; typedef struct {    byte r;    byte g;    byte b; }RGB_COLOR; RGB_COLOR MENU_TEXT_COLOR = { 0, 191, 255 }; void menu_text_color(void) {    const size_t buffer_sz = 12;    char buf[buffer_sz];    buf[buffer_sz - 1] = '\0';    int fd;    size_t nbytes;    fd = open("/res/images/menu.txt", O_RDONLY);         // ovde u zavisnosti koje vrednosti vraca open funkcija         // predpostavjam da je sve iznad 0 proslo dobro    if(fd > 0)    {       nbytes = read(fd, buf, buffer_sz);       close(fd);       if(nbytes > 0)       {          char* end;          MENU_TEXT_COLOR.r = strtoul(buf, &end, 10);          MENU_TEXT_COLOR.g = strtoul(end, &end, 10);          MENU_TEXT_COLOR.b = strtoul(end, 0, 10);       }    } }

Pod uslovom da je text fajl u formi:

Citat:
12 4 136


e sad, gde god bi pre koristio MENU_TEXT_COLOR, npr. umesto:

...color( MENU_TEXT_COLOR );

koristio bi ovako:

...color( MENU_TEXT_COLOR.r, MENU_TEXT_COLOR.g, MENU_TEXT_COLOR.b );

offline
  • Pridružio: 15 Jul 2009
  • Poruke: 150

Super ti je cod, hvala ti, samo nije poenta da menjam kompletan sourc i menjam svuda MENU_TEXT_COLOR da bi stavio MENU_TEXT_COLOR.r b g, poenta je u tome kao sto sam i pitao dali moze da se ponovo definise MENU_TEXT_COLOR unutar funkcije sa "#define" a da ne editujem celokupnan source?

offline
  • Pridružio: 19 Maj 2011
  • Poruke: 297

Ne mozes da menjas "define" onako kako si ga ti zamislio jer je to "compile time" konstanta, treba unapred da znas vrednosti.

Ovaj deo koda:
#define MENU_TEXT_COLOR 000,191,255
Da li si ti ovo definisao ili je u nekom "third party" kodu, odnosno deo je neke biblioteke koje koristis?

offline
  • Pridružio: 15 Jul 2009
  • Poruke: 150

To je deo biblioteke a ja hocu da napravim mogucnost da "user" moze da menja boju fonta tim sto ce da doda fajl sa rgb vrednostima, a posto sourc koji radim nije public moram to da napravim nekako Smile
Ovde mozes da vidis o cemu se radi!

offline
  • Pridružio: 19 Maj 2011
  • Poruke: 297

Ufff, daj mi konkretan link gde mogu da skinem taj SDK da bi mogao da vidim biblioteku sa source kodom i dokumentacijom.

offline
  • Pridružio: 15 Jul 2009
  • Poruke: 150

Ok, github.com/j-r0dd/android_bootable_recovery/blob/gingerbread/ui.c to je fajl gde je definisan text_color a funkcija gr_color() izgleda ovako
void gr_color(unsigned char r, unsigned char g, unsigned char b, unsigned char a) {     GGLContext *gl = gr_context;     GGLint color[4];     color[0] = ((r << 8) | r) + 1;     color[1] = ((g << 8) | g) + 1;     color[2] = ((b << 8) | b) + 1;     color[3] = ((a << 8) | a) + 1;     gl->color4xv(gl, color); }
Poenta je u tome sto gledam nekako da napravim to da user moze da definise sam sebi boju fonta pomocu fajla a da ne menjam ovako vek kompliovan sourc!

Ko je trenutno na forumu
 

Ukupno su 1106 korisnika na forumu :: 30 registrovanih, 7 sakrivenih i 1069 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: 8u47, A.R.Chafee.Jr., bladesu, BORUTUS, Bubimir, bufanje, Duh sa sekirom, FOX, goxin, GveX, havoc995, Istman, kinez88, kybonacci, Lucije Kvint, menges, milenko crazy north, naki011, pedja.st, pera bager, sevenino, Sir Budimir, Sirius, Stanlio, styg, uruk, virked, VP6919, |_MeD_|, 223223