Accueil Ti-Gen Foire Aux Questions Chat sur le chan #tigcc sur IRC
Liste des membres Rechercher Aide
Bienvenue Invité !   Se connecter             Mes sujets   
Administrer
0 membre(s) et 1 visiteur(s) actif(s) durant les 5 dernières minutes Utilisateurs actifs : Aucun membre + 1 visiteur
Avant de poster sur le forum, il y a des régles de bases à respecter pour une bonne entente et un respect de tous.
Veuillez lire la charte du forum.
  :: Index » Forum Ti68K » Programmation C » Dialogues (16 réponse(s))
./POST DE DEPART (post n°0)   Marquer comme non lu.
Benjy Ecrit le: Dimanche 4 avril 2004 à 21:34 Déconnecté(e)    Voir le profil de Benjy Envoyer un email à Benjy Visiter le site WEB de Benjy Envoyer un message privé à Benjy  


voila g un prob avec une boite de dialogue je veut faire plusiseur champ mai je c pas comment recupere a chake foi voici mon code

memset(buffer2,0,9);
HANDLE handle = DialogNewSimple (130, 60);
DialogAddTitle (handle, "NEW PASSWORD", BT_OK, BT_CANCEL);
DialogAddRequest (handle, 20, 17, "Pass:", 0, 8, 9);
DialogAddRequest (handle, 20, 27, "nbr(s) d'essai(s):", 0, 2, 3);
if (DialogDo (handle, CENTER, CENTER, buffer2, NULL) == KEY_ENTER)
HeapFree (handle);

mai la ca marche pas aider moi merci :):)
Le langage C y'a pas mieux!!!
    
./Post n°1   Marquer comme non lu.
Kevin Kofler Ecrit le: Dimanche 4 avril 2004 à 22:17 Déconnecté(e)    Voir le profil de Kevin Kofler Envoyer un email à Kevin Kofler Visiter le site WEB de Kevin Kofler Envoyer un message privé à Kevin Kofler  


Le paramètre offset est là pour ça.
Tu alloues un gros buffer:
char buffer[12];
et après tu le répartis en plusieurs chaînes:
DialogAddRequest (handle, 20, 17, "Pass:", 0, 8, 9);
DialogAddRequest (handle, 20, 27, "nbr(s) d'essai(s):", 9, 2, 3);

Et tu peux lire tes chaînes:
char *pass=buffer;
char *nessais=buffer+9;
Membre de l'équipe de TIGCC: http://tigcc.ticalc.org
Mainteneur du portage Linux/Unix de TIGCC: http://tigcc.ticalc.org/linux/
Membre de l'équipe de CalcForge: http://www.calcforge.org:70/

Participez à la reprise de Ti-Gen!
    
./Post n°2   Marquer comme non lu.
Benjy Ecrit le: Lundi 5 avril 2004 à 00:06 Déconnecté(e)    Voir le profil de Benjy Envoyer un email à Benjy Visiter le site WEB de Benjy Envoyer un message privé à Benjy  


g ca mintenant mais dans buffer2 je n'ai que la valeur du password c tout

char *buffer2=malloc(20);
memset(buffer2,0,9);
HANDLE handle = DialogNewSimple (130, 60);
DialogAddTitle (handle, "NEW PASSWORD", BT_OK, BT_CANCEL);
DialogAddRequest (handle, 20, 17, "Pass:", 0, 8, 9);
DialogAddRequest (handle, 20, 27, "nbr(s) d'essai(s):", 9, 2, 3);
if (DialogDo (handle, CENTER, CENTER, buffer2, NULL) == KEY_ENTER)
HeapFree (handle);
Le langage C y'a pas mieux!!!
    
./Post n°3   Marquer comme non lu.
Kevin Kofler Ecrit le: Lundi 5 avril 2004 à 00:34 Déconnecté(e)    Voir le profil de Kevin Kofler Envoyer un email à Kevin Kofler Visiter le site WEB de Kevin Kofler Envoyer un message privé à Kevin Kofler  


Tu n'as apparemment pas lu ma réponse en entier...

Et tu peux lire tes chaînes:
char *pass=buffer;
char *nessais=buffer+9;


Il faut utiliser l'arithmétique de pointeurs comme indiqué ci-dessus.

Et au passage, ce n'est pas malin d'utiliser malloc pour 20 octets.
Membre de l'équipe de TIGCC: http://tigcc.ticalc.org
Mainteneur du portage Linux/Unix de TIGCC: http://tigcc.ticalc.org/linux/
Membre de l'équipe de CalcForge: http://www.calcforge.org:70/

Participez à la reprise de Ti-Gen!
    
./Post n°4   Marquer comme non lu.
Benjy Ecrit le: Lundi 5 avril 2004 à 00:50 Déconnecté(e)    Voir le profil de Benjy Envoyer un email à Benjy Visiter le site WEB de Benjy Envoyer un message privé à Benjy  


si g bein lu mai je lit directement ce kil ya dans buffer2 tou ce kil ya dedans et il n'ya que le pass pas le nb d'essai pk????
Le langage C y'a pas mieux!!!
    
./Post n°5   Marquer comme non lu.
Kevin Kofler Ecrit le: Lundi 5 avril 2004 à 01:11 Déconnecté(e)    Voir le profil de Kevin Kofler Envoyer un email à Kevin Kofler Visiter le site WEB de Kevin Kofler Envoyer un message privé à Kevin Kofler  


Parce que la lecture d'une chaîne de caractères en C s'arrète au premier caractère ''. Il faut donc avancer ton pointeur vers un endroit après ce '' pour pouvoir lire la deuxième chaîne de caractères.
Membre de l'équipe de TIGCC: http://tigcc.ticalc.org
Mainteneur du portage Linux/Unix de TIGCC: http://tigcc.ticalc.org/linux/
Membre de l'équipe de CalcForge: http://www.calcforge.org:70/

Participez à la reprise de Ti-Gen!
    
./Post n°6   Marquer comme non lu.
Benjy Ecrit le: Lundi 5 avril 2004 à 08:02 Déconnecté(e)    Voir le profil de Benjy Envoyer un email à Benjy Visiter le site WEB de Benjy Envoyer un message privé à Benjy  


ben meme avec ca ca marche pas alors pk????? car je veut que tou soit dans buffer2

HANDLE handle = DialogNewSimple (130, 60);
DialogAddTitle (handle, "NEW PASSWORD", BT_OK, BT_CANCEL);
DialogAddRequest (handle, 20, 17, "Pass:", 0, 8, 9);
DialogAddRequest (handle, 20, 27, "nbr(s) d'essai(s):", 10, 2, 3);
if (DialogDo (handle, CENTER, CENTER, buffer2, NULL) == KEY_ENTER)
HeapFree (handle);
strcat (buffer2, buffer2+9);
Le langage C y'a pas mieux!!!
    
./Post n°7   Marquer comme non lu.
Benjy Ecrit le: Lundi 5 avril 2004 à 12:49 Déconnecté(e)    Voir le profil de Benjy Envoyer un email à Benjy Visiter le site WEB de Benjy Envoyer un message privé à Benjy  


pk????
Le langage C y'a pas mieux!!!
    
./Post n°8   Marquer comme non lu.
Kevin Kofler Ecrit le: Lundi 5 avril 2004 à 17:08 Déconnecté(e)    Voir le profil de Kevin Kofler Envoyer un email à Kevin Kofler Visiter le site WEB de Kevin Kofler Envoyer un message privé à Kevin Kofler  


Parce que:
1. Tu as mis offset==10, mais tu ajoutes 9 à ton pointeur.
2. Tu n'as pas le droit d'utiliser strcat avec des buffers qui se chevauchent.

Essaye:
HANDLE handle = DialogNewSimple (130, 60);
DialogAddTitle (handle, "NEW PASSWORD", BT_OK, BT_CANCEL);
DialogAddRequest (handle, 20, 17, "Pass:", 0, 8, 9);
DialogAddRequest (handle, 20, 27, "nbr(s) d'essai(s):", 9, 2, 3);
if (DialogDo (handle, CENTER, CENTER, buffer2, NULL) == KEY_ENTER)
HeapFree (handle);
memmove(buffer2+8,buffer2+9,3);
Membre de l'équipe de TIGCC: http://tigcc.ticalc.org
Mainteneur du portage Linux/Unix de TIGCC: http://tigcc.ticalc.org/linux/
Membre de l'équipe de CalcForge: http://www.calcforge.org:70/

Participez à la reprise de Ti-Gen!
    
./Post n°9   Marquer comme non lu.
Benjy Ecrit le: Lundi 5 avril 2004 à 20:20 Déconnecté(e)    Voir le profil de Benjy Envoyer un email à Benjy Visiter le site WEB de Benjy Envoyer un message privé à Benjy  


ok mai encore un probleme voila g ca pour lire mai g quand j'affiche buffer 2 g deux caractere qui vienne de je c pas ou poursuoi??

char *getvar(const char *var)
{
//Init
short size=0;
ESI e;
SYM_ENTRY *sym;
char *v=0;
sym=DerefSym(SymFind(SYMSTR(var)));
size = ((MULTI_EXPR*) HeapDeref (sym->handle))->Size + 2;
e=HToESI(sym->handle);
v=(char *)GetStrnArg(e);
return v-size+sizeof(v)+3;
}

void _main(void)
{
char *buffer=malloc(11);
char *buffer2=malloc(8);
char *buffer3=malloc(2);
char aff[2];
short b=0;
clrscr();
buffer=getvar("pass");
b=strlen(buffer);
DrawStr(1,1,buffer,A_NORMAL);
ngetchx();
clrscr();
buffer+=1;
strncpy(buffer2,buffer,8);
DrawStr(1,1,buffer2,A_NORMAL);
ngetchx();
clrscr();
buffer+=8;
strncpy(buffer3,buffer,2);
sprintf(aff,"%d",b);
DrawStr(1,1,buffer3,A_NORMAL);
DrawStr(1,12,aff,A_NORMAL);
ngetchx();
}

[EDIT par Kevin Kofler: Désactivé les smileys.]

-Edité le: Lundi 5 avril 2004 à 20:21 par Kevin Kofler-
Le langage C y'a pas mieux!!!
    
./Post n°10   Marquer comme non lu.
Benjy Ecrit le: Lundi 5 avril 2004 à 20:21 Déconnecté(e)    Voir le profil de Benjy Envoyer un email à Benjy Visiter le site WEB de Benjy Envoyer un message privé à Benjy  


a la place des smile c

char *buffer=malloc( 11 );
et
strncpy(buffer2,buffer,8 );
Le langage C y'a pas mieux!!!
    
./Post n°11   Marquer comme non lu.
Kevin Kofler Ecrit le: Lundi 5 avril 2004 à 20:24 Déconnecté(e)    Voir le profil de Kevin Kofler Envoyer un email à Kevin Kofler Visiter le site WEB de Kevin Kofler Envoyer un message privé à Kevin Kofler  


Je ne comprends vraiment pas ce que tu cherches à faire là...
Membre de l'équipe de TIGCC: http://tigcc.ticalc.org
Mainteneur du portage Linux/Unix de TIGCC: http://tigcc.ticalc.org/linux/
Membre de l'équipe de CalcForge: http://www.calcforge.org:70/

Participez à la reprise de Ti-Gen!
    
./Post n°12   Marquer comme non lu.
Benjy Ecrit le: Lundi 5 avril 2004 à 20:28 Déconnecté(e)    Voir le profil de Benjy Envoyer un email à Benjy Visiter le site WEB de Benjy Envoyer un message privé à Benjy  


