|
|
|
|
Pour faire la distinction entre fichiers binaire et ascii, tu lit la première ligne de ton fichier : si ca contient que des 0 et 1, alors c'est binaire.
|
Bon.
Un bon fichier ASCII standard n'a effectivement aucune valeur supérieure à 7 bits (0...127), mais dans la pratique, on utilise 8 bits (pour coder les caractères accentués par exemple, qui sont absents du code ASCII). Donc, difficile de les différencier. Enfin, humainenement, ça saute aux yeux. Pour un logiciel, c'est moins évident. Une astuce pour différencier: Faire des statistiques du fichier. Dans un fichier texte: - on trouvera en grande majorité des codes < 128. - on trouvera beaucoup d'espace (code 32). - on trouvera assez souvent des retours à la ligne (10, 13 ou 13+10 selon la provenance du fichier texte). - selon la langue, certains caractères se trouveront plus souvent ('e' par exemple). - on ne trouvera pas généralement pas d'octets de valeur 0 au milieu du fichier. - les codes ascii inférieurs à 32 sont très rares, en dehors de 9 (tabulation), 10/13 (retours à la ligne) et 12 (saut de page). Je pense qu'on doit pouvoir s'en sortir avec ça et bricoler une routine capable de discerner les deux avec un assez bon pourcentage de réussite. |
Merci pour votre aide
voici 2 solutions 100% efficaces qui peuvent vous être utiles sur UNIX file mon-fichier pour savoir si on a un fichier binaire (exécutable) ou un fichier texte. On obtient pour un fichier texte, comme sortie mon-fichier : ascii text. <? echo exec("file test"); echo "<br>"; echo exec("file test2"); ?> http://amf66.asso.fr/test.php en invoquant un script Perl if (-B "$NomFichier") { print "Le fichier est binaire...\n"; } |
C'est plutôt dangereux de faire un exec avec n'importe quel fichier, non?
Si le fichier est un exe (sous win$) ou un script/executable sous Unix bonjour les ennuis. Une r?gle souvent utilisée est de lire les 256 ou 512 premiers caract?res et d'y rechercher les bytes de valeur inférieure ? 32 . Si byte décelé --> data binaire Sinon texte Rappelons que sous les Unices existe la commande file qui si le fichier /etc/magic est bien ? jour , fournit une bonne idée du contenu du fichier exemple: johand@zoot:~/tmp/images$ file smiley.gif smiley.gif: GIF image data, version 89a, 17 x 17 Allways close to Open Source... Johan Daine |
Je précise caract?res < 32 différents de \r \n \t
Allways close to Open Source... Johan Daine |
| 14/11 12h32 | [Shell] Affichage d'un fichier binaire: Terminal illisible | Shell |
| 08/04 22h09 | Qu'est-ce qu'un fichier batch ? | MS-Dos |
| 13/11 01h31 | [Dico] Dictionnaires - Définitions - Extensions | Internet utile |
| 27/02 15h12 | [Linux] Installer les programmes (gestion des paquets, compil) | Linux |
| 30/10 15h57 | [Web] Un minuscule serveur web sous Windows | Web |
| 06/03 20h29 | Fichier Texte et Fichier Binaire | 1 |
| 12/03 21h43 | Le FTP pour les fichiers *.php = Binaire ou ASCII | 1 |
| 13/05 09h57 | [Java] Fichier binaire | 3 |
| 23/12 13h01 | Taille reel d'un fichier binaire?? | 4 |
![]() | Explore2fs - Explore2fs est un outil d'exploration et d 'accès à des fichiers systèmes ext2 et ext3. Il fonctionne sur toutes les... | Catégorie: Gestion de fichiers Licence: Freeware/gratuit |
![]() | Rootkit Hunter - Rootkit scanner est un outil d'analyse permettant de vous débarasser de la quasi-totalité de vos infections. Cet outil... | Catégorie: Anti-Rootkit Licence: Open Source |
![]() | TextWrangler - TextWrangler est un éditeur de texte évolué. Il propose de nombreuses fonctionnalités : recherche/remplacement... | Catégorie: Traitement de texte Licence: Freeware/gratuit |
![]() | PSPad - PSPad est un excellent éditeur de texte. Il est utile pour travailler sur du simple texte, mais aussi sur du HTML, CSS,... | Catégorie: Développement Licence: Freeware/gratuit |
![]() | Textorm Sweety-Cam Chien | Catégorie: Webcam | 15.90 € La Boutique Du Net |
![]() | Textorm 6A19 Mid Tower | Catégorie: Boîtier PC | 41.10 € La Boutique Du Net |
![]() | Textorm 974 Mo Mid | Catégorie: Boîtier PC | 50.80 € La Boutique Du Net |
![]() | Textorm Compact Slim Keyboard | Catégorie: Clavier | 20.19 € PC-look |