-
04/02/2009 - 14h04 ClaudeH
0 Binaires
Bonjour.
Existe t-il un programme qui puisse me donner la position exacte des 0 binaires dans un fichier txt que j'édite sous dos.
Cordialement: Claude
-
04/02/2009 - 15h24 Faith
Re : 0 Binaires
 Envoyé par ClaudeH Bonjour.
Existe t-il un programme qui puisse me donner la position exacte des 0 binaires dans un fichier txt que j'édite sous dos.
Cordialement: Claude Je ne pense pas que ça existe (pas très utile en soi)... surtout que des 0 binaires dans un fichier, il y en a en moyenne... la moitié ! Alors la liste des positions des 0 donne plus de données que la taille du fichier en entrée...
Pour quelle utilisation en as-tu besoin ? On doit pouvoir arranger ça -
04/02/2009 - 15h26 TiClic
Re : 0 Binaires
Si tu as Excel, rien de plus facile : tu crées une macro, tu colles dedans le code suivant et tu enregistres ton fichier Excel dans le dossier contenant ton fichier txt. En exécutant cette macro, il te mettra dans la colonne de gauche le rang de tous les "0" de la chaîne.
Tu peux aussi créer en sortie un fichier texte avec le rang de tous les "0" rencontrés, soit en colonne, soit sur une seule ligne, mais il faudra utiliser un séparateur (de ton choix).
Macro :
Sub Binaire()
Dim ChifBin As String
Dim I As Integer
Dim Compteur As Integer
Open "binaire.txt" For Input As #1
While Not EOF(1)
Input #1, ChifBin
For I = 1 To Len(ChifBin)
If Mid(ChifBin, I, 1) = "0" Then
Compteur = Compteur + 1
Set Cel = Range("A1")
Cel.Offset(Compteur - 1, 0) = I
End If
Next I
Wend
Close #1
End Sub
-
04/02/2009 - 15h28 TiClic -
04/02/2009 - 15h40 TiClic
Re : 0 Binaires
Autant te donner le code de la macro qui te permettra de créer un fichier texte dans le même dossier, avec le rang de tous les "0" rencontrés en colonne. Très peu de différences :
Sub Binaire()
Dim ChifBin As String
Dim I As Integer
Dim Compteur As Integer
Open "binaire.txt" For Input As #1
Open "resultat.txt" For Output As #2
While Not EOF(1)
Input #1, ChifBin
For I = 1 To Len(ChifBin)
If Mid(ChifBin, I, 1) = "0" Then
Print #2, I
End If
Next I
Wend
Close #2
Close #1
End Sub
-
04/02/2009 - 15h45 Faith
Re : 0 Binaires
Euh, Ticlic, j'avais cru comprendre qu'il cherchait les 0 binaires, et non pas les "0" caractères. Mais je me suis peut-être trompé...
-
04/02/2009 - 16h09 ClaudeH
Re : 0 Binaires
 Envoyé par Faith Euh, Ticlic, j'avais cru comprendre qu'il cherchait les 0 binaires, et non pas les "0" caractères. Mais je me suis peut-être trompé... Bonjour:
oui effectivement zéro binaire Alt 255 ou alt 0160
cordialement.
-
04/02/2009 - 16h15 TiClic
Re : 0 Binaires
Pour moi, il s'agissait d'analyser une chaîne de caractères faite de "0" et de "1" se trouvant dans un fichier texte. Cela dit, s'il s'agit d'un fichier binaire (*.bin), ce n'est pas plus difficile. Il suffit d'ouvrir le fichier en question en accès direct et de l'analyser octet par octet.
-
04/02/2009 - 16h17 Faith
Re : 0 Binaires
 Envoyé par ClaudeH Bonjour:
oui effectivement zéro binaire Alt 255 ou alt 0160
cordialement. Donc c'est encore autre chose 
Quand je parle de zéro binaire, c'est chaque 0 de 010100010101110101010
Tandis que pour toi, c'est les occurrences du caractère codé en binaire par 00000000
Dans ce cas, une adaptation du code de Ticlic devrait pouvoir fonctionner: il suffit de remplacer le "0" par ton 0 binaire en VB (est-ce "\0" ?)
-
04/02/2009 - 16h46 ClaudeH
Re : 0 Binaires
 Envoyé par TiClic Pour moi, il s'agissait d'analyser une chaîne de caractères faite de "0" et de "1" se trouvant dans un fichier texte. Cela dit, s'il s'agit d'un fichier binaire (*.bin), ce n'est pas plus difficile. Il suffit d'ouvrir le fichier en question en accès direct et de l'analyser octet par octet. Oui c'est ce que j'ai commencé à faire mais vu la taille de mon fichier, dur dur.
Bon je ne suis absolument pas callé en informatique.
Je vais tenter d'être plus clair.
Lorsque j'édite mon fichier avec l'éditeur classique du dos.
J'ai une valeur décimale qui s'affiche sous chaque caractère.
Exemple: "espace" à une valeur de 32 en décimale et 20 en hexa.
Par contre lorsque je tombe sur un 0 binaire j'ai des valeurs totalement différentes, d'un 0 binaire à l'autre.
alors je voulais savoir s'il existait un programme qui me permettraiit de les repérer afin de les suprimer.
Merci Claude
-
04/02/2009 - 18h13 TiClic
Re : 0 Binaires
Oui, ce n'est pas trop difficile avec une macroWord. Passe-nous ton fichier en PJ, qu'on puisse y jeter un cil.
-
05/02/2009 - 11h15 ClaudeH
Re : 0 Binaires
 Envoyé par TiClic Oui, ce n'est pas trop difficile avec une macroWord. Passe-nous ton fichier en PJ, qu'on puisse y jeter un cil. Bonjour Ticlic.
Malheureusement je n'ai pas le droit d'envoyer des fichiers de clients. j'ai ce soucis dans l'exercice de ma profession.
Par contre je serai ravi si tu pouvais me donner le lien ou je pourrais récuperer Macro word.
Cordialement Claudeh
-
05/02/2009 - 14h17 ClaudeH
Re : 0 Binaires
Re bonjour..
J'ai trouvé ceci dans le net, pour retrouver les zéro binaires.
Quelqu'un pourrait-il dire si ce programme tiens la route.?
main()
{
..;
...;
/*boucle principale*/
while ( ((c=getc(stdin)) != EOF))
{
if (strcmp(c,"ICI ZERO BINAIRE")==0)
{
strcpy(c," ");
}
if( opt_out_file )
fprintf(out_file,"%c",c);
else
fprintf(stderr,"%c",c);
}
return 0;
}
Merci
-
05/02/2009 - 14h56 fderwelt
Re : 0 Binaires
Bonjour,
A mon avis ça ne tient pas la route... Code: while ((c = getc (stdin)) != EOF) ne fait que lire un seul caractère dans c (qio a dû être déclaré "char c" auparavant). Alors ensuite utiliser strcmp (c, "...") pour tester le caractère c (alors que strcmp attend deux chaînes de caractères ça me semble très douteux.
Pour mémoire le prototype de strcmp est Code: int strcmp (char *, char *) ; Le problème est en fait de savoir à quoi on reconnaît un "zéro binaire", ce n'est pas très clair pour moi au vu des messages précédents.
-- françois
Les optimistes croient que ce monde est le meilleur possible. Les pessimistes savent que c'est vrai. -
05/02/2009 - 15h02 TiClic
Re : 0 Binaires
Si tu as Word, tu trouveras le langage de développement des macros dans Outils...Macro...Visual Basic Editor (raccourci : Alt+F11).
Regarde comment on lit un fichier sauvegardé en binaire.
Ce programme tiendra la route si tu remplaces strcpy(c," "); par strcpy(c,' '); et si tu programmes en C.
C'est la raison pour laquelle son auteur pose la question sur "commentçamarche". Tant pis pour le fichier, difficile de t'aider sans avoir un petit bout de fichier à se mettre sous la dent.
Bon courage !
| | |