begin process at 2012 05 29 05:13:42
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Divers

 > 

Fonctions de gestion de fichier en binaire ??


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Fonctions de gestion de fichier en binaire ??

jeudi 12 mai 2005 à 21:22:27 | Fonctions de gestion de fichier en binaire ??

SnOOpss

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 !!!

vendredi 13 mai 2005 à 00:11:06 | Re : Fonctions de gestion de fichier en binaire ??

sebseb42

Réponse acceptée !

salut

-------------------------------------------------------------------------------------------------------
"Ceci lit N bytes à partir de la position S dans le fichier et sauvegarde le résultat dans un variable binaire &binvar."

///////////////////////////////////////////////////////////
char *buffer;
FILE *fd;

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."

///////////////////////////////////////////////////////////
FILE *fd;

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.
-------------------------------------------------------------------------------------------------------


voila, j'espere que ca peut t'aider :)

vendredi 13 mai 2005 à 13:36:10 | Re : Fonctions de gestion de fichier en binaire ??

SnOOpss

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.
Merci beaucoup !!!!



Cette discussion est classée dans : fichier, binaire, position, fonctions, binvar


Répondre à ce message

Sujets en rapport avec ce message

problèmes liens entre fichiers C et C++ dans un projet Visual C++ 6.0 [ par nico ] J'ai récupéré un projet contenant des fichiers écrits en C. Le fichier "principal" de ce projet également écrit en C fait appel à des fonctions se tro Tableau de correspondance des fonctions c++ et de leur fichier #include [ par guguy ] BonjourJ'aimerais savoir s'il serait possible de trouver un tableau de correspondance entre les fonctions c++ et leur fichier #include (ex : cout -> i telecharger un fichier [ par Xs ] On fait comment pour telecharger un fichier ?je suppose qu'il faut demander au serveur de l'ouvrir en binaire puis utiliser une boucle du typewhile(!f Lire et ecrire dans un fichier en mode binaire [ par vbnul ] Je cherche comment lire et ecrire dans un fichier en mode binaire car on ne peut lire certains "caracteres" binaires dans les EXE par exemple.qqn pour Creer ses propres fonctions [ par CHENRY ] En VC++6, avec les MFC, je voudrais ajouter à mon projet un fichier de fonctions et procédures personnelles. J'ai créé un fichier d'en-tete contenant Données en binaire [ par didrocks ] J'aimerai, à l'instar de denini dans "lire/ecrire fichier texte a plusieurs colonnes" faire un fichier de données dans lequel je pourrai écrire à part ERREUR redefinition, different basic types ( tres URGENT) [ par moudugenou ] Bonsoir, Tout le reste marche dans mon programme sauf cette fonction qui me resiste...Quand je compile visual C++ m'indique ceci: error C2371: 'pose raw (urgentissimo) [ par helena123 ] salut les loulous,Je dois écrire un programme qui lit un fichier de type raw.On me dit que le fichier de type .raw est de type binaire et contient l'i Position dans un fichier [ par sebastienbro ] Bonjours,je voudrais savoir comment on pourrait avoir la position dans un fichier, à la manière d'un FilePos() en Delphi. J'ai bien trouvé SetFilePoin chaine binaire ou non [ par Anacr0x ] Voila mon problème : je recoit en temps normal par socket une chaine que j'afiche ds un edit, seulement, j'ai crée un systeme d'envoi de fichier qui p


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,328 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales