05/05/09 21:20
SDevil
Ciao a tutti,
devo realizzare una dll che prende in IN un file .TXT
contenente tipo:
"var"\x65\x61\x6F...
ed ad ogni occorrenza sequenziale dei caratteri "\x" tramite atoi() deve restituirmi il valore esadecimale dei due numeri
successi.
Il file in uscita dovrà contenere il file originale con le modifiche esadecimali.
Io ho realizzato questo codice, che nn va...
Non sono tanto esperta della programmazione Windows..chiedevo se qualcuno poteva darmi una mano..
Thanks
__declspec(dllexport) void Convert(HANDLE hFile, HANDLE hFiLE1)
{
DWORD dwbyteRead;
DWORD dwbyteWrite;
BYTE *dwSFP;
char dueChar[2];
char dueChar1[2];
char occorrenza ="\x";
int i;
int x=0;
dwSFP = (BYTE*) calloc(GetFileSize(hFile, NULL), sizeof(hFile));
ReadFile(hFile, &dwSFP, GetFileSize(hFile, NULL), &dwbyteRead, NULL);
FOR(i=0; i<sizeof(dwSFP)-1; i++)
{
dueChar1[0] = dueChar[i];
dueChar1[1] = dueChar[i+1];
if(strcmp(dueChar1,occorrenza)!=0) //se i caratteri letti sono diversi da "\x"mi scrive sul file
{
WriteFile(hFile1, dueChar1, sizeof(dueChar), &dwbyteWrite, NULL);
}
else //altrimenti prendo i due caratteri dopo ai due caratteri
//controllati e prendo il valore esadecimale tramite atoi
{
dueChar1[0] = dueChar[i+2];
dueChar1[1] = dueChar[i+3];
x=atoi(dueChar1);
WriteFile(hFile1, &x, sizeof(dueChar), &dwbyteWrite, NULL);
}
}
free(dwSFP);
}
aaa