romit
Messages postés160Date d'inscriptionjeudi 28 août 2003StatutMembreDernière intervention30 juin 2011
-
16 août 2008 à 21:48
Kevin.Ory
Messages postés840Date d'inscriptionmercredi 22 octobre 2003StatutMembreDernière intervention 7 janvier 2009
-
17 août 2008 à 22:01
Voila quand j'ouvre certains fichiers (Style maps de jeux par exemple ou même certains fichiers de configuration) avec le bloc-notes, le fichier est illisible.
Je veux dire par là que c'est pleins de caractères qui ne veulent rien dire.
Je me demandais donc comment arriver a ce resultalt dans un de mes programmes, comment enregistrer des fichiers dans ce "format".
Enfin bref, plus d'explication car quand moi je fais un programme je fais des fichiers de configurations banals de ce genre la:
Kevin.Ory
Messages postés840Date d'inscriptionmercredi 22 octobre 2003StatutMembreDernière intervention 7 janvier 200911 17 août 2008 à 22:01
"(Au fait magnifique la réponse pile une heure après mon post , je sais pas si c'était voulu ^^)"
Ouais, j'avais vu, mais c'était pas voulu
Pour lire un "16" dans un fichier texte, tu lis un String
Pour lire un 16 dans un fichier binaire, tu lis un Byte (ou Integer, ou Long, ou Single... tout dépend)
Pour lire/écrire un fichier en "texte": StreamReader/StreamWriter ou IO.File.ReadAllText/IO.File.WriteAllText
Pour lire/écrire un fichier en binaire: BinaryReader/BinaryWriter ou IO.File.ReadAllBytes/IO.File.WriteAllBytes
L'avantage des fichiers texte est qu'ils sont lisible par l'humain (dans le bloc-note par ex), mais il sont beaucoup plus volumineux (1555 = 2 octets en binaire mais 4 (au minimum) octets en texte). La différence est négligeable si le fichier ne contient que du texte (du texte écris dans un fichier binaire reste du texte, comme dans un fichier texte)
je fais des fichiers de configurations banals de ce genre la:
[Taille]
X=10
Y=23
Ce sont purement des fichiers texte tout simples (pas de couleur pour les caractères,ni écriture en italique ou gras, etc......)
Pour les autres tu dis "Je veux dire par là que c'est pleins de caractères qui ne veulent rien dire."
Cela ne veut rien dire pour toi mais au niveau purement binaire (octet si tu préfères) cela représente le fichier en binaire : son contenu peut être un exécutable,contenir des tableaux de valeurs utilisées par un exécutable,des icônes,des images,des sons,etc....
Il faut bien comprendre que tout fichier quel qu'il soit est avant tour un fichier binaire : c'est la seule chose que comprend l'ordinateur d'ailleurs
Le bloc-notes ( notepad.exe) t'ouvre les fichiers .txt et t'affiche leur contenu sous forme de texte. Pour un fichier .bmp (image) il essaiera de faire de même mais c'est un texte incompréhensible pour l'humain que nous sommes
A+
La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.
Kevin.Ory
Messages postés840Date d'inscriptionmercredi 22 octobre 2003StatutMembreDernière intervention 7 janvier 200911 17 août 2008 à 21:35
Salut,
Il sont déjà dans ce format romit. Tous les fichiers sont binaire.
Dans un fichier, il y des octets (et rien d'autre).
- Dans un fichier texte, ces octets représentent des caractères. Donc si tu ouvre un tel fichier avec le bloc-note, tu verra du texte que tu pourra lire.
- Si ton fichier n'est pas un "fichier texte", les octetsne représente pas des caractères, leur affichage semblera donc être "pleins de caractères qui ne veulent rien dire"
- Si tu écris la valeur 16 dans un fichier de façon binaire, ce fichier contiendra un octet qui représente la valeur 16 ("00001000" en binaire)
- Si tu écris la valeur "16" dans un fichier en "texte", le fichier contiendra deux octets. Le 1er représente le caractère "1", le 2ème représente le caractère "6". La valeur de l'octet en fonction du caractère dépend du codage de texte qui est utlisé (Unicode, UTF, ASCII)
Par exemple, voici une table de conversion ASCII: http://enteos2.area.trieste.it/russo/IntroInfo2001-2002/CorsoRetiGomezel/ASCII-EBIC_files/ascii_table.jpg Tu peux y voir que le caractère "1" vaut 49, et le caractère "6" vaut 54. Un fichier texte contenant "16" contiendra donc 2 octets dont la valeur sera 49 et 54.
Si tu ouvre le fichier binaire contenant 16, tu peux voir sur la table Ascii que la valeur 16 représente le caractère "DLE", qui n'est pas représentable à l'affichage, tu obtiendra donc "un drôle de caractère".