Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1493 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  Supprimer plusieurs octets séparés d'un fichier binaire ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Supprimer plusieurs octets séparés d'un fichier binaire ?

n°1600918
Brahimovit​ch
Posté le 20-08-2007 à 03:44:35  profilanswer
 

Salut tout le monde
 
Queluq'un connaît quel code à utiliser pour supprimer des octets séparés par blocs  
(de 1024 octes chacun) d'un fichier binaire? Pour plus de précision:
 
Le nombre d'octets à supprimer en premier lieu est au début du fichier (Header): 18 octets.
Puis 5 ocetcs à supprimer toujours après chaque bloc, sauf après le dernier (1344 ième) seulement 4 octets à supprimer.
 
Merci d'avance de vos réponses.


Message édité par Brahimovitch le 20-08-2007 à 03:45:40
mood
Publicité
Posté le 20-08-2007 à 03:44:35  profilanswer
 

n°1600919
Brahimovit​ch
Posté le 20-08-2007 à 03:48:30  profilanswer
 

Re
 
 
J'allais oublier ...
 
C'est sous windows avec Visual Studio 2005 Standard (anglais)
 
Merci encore "d'avance"


Message édité par Brahimovitch le 20-08-2007 à 03:48:59
n°1600942
Elmoricq
Modérateur
Posté le 20-08-2007 à 09:37:51  profilanswer
 

Il faut réécrire le fichier intégralement, sans les blocs à supprimer.

n°1601005
Taz
bisounours-codeur
Posté le 20-08-2007 à 11:15:53  profilanswer
 

c'est cool le gras et le orange

n°1601197
Brahimovit​ch
Posté le 20-08-2007 à 15:58:20  profilanswer
 

Elmoricq a écrit :

Il faut réécrire le fichier intégralement, sans les blocs à supprimer.


 
Salut
 
Pour le réécrire sans les octets à supprimer il faut d'abord le lire n'est-ce pas?  
Cette méthode de lecture sera lente à mon avis, donc ce que je voulais c'est
de supprimer le nombre de bytes cités dans mon premier message directement
sans avoir besoin de  lire le fichier, les datas à supprimer ne sont pas prédéfinis.
Le programme ou le code à exécuter n'aura pas des définitions liées aux
types de datas mais plutôt il fera le calcul sans donner d'importance aux datas:
Il doit supprimer 18 bytes au début puis caluler 1024 octets à laisser, ensuite supprimer
5 octets puis cacluler la même taille de bloc (1024 octecs) puis supprimer 5 autres
octets et ainsi de suite jusqu'au dernier bloc (1344 ième) ou il ne doit supprimer
que 4 octets qui restent à la fin du fichier.
 
En fait les 5 octets dont je parle sont des checksums 16 bits suivis chacun de la valeur 04
(04 désigne la taille en hex du bloc suivant => 400h= 1024 octets), voilà un exemple:
1 ier  bloc de 1024 octets suivi de 0000 1B5C 04
2ème bloc de 1024 octets suivi de 0001 5A3D 04
3ème bloc de 1024 octets suivi de 0002 6FDC 04
et ainsi de suite ...
Le dernier == 1024 octets suivi de 053F E7FE
 
Si vous le constatez les checksums sont devancés d'une suite d'index
0000, 0001, 0002 .... 053F (1343) donc le total des blocs est 1344
 
à ajouter aussi que la taille originale est 1 382 993 octets
il doit être après la suppression  ====> 1 376 256 octets.

n°1601209
Elmoricq
Modérateur
Posté le 20-08-2007 à 16:03:12  profilanswer
 

Tu n'as pas le choix, tu ne peux pas supprimer des blocs dans un fichier sans le réécrire intégralement.
Et oui, il faut le lire avant.

Message cité 1 fois
Message édité par Elmoricq le 20-08-2007 à 16:03:52
n°1601221
Brahimovit​ch
Posté le 20-08-2007 à 16:12:27  profilanswer
 

Elmoricq a écrit :

Tu n'as pas le choix, tu ne peux pas supprimer des blocs dans un fichier sans le réécrire intégralement.
Et oui, il faut le lire avant.


 
Re
 
Et comment ça sera cette lecture en négligeant les datas à supprimer?
En memoire ou en créant un fichier temporaire ou autre? Excusez-moi
mais je suis un nul qui débute en C++ même si j'ai déjà des bases en ce  
qui concerne l'édition hexadécimale, je trouve que c'est difficile, mais bon,
avec la volonté et la patience ça viendra :)  
 
Merci d'avance.

n°1601224
Taz
bisounours-codeur
Posté le 20-08-2007 à 16:13:46  profilanswer
 

tu mmap et du décales.

n°1601491
Brahimovit​ch
Posté le 21-08-2007 à 02:08:27  profilanswer
 

Taz a écrit :

tu mmap et du décales.


 
Désolé mais je suis toujours bloqué, comme j'ai dit dans mon message précédent
je suis débutant et je voudrais savoir tout dès le début:
 
Quelles directives devrais-je inclure ?
 
#include <??>
#include <??>
#include <??>
 
Et quelles fonctions devrais-je utiliser pour ouvrir le fichier de la manière que vous avez  
expliquée brièvement ?!
 
Excusez-moi,  je ne demande pas avoir tout le code mais ce que je veux c'est de
me pousser à trouver le bout du fil car je suis toujours coincé !!!  
 
Merci d'avance

Message cité 1 fois
Message édité par Brahimovitch le 21-08-2007 à 02:12:58
n°1601496
Gf4x3443
Killing perfection
Posté le 21-08-2007 à 04:21:03  profilanswer
 

Taz a écrit :

tu mmap et du décales.

 

Ca existe mmap en win32?

 

J'ai toujours vu des MapViewOfFile mais jamais de mmap :??:

 
Brahimovitch a écrit :


Excusez-moi,  je ne demande pas avoir tout le code mais ce que je veux c'est de
me pousser à trouver le bout du fil car je suis toujours coincé !!!

 

http://msdn2.microsoft.com/en-us/library/aa366761.aspx

 

M'enfin je vois pas l'intérêt du mmap, des read/fread feraient pareil. Pour faire du mmap, ca va compliquer la chose, s'il veut travailler sur l'intégralité du fichier il devra utiliser fstat avant... Si c'est un débutant, il va se vautrer dans les pointeurs à coup sur.

Message cité 1 fois
Message édité par Gf4x3443 le 21-08-2007 à 04:21:11
mood
Publicité
Posté le 21-08-2007 à 04:21:03  profilanswer
 

n°1601651
Taz
bisounours-codeur
Posté le 21-08-2007 à 11:54:43  profilanswer
 

Gf4x3443 a écrit :


 
Ca existe mmap en win32?
 
J'ai toujours vu des MapViewOfFile mais jamais de mmap :??:
 


 

Gf4x3443 a écrit :


 
http://msdn2.microsoft.com/en-us/library/aa366761.aspx
 
M'enfin je vois pas l'intérêt du mmap, des read/fread feraient pareil. Pour faire du mmap, ca va compliquer la chose, s'il veut travailler sur l'intégralité du fichier il devra utiliser fstat avant... Si c'est un débutant, il va se vautrer dans les pointeurs à coup sur.


qu'est-ce que jen sais si ça existe ... mmap ça va tout simplifier. Si tu sais faire l'opéation dans un char[], alors tu sais la faire. Ca va être plus chiant et moi efficace.

n°1602344
Brahimovit​ch
Posté le 22-08-2007 à 14:34:10  profilanswer
 

Citation :

http://msdn2.microsoft.com/en-us/library/aa366761.aspx  
 
M'enfin je vois pas l'intérêt du mmap, des read/fread feraient pareil. Pour faire du mmap, ca va compliquer la chose, s'il veut travailler sur l'intégralité du fichier il devra utiliser fstat avant... Si c'est un débutant, il va se vautrer dans les pointeurs à coup sur.


 
Salut
 
Interessant merci beaucoup.

 
 

Citation :

Quelles directives devrais-je inclure ?  
 
#include <??>  
#include <??>  
#include <??>


 
Un petit eclaircissement sur les includes à utiliser sera le bienvenu, merci à tous.

Message cité 1 fois
Message édité par Brahimovitch le 22-08-2007 à 14:34:46
n°1602370
red factio​n
Posté le 22-08-2007 à 15:01:45  profilanswer
 
n°1602397
MagicBuzz
Posté le 22-08-2007 à 15:19:41  profilanswer
 

[:jerem38]  


Message édité par MagicBuzz le 22-08-2007 à 15:19:54
n°1602460
Gf4x3443
Killing perfection
Posté le 22-08-2007 à 16:41:27  profilanswer
 

Brahimovitch a écrit :


Un petit eclaircissement sur les includes à utiliser sera le bienvenu, merci à tous.


 
Manifestement, Le lien que je donne, ca doit être du poulet.  :heink:  

Header
 
Declared in Winbase.h; include Windows.h.

 
Faudrait peut être commencer par la tu crois pas?


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  Supprimer plusieurs octets séparés d'un fichier binaire ?

 

Sujets relatifs
[RESOLU] pb avec un fichier binaire et vcQuitter un fichier Excel ouvert via IE
Ouvrir un fichier HTML en fin de pageSupprimer une ligne contenant une chaine de caractère
Macro pour supprimer des lignes d'un tableau à partir de valeurexecuter du code a partir d'un fichier txt
remplir une msflexgrid à partir d'un fichier xmlLire un fichier LDF [résolu]
ouvrire fichier avec bloc note 
Plus de sujets relatifs à : Supprimer plusieurs octets séparés d'un fichier binaire ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR