ca y est j'y arrive. Bon reste plus qu'appliquer l'exemple au cas proposé...
bon ben ca marche... Ca fait environ 2ko (c trop je pense) mais c fait à la bourrin
-cré contact par défaut
-ajoute un contact
AAAARRRRRGGGGG, pour vérifier que [ESC] est pressé, on utilise bien
_rowread(0xFEFF)&1<<6, alors pourquoi quand je fais
do{
...
}while( !(_rowread(0xFEFF)&1<<6) );
il sort de la boucle quand j'appuis sur la [droite], pas toujours du prmier coup d'ailleurs, je comprend pas, please help...
Probablement parce que tu as oublié de rediriger l'auto-interruption n°5 et/ou l'auto-interruption n°1.
Et arrête d'utiliser des _rowread(0xFEFF)&1<<6! C'est totalement illisible. Utilise _keytest(RR_ESC)!
Pourquoi personne n'utilise-t'il _keytest???
Zeph Le 15/01/2003 à 17:27 Parceque beaucoup passent par le tutorial de Squale, qui indique comment utiliser _rowread, mais pas _keytest. Et puis dans la rubrique C on conseille souvent _rowread, pas keytest.

All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez
par ici :)
ben j'ai regardé la source de C&C et il utilise _rowread, alors pkoi pas, de toute facon mon probleme était le même avec _keytest (j'avais essayé aussi). Il faut absolument redirigé les auto-interruption pour que ca marche ?
Kevin> de toute facon, j'aurais remplacé ces valeurs par des constantes.
Et puis j'ai mis un certain temps à comprendre comment marche et une fois qu'on a compris c plutot simple en fait. Et puis ca permet de faire des test de plusieurs touches à la fois et pas d'une seule, à moins qu'il y ai des options de _keytest que je ne connaisse pas.
Encore et toujours des problèmes... Cette fois ci, je veux effacer un contact, les problèmes, c que soit il réécrit pas sur les données que je veux qu'il écrase, soit il fait planter la calculatrice à l'archivage ou au relancement du programme. Ce que j'essaye de faire, c de copier le bloc de données à conserver et de le déplacer de manière à écraser ce qui doit l'être.
}
}et ca donne ca:
void delete(HSym HS, ptr_uc num, ptr_uc org, fiche f)
{
mem_mod(HS,1);
short isend=(num==change_contact(num, 1));
short istop=(num==change_contact(num,-1));
int size=f_eval(f),i;
int v_size=((MULTI_EXPR*)HeapDeref(DerefSym(HS)->handle))->Size+2;
int i_size=f_eval(charge_contact(org));
int number=compteur(org,num);
ptr_uc t=org;
if(!isend && !istop)
{
for(i=0;i<number-1;i++)
i_size+=(int)f_eval(charge_contact(t=change_contact(t,1)))-2;
i_size-=f_eval(charge_contact(num));
unsigned char *buffer=malloc(i_size);
memset(buffer,0,i_size);
memcpy(buffer,num+size,i_size);
((MULTI_EXPR*)HeapDeref(DerefSym(HS)->handle))->Size=v_size-size;
HeapRealloc (DerefSym(HS)->handle, ((MULTI_EXPR*)HeapDeref(DerefSym(HS)->handle))->Size);
memcpy(num+2 ,buffer ,i_size);
clrscr();
for(i=0;i<i_size;i++)
{
printf("%c",buffer[i]);
if((i+1)%38==0) printf("\n");
}
ngetchx();
HeapFreePtr (buffer);
HS est un HSym,
ptr_uc un 'unsigned char *'
org pointeur sur la fin du fichier (D9D9/Premier contact)
num pointeur sur le contact à supprimer
memmod déarchive la variable si elle ne l'était pas déjà.
Xeno Le 29/01/2003 à 20:09 Tu veux programmer un C&C?
"Scrutant profondément ces ténèbres, je me tins longtemps plein d'étonnement, de crainte, de doute..."
Edgar Allan Poe
Zeph Le 29/01/2003 à 20:38 cf l'url de sa signature.

All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez
par ici :)
Non, pas le programmer, j'ai déjà dis que je n'ai pas le niveau, alors pour le moment je me contente de modifier l'original programmé par Ty Taylor. Le fichier désigné par le lien post #97 sert juste à montrer la gueule des sprites en 4nvg et l'organisation probable de l'écran de jeu quand j'aurai fini.
Mais pour le moment j'ai un problème d'intégration d'une fonction de recherche de fichiers. Elle marche très bien quand elle est toute seule mais quand je l'intègre à C&C, elle ne fait plus ce qui lui est demandé...
ben non même pas. Mais bon ca va viendre comme qui dirait. D'autant que ces fonctions remplacent les menus (sauf la selction des param. de vitesse,... ) de manière très efficace (enfin je trouve) et la fonction en question est mieux que l'originale. Elle permet de faire la liste de tous les fichiers du type 'OTH' avec une extension particulère sur la calculatrice et de la renvoyer sous forme de chaine. Tu ajoutes une fonction qui cherche le num ou la sous chaine dans cette chaine et tu as l'emplacement exact du fichier, ce qui simplifie la fonction de chargement.
Bah, moi, je trouve bien de commencer par quelque chose d'utile, pas par le 32767ème "Hello, World!".
Je prend note. Mais de toute façon, comme je l'ai déjà dit, si je m'occupe de C&C, c'est par pur plaisir de pourvoir y jouer correctement sur 92+.
ben oui c un peu balèze quand même à faire...
bon une petite question. La fonction fopen (temporaire)) permet-elle l'ouverture de fichier qui ne sont pas dans le répertoire courant en lui passant une chaîne SYMSTR("ici\la") ? J'ai pas vu la réponse dans la doc.
Et je me suis acheté un titre hier...
Au fait, maintenant que j'ai mon propre petit site en ligne, qu'est-ce que vous en pensez ?
[sondage=13291]
Link Le 19/02/2003 à 22:06 Je voterai quand il s'affichera...
J'ai eu le temps de gagner une partie de démineur en mode expert (>5min, je suis fatigué ce soir) et rien...
Les serveurs sont peut-être coupés pendant les vacances...

Maintenant j'ai la flemme de garder une signature à jour sur ce site. Je n'ai même plus ma chaîne Exec sous la main.