voilà mon fichier binaire avec un editeur hexadecimal :
0A B5 08 A1 A2 B1 B2 C1 C2 D1 D2
0C B1 06 A1 A2 C1 C2 D1 D2 E1 E2 F1 F2
avec :
pour le 1er enregistrement :
0A B5 08 A1 A2 B1 B2 C1 C2 D1 D2
--- |-----------les 10 octets------------|
|
le lenght
=
10 octets
pour le 2 ème :
0C B1 06 A1 A2 C1 C2 D1 D2 E1 E2 F1 F2
--- |-----------les 12 octets---------------------|
12
octets
je voudrais :
1- supprimer la sequence d'octets qui correspond à B1 B2 dès que je la trouve dans l'enregistrement dans le fichier.
2- arranger le length de l'enregistrement puisqu'on à supprimer 2 octets de
ce dernier.
alors après le traitement :
08 B5 08 A1 A2 C1 C2 D1 D2
0C A4 B1 06 A1 A2 C1 C2 D1 D2 E1 E2 F1 F2
NB : la séquence B1 B2 peut figurée dans plusieur enregistrement dans le fichiers
Merci
# RTFM
Posté par Obsidian . Évalué à 2.
# c sux
Posté par gc (site web personnel) . Évalué à 4.
#!/usr/bin/ruby
test = '0AB508A1A2B1B2C1C2D1D20CB106A1A2C1C2D1D2E1E2F1F2'
baddy = 'B1B2'
testb = [ test ].pack("H*")
baddyb = [ baddy ].pack("H*")
outb = ''
while testb.length > 0
substring = testb[1, testb[0]]
testb = testb[1+testb[0] .. -1]
substring.gsub!(baddyb, '')
outb += [ substring.length ].pack("C")
outb += substring
end
puts outb.unpack("H*")[0].upcase
[^] # Re: c sux
Posté par Nicolas Boulay (site web personnel) . Évalué à 3.
"La première sécurité est la liberté"
[^] # Re: c sux
Posté par gc (site web personnel) . Évalué à 3.
[^] # Re: c sux
Posté par saorge . Évalué à 3.
# C rox
Posté par couriousous . Évalué à 1.
#include <stdio.h> #include <string.h> static const char sequence[2] = {0xb1,0xb2}; int main(int argc, char ** argv) { int size; char buffer[256]; char * plop; FILE * coin; if(argc != 2 || (coin = fopen(argv[1],"r")) == NULL) return 1; while((size = getc(coin)) != EOF) { fread(buffer,1,size,coin); plop = memchr(buffer, sequence[0],size); if(plop == NULL || *(plop+1) != sequence[1]) { putchar(size); fwrite(buffer,1,size,stdout); continue; } size -= 2; memmove(plop,plop+2,size - ( buffer - plop ) -2); putchar(size); fwrite(buffer,1,size,stdout); } return 0; }[^] # Re: C rox
Posté par demo2000 . Évalué à -1.
le fichier sortant contient toujour: B1B2
merci pour votre aide
[^] # Re: C rox
Posté par couriousous . Évalué à 1.
car tes explications sont lacunaires et donc j'utilise peu être le mauvais format.
[^] # Re: C rox
Posté par demo2000 . Évalué à -1.
le fichier sortant contient toujour: B1B2
merci pour votre aide
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.