30

pkoi tu regardes pas ma source ? ya de la comparaison de chaines, de la copie de chaines etc...
avatar
納 豆パワー!
I becamed a natto!!!1!one!

31

J'ai regardé ta source ! (elle est sur mon bureau d'ailleurs)

Mais y'a trop de trucs dedant... y'a 50 variables il faut à chaque fois que je remonte pour savoir de quelle types elles sont, etc...

Pour l'instant mon truc n'est pas compliqué, il detecte les espaces et la fin d'une chaine (en vue d'un découpage). Mais dès que j'aborderais des trucs un peu plus poussés ta sources va bcp me servir cool
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

32

c'est exactement ce que je fais, je cherche un espace, je copie le mot ds une chaine temporaire et je l'affiche caractere par caractere, et si la longueur de chaine depasse l'ecran, je saute un ligne !! etc...
avatar
納 豆パワー!
I becamed a natto!!!1!one!

33

Bah oué j'ai l'algo tout pret, avec l'affichage des smileys et tout, mais en Basic...
Par contre ce que je comprends pas c que ton code a l'air d'être monstrueusement énorme eek
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

34

ben il est pas optimisé, mais la boucle d'affichage ne fait que ça:
for (a=1;a<(*dlg1[0])*2+1;a+=2)
 {
  init_box();
  strcpy (nom, dlg1[a]);
  strcat (nom, ":")
  b=DrawStrWidth(nom, F_6x8)+7;
  d=7;
  strcpy (buffer, dlg1[a+1]);
  f=strlen(buffer);
  //ptr=buffer;
 gl_put_medium_string(DARK_SCREEN(dscr), 7,  d,nom);
 gl_put_medium_string(LIGHT_SCREEN(dscr), 7,  d,nom);
 e=0;
 while(f>0)
 {
   g=0;
   memset (nom, '',30);
   strncpy(nom,buffer+e,1);
   while(strncmp(buffer+e+g," ",1)!=0 && strncmp(buffer+e+g,"",1)!=0){ strncat(nom,buffer+e+g,1); g++;}
   nom[g+1]='';
   if (g!=0 && b+DrawStrWidth(nom, F_6x8)>=230) {b=7; d+=10; }
   if (strchr (nom, '#')!=0)
   {
    if(strchr (nom, 'w')!=0) gl_wait_a_key();
    if(strchr (nom, 'n')!=0) {b=7; d+=10;}
    if(strchr (nom, 'S')!=0) {gl_put_big_sprite_flip_v(b-1,d-4, &sourire,(BGS *) Temp); b+=16;}
    if(strchr (nom, 'T')!=0) {gl_put_big_sprite_flip_v(b-1,d-4, &triste,(BGS *) Temp); b+=16;}
    if(strchr (nom, 'D')!=0) {gl_put_big_sprite_flip_v(b-1,d-4, &sadique,(BGS *) Temp); b+=16;}
    f-=3;
    e+=3;
   }

   else
   {
   strncpy (&dest[0], buffer+e, 1);
   dest[1]='';
   if(d>=47) {gl_wait_a_key(); init_box(); d=7;}
   gl_put_medium_string(DARK_SCREEN(dscr), b, d,&dest[0]);
   attend(gl_key_pressed()==0?9:1);
   b+=DrawStrWidth(dest, F_6x8);
   e++;
   f--;
   }
avatar
納 豆パワー!
I becamed a natto!!!1!one!

35

Bah oué ça me semble gros quand même... Enfin bon v voir ce que ça va me prendre smile
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

36

Encore un pb sad

Comment on fait pour copier dans une chaine x caractères à partir du rang n ?

J'ai essayé, mais ça marche pas, strncpy(dest+n,chaine_source,x)
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

37

Heu nan en fait ça marche, j'avais soustrait 1 ailleurs (pkoi ???) et ça foirait tout triso
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

38

c normal que ça te parraisse long, ya la detection des smilies
avatar
納 豆パワー!
I becamed a natto!!!1!one!

39

bah le truc à liquid se comprend, mais y'a un peu bcp de choix c'est tout. trisogrin

Bob > tu veux de l'affichage lettre par lettre en C ? prend printf() plutôt, ça te parraitra moins dur pour débuter.

strlen() = longueur du tableau char sans la valeur 0 à la fin de toute chaine.
Non-Webmaster et non-programmeur du site. .Pour tout probleme ou question ,débrouillez vous avec les Webmasters .

«- Pas Moo ! ^^

40

pim> ouga ?
non pas printf !!! gl_put_meduim_string rulez !!!!!!!!!!!!!!!!!
avatar
納 豆パワー!
I becamed a natto!!!1!one!

41

déja pour un affichage en graphique, il faut prendre DrawStr ... qui est plus rapide que printf !

gl_put_medium_stringn connait pas gni

jsute une questrion, pkoi ne pas utiliser le formateur de source .. c utile car on verrais vachement mieux ton code ...oui

42

Peut-être parce qu'il est bogué... grin

Et oui, freka n'a toujours pas réparé le problème qui transforme & en &; ...
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

43

aRf, je pensais que ct fait depuis le tps ... roll

fréka> kesstoufait tongue

44

#38 > Tu t'y connais en manipulation de chaines ?
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

45

Encore une question, on en est plus à ça pres :

Comment extraire la partie d'une chaine comprise entre le caractère A et le caractère B ?
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

46

Ben tu te positionnes au caractère A puis tu fais une boulce jusqu'au caractère B.

47

A la rigueur, un memmove ou memcpy ferait l'affaire.
Moi je verrais plutôt (fonction non-testée) :

J'enlève la fonction elle est fausse sad

48

Non, ça marche pas grin
Je corrige grin

49

Mais pourquoi tu fais pas simplement un memcpy ??

50

C'est moins marrant grin

51

memcpy(chaine+x,y) ça prends à y caractères à partir de x ?
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

52

void *memcpy (void *dest, const void *src, unsigned long len);
wink
memcpy(chaine2,chaine+x*sizeof(char),len*sizeof(char));

53

Oué ça m'oblige à passer par une chaine2 qui va servir une seule fois... Enfin bon c pas grave, merci smile
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

54

Bob > oui, je m'y connais un peu.
Non-Webmaster et non-programmeur du site. .Pour tout probleme ou question ,débrouillez vous avec les Webmasters .

«- Pas Moo ! ^^

55

Bob 64 a écrit :
Oué ça m'oblige à passer par une chaine2 qui va servir une seule fois... Enfin bon c pas grave, merci smile


Tu peux faire comme ça (chaine1 est pointeur sur un char) : memcpy(chaine1,chaine1+x,n);

[cowboy]Test[/cowboy]

56

attention Utilise memmove et pas memcpy si tu copies d'une chaîne vers elle-même!
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

57

void substr(const char *StrSrc, char *StrDest, short Start, short Len)
{
	memcpy(StrDest,StrSrc+(Start-1)*sizeof(char),Len*sizeof(char));
	StrDest[Len-1] = 0;
}

Copie la sous-chaîne de StrSrc définie à partir du Start-ième caractère, de longueur Len, dans la chaîne StrDest (suffisamment grande).

58

pourquoi ?

59

Even when the source and destination blocks overlap, bytes in the overlapping locations are copied correctly (in opposite to memcpy). memmove returns dest.

(documentation de TIGCC)

60

Whow... Tout ça pour remplacer la commande "mid()" du basic tsss
Je sens que ça va être long pour faire mon truc...

Et puis mes problèmes deviennent de plus en plus bas comme niveau sad
Je sais même pas comment on "vide" une chaine, quand je fais strcpy(chaine,"") ou strcpy(chaine,(char*)"") ça plante completement sad

Pim > C'est à dire ? T'as pas des sources interessantes ? grin
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)