Une petite question me trotte dans la tête

Résolu
romit Messages postés 160 Date d'inscription jeudi 28 août 2003 Statut Membre Dernière intervention 30 juin 2011 - 16 août 2008 à 21:48
Kevin.Ory Messages postés 840 Date d'inscription mercredi 22 octobre 2003 Statut Membre Derniè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:

[Taille]
X=10
Y=23

Merci d'avance :)

Romit.

7 réponses

Kevin.Ory Messages postés 840 Date d'inscription mercredi 22 octobre 2003 Statut Membre Dernière intervention 7 janvier 2009 11
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)
3
Profil bloqué
17 août 2008 à 00:48
Salut romit

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.

GRENIER Alain
0
Profil bloqué
17 août 2008 à 00:49
est avant tout un fichier binaire : erreur de frappe

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.

GRENIER Alain
0
romit Messages postés 160 Date d'inscription jeudi 28 août 2003 Statut Membre Dernière intervention 30 juin 2011
17 août 2008 à 20:35
Merci mais comment faire dans mon programme pour enregistrer des fichiers sous ce format ?

Romit.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Kevin.Ory Messages postés 840 Date d'inscription mercredi 22 octobre 2003 Statut Membre Dernière intervention 7 janvier 2009 11
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".

Pigé?
0
romit Messages postés 160 Date d'inscription jeudi 28 août 2003 Statut Membre Dernière intervention 30 juin 2011
17 août 2008 à 21:41
Je comprends de mieux en mieux merci.

Mais je ne saisis toujours pas comment les programmes font après pour traiter ces données.

Traiter du texte est facile en le parsant mais pour utiliser les données brutes comme ça comment font-t'ils ?

Romit.
0
romit Messages postés 160 Date d'inscription jeudi 28 août 2003 Statut Membre Dernière intervention 30 juin 2011
17 août 2008 à 21:42
(Au fait magnifique la réponse pile une heure après mon post , je sais pas si c'était voulu ^^)

Romit.
0
Rejoignez-nous