SnOOpss
Messages postés571Date d'inscriptionsamedi 3 avril 2004StatutMembreDernière intervention 5 décembre 2013
-
12 mai 2005 à 21:22
SnOOpss
Messages postés571Date d'inscriptionsamedi 3 avril 2004StatutMembreDernière intervention 5 décembre 2013
-
13 mai 2005 à 13:36
Bonjour.
Je suis en train d essayer de convertir un programme d'un autre langage et je cherche des fonctions particulieres, par exmple.
Ceci lit N bytes à partir de la position S dans le fichier et sauvegarde le résultat dans un variable binaire &binvar.
Ceci écrit N bytes du texte spécifié %var ou &binvar à un fichier
en partant de la position S. Toute information à partir de cette
position sera réécrite.
Ceci place le Nième byte de la variable &binvar à la valeur ascii spécifié.
Ceci cpoie M byte à partir de la position S dans la seconde &binvar
à la première &binvar à la position N. Ceci peut également être
utlisé pour copier des parties répétitives d'une &binvar à elle
même.
Si vous connaissez des fonctions quelquonques qui traitent du meme sujet je suis prenneur merci !!!
sebseb42
Messages postés495Date d'inscriptiondimanche 6 juillet 2003StatutMembreDernière intervention 9 novembre 20071 13 mai 2005 à 00:11
salut
-------------------------------------------------------------------------------------------------------
"Ceci lit N bytes à partir de la position S dans le fichier et sauvegarde le résultat dans un variable binaire &binvar."
buffer = malloc(N + 1);
fd = fopen("ton_fichier", "rb"); // rb signifie read binary
fseek(fd, S, SEEK_SET); // depalcement dans le fichier
fread(buffer, sizeof(char), N, fd); // lecture de N caractere (ce sont des caracteres d'1 octet)
fclose(fd); // fermeture du fichier
// ici buffer est la variable qui t'interesse, il ne faut pas oublier free(buffer) quand tu n'en a plus besoin
///////////////////////////////////////////////////////////
-------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------
"Ceci écrit N bytes du texte spécifié %var ou &binvar à un fichieren partant de la position S. Toute information à partir de cetteposition sera réécrite."
fd = fopen("ton_fichier", "wb"); // wb pour write binary
// (comme pour l'exemple du dessus, il est preferable de tester la variable fd)
fseek(fd, S, SEEK_SET);
fwrite(ta_variable_var_ou_binvar, sizeof(char), N, fd); // ecriture de N caractere de 1 octet
fclose(fd);
///////////////////////////////////////////////////////////
-------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------
"Ceci place le Nième byte de la variable &binvar à la valeur ascii spécifié"
///////////////////////////////////////////////////////////
binvar[N] = la_lettre; // la_lettre est une variable de type char, et binvar char* (ou char[])
// (si binvar est un short* (ou short[]) par exemple, alors la_lettre doit etre un short
///////////////////////////////////////////////////////////
exemple :
int k = 4;
binvar[k] = 'a';
-------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------
"Ceci cpoie M byte à partir de la position S dans la seconde &binvarà la première &binvar à la position N. Ceci peut également êtreutlisé pour copier des parties répétitives d'une &binvar à ellemême."
///////////////////////////////////////////////////////////
memcpy(binvar1 + N, binvar2 + S, M);
///////////////////////////////////////////////////////////
si binvar1 et binvar2 sont des tableaux de short par exemple, alors met M * sizeof(short) a la place de M tout court.
aussi tu peux t'en servir pour copier des caracteres d'une chaine dans elle meme, mais dans ce cas fait bien attention a l'ordre des variable, sinon tu risque d'avoir une redondance de donners non critique pour ton application, mais critique pour la validiter de tes donners.
-------------------------------------------------------------------------------------------------------
SnOOpss
Messages postés571Date d'inscriptionsamedi 3 avril 2004StatutMembreDernière intervention 5 décembre 2013 13 mai 2005 à 13:36
Terrible ca ca va au dela de mes espérances, en fait je ne m attendais
pas a ce que quelqu un aille jusqu'a me "fabriquer" les fonctions avec
des explications en prime.
En tout cas j'ai de quoi me demerder pour les autres.