Ben j'ai réfléchis, à ton post 22, et puis je me dis, franchement, laisse tomber les fopen ! tu verras, ton programme sera plus court (environ 1,5-2 k0 de moins, c'est ce que j'ai eu). Pour te montrer, j'ai modifié ton morceau de code du post 22, ça donne ça :
unsigned char buffer;
char *file;
SYM_ENTRY *sym;
if(!(dialog=DialogNewSimple(140,38))) return;
DialogAddTitle(dialog,"Sauvegarder un Tableau",BT_OK,BT_CANCEL);
DialogAddRequest(dialog,3,15,"Nom du Tableau",8,8,8);
if(DialogDo(dialog, CENTER, CENTER, buffer, NULL)==KEY_ENTER)
{
HeapFree(dialog);
sym = DerefSym (SymAdd (SYMSTR (buffer)));
file = (char*)HeapDeref (sym->handle = HeapAlloc(2 + 12*20*sizeof(short) + 6));
*(unsigned short *)file = 12*20*sizeof(short) + 6;
memcpy (file+2, Tab, 12*20*sizeof(short));
*(file+2+12*20*sizeof(short)) = 0;
memcpy (file+2+12*20*sizeof(short)+1, "DTX", 3);
*(file+2+12*20*sizeof(short)+4) = 0;
*(file+2+12*20*sizeof(short)+5) = OTH_TAG;
}
Pi si tu veux pas utiliser la macro SYMSTR de la beta12, tu prend une variable
char buff[10]
buff[0] = 0;
strcpy (buff+1, buffer);et tu remplace
SYMSTR (buffer) par
buff+1+strlen (buff+1)