ben je lit ce kil ya dans le fichier pass creer avec ce que j'ai demander avant mai kan je le lit au niveau de l'endroit ou il ya le password et ben au bout des 8 caractere j'ai deux caractere qui vienne comme ca on ne sai d'ou pk???
Le langage C y'a pas mieux!!!
    
./Post n°13   Marquer comme non lu.
Kevin Kofler Ecrit le: Lundi 5 avril 2004 à 20:37 Déconnecté(e)    Voir le profil de Kevin Kofler Envoyer un email à Kevin Kofler Visiter le site WEB de Kevin Kofler Envoyer un message privé à Kevin Kofler  


Ben, c'est ton deuxième request.
Membre de l'équipe de TIGCC: http://tigcc.ticalc.org
Mainteneur du portage Linux/Unix de TIGCC: http://tigcc.ticalc.org/linux/
Membre de l'équipe de CalcForge: http://www.calcforge.org:70/

Participez à la reprise de Ti-Gen!
    
./Post n°14   Marquer comme non lu.
Benjy Ecrit le: Lundi 5 avril 2004 à 20:40 Déconnecté(e)    Voir le profil de Benjy Envoyer un email à Benjy Visiter le site WEB de Benjy Envoyer un message privé à Benjy  


non il est apres ca c bon mai g deux symboles bizzard tu voit ce que ca peut etre??
Le langage C y'a pas mieux!!!
    
./Post n°15   Marquer comme non lu.
Kevin Kofler Ecrit le: Lundi 5 avril 2004 à 20:42 Déconnecté(e)    Voir le profil de Kevin Kofler Envoyer un email à Kevin Kofler Visiter le site WEB de Kevin Kofler Envoyer un message privé à Kevin Kofler  


Si ton mot de passe fait moins de 8 caractères, il y aura du padding. Mon memmove est mauvais, essaye plutôt:
memmove(buffer+strlen(buffer),buffer+9,3);
Membre de l'équipe de TIGCC: http://tigcc.ticalc.org
Mainteneur du portage Linux/Unix de TIGCC: http://tigcc.ticalc.org/linux/
Membre de l'équipe de CalcForge: http://www.calcforge.org:70/

Participez à la reprise de Ti-Gen!
    
./Post n°16   Marquer comme non lu.
Benjy Ecrit le: Lundi 5 avril 2004 à 21:04 Déconnecté(e)    Voir le profil de Benjy Envoyer un email à Benjy Visiter le site WEB de Benjy Envoyer un message privé à Benjy  


ca fai toujour pareille

HANDLE handle = DialogNewSimple (130, 60);
DialogAddTitle (handle, "NEW PASSWORD", BT_OK, BT_CANCEL);
DialogAddRequest (handle, 20, 17, "Pass:", 0, 8, 9);
DialogAddRequest (handle, 20, 27, "nbr(s) d'essai(s):", 9, 2, 3);
if (DialogDo (handle, CENTER, CENTER, buffer2, NULL) == KEY_ENTER)
{
HeapFree(handle);
b=strlen(buffer2);
memset(buffer2+b,' ',8-b);
buffer2[8]=0;
memmove(buffer+strlen(buffer),buffer+9,3);
Le langage C y'a pas mieux!!!
    
  :: Index » Forum Ti68K » Programmation C » Dialogues (16 réponse(s))
Pages : 1/1     « [1] » »|

.Répondre à ce sujet
Les boutons de code
[B]old[I]talic[U]nderline[S]trikethrough[L]ine Flip Hori[Z]ontallyFlip [V]erticallySha[D]ow[G]low[S]poilerCode [G][C]ite
Bullet [L]istList Item [K] Link [H][E]mail[P]icture SmileysHelp
Couleurs :
Saisissez votre message
Activer les smileys
     

Forum de Ti-Gen v3.0 Copyright ©2004 by Geoffrey ANNEHEIM
Webmaster: Kevin KOFLER, Content Admins: list, Server Admins: Tyler CASSIDY and Kevin KOFLER, DNS Admin: squalyl
Page générée en 40.54ms avec 18 requetes