lamoueste
Messages postés76Date d'inscriptionlundi 5 septembre 2005StatutMembreDernière intervention 3 juillet 2007
-
15 nov. 2005 à 16:26
lamoueste
Messages postés76Date d'inscriptionlundi 5 septembre 2005StatutMembreDernière intervention 3 juillet 2007
-
16 nov. 2005 à 10:56
Bonjour a tous alors j'ai un probleme plutot basique je voudrais savoir pkoi le compilateur refuse "FileR.eof()" alors qu'il n'y a pas de raison d'apres moi enfin si quelqu'un voit la solution merci d'avance :)
if ( FileR ) // check if FileR is open
{
while(! FileR.eof() )// bug :'(
{
fread( Buffer, sizeof( char ), 16, FileR );
for(cpt = 0;cpt<longueur;cpt++)
{
if (Buffer[cpt] < 0x20)
{
ChaineASC += " .";//on remplace tous les caractères qui ne sont pas des lettres par un point
}//end if
else
{
ChaineASC += ' ';
ChaineASC += Buffer[cpt];
}//end else
}//end for
longueur += 16;
fwrite( ChaineASC,sizeof(char),16,FileW);
}//end while
}//end if
BruNews
Messages postés21041Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 15 nov. 2005 à 17:27
Tu le veux en vrai win32 ? excuse parce que là c'est vraiment trop le souk, imagine ce que ton CString fait comme allocs et desallocs, un scandale pour ton espace mémoire.
Le but est bien de séparer tout par un espace en plus de remplacer par '.' si octet < 32 ???
lamoueste
Messages postés76Date d'inscriptionlundi 5 septembre 2005StatutMembreDernière intervention 3 juillet 2007 16 nov. 2005 à 09:57
Yep merci beaucoup BruNews mais je dois t'embeter encore un peu, pourrais-tu m'expliquer la ligne :
pmem = (BYTE*) VirtualAlloc(0, BUFF_TOTAL, MEMDISPO, PAGE_READWRITE);
J'ai regarder sur msdn mais j'avoue que je comprend pas ce que fait cette fonction ( precisement )
Et 2e chose : j'avais un CString comme parametre qui m'etait retourner par une autre fonction et j'arrive pas a convertir une CString en char* :(
BruNews
Messages postés21041Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 16 nov. 2005 à 10:54
CString a un opérateur (char*) ou plutôt (LPSTR) donc devrait caster de lui même.
MEMDISPO est un #define perso pour (grosso modo) grouper demandes:
- réservation zone mémoire.
- affectation réelle illico de cette zone.
- flags READ et WRITE sur cette zone.
La zone est de plus complétement initialisée de zéros.
BUFF_TOTAL vaut 12 Ko pour 1 buff de 4 Ko pour lecture + 1 buff de 8 Ko qui sera où on met la translation avant d'en demander le tamponnage dans fichier en 1 seule passe.