Invité Invité
| Sujet: [résolu] Problème avec le caractère ASCII n°26 Dim 25 Nov 2012 - 20:07 | |
| J'ai un problème avec le caractère ASCII n°26 (Hexa:1A). Voici mon script pour illustrer mon problème: - Code:
-
var f,ff,ligne,ligne2,i,cara; ligne2=""; f="source.txt"; ff="cible.txt"; f=file_text_open_read(f); ff=file_text_open_write(ff);
do { ligne=file_text_read_string(f); for (i=1;i<=string_length(ligne);i+=1) { cara=string_char_at(ligne,i); ligne2+=cara; } file_text_write_string(ff,ligne2); ligne2=""; file_text_readln(f); if !file_text_eof(f) { file_text_writeln(ff); } } until (file_text_eof(f))
file_text_close(f); file_text_close(ff); Le fichier source.txt: abcde:#09478363 @à "_(ià_'
Avec à la place du caractère #, le caractère chr(26). Après execution du script, le fichier cible.txt contient: - Citation :
- abcde:
@à "_(ià_' Vous l'aurez remarqué, juste après le caractère chr(26), les caractères 09478363 ont disparus. Après recherche, le caractère n°26 correspond à un caractère de substitution (SUB). Que pensez-vous de ce petit problème ? PS: Mon script ne fait qu'une copie de fichier caractère par caractère. C'est juste un exemple pour illustrer cette anomalie.
Dernière édition par NVR le Dim 25 Nov 2012 - 22:41, édité 1 fois |
|
M@d_Doc Modérateur
Messages : 6600 Localisation : 47°44'8.04 Projet Actuel : aucun
| Sujet: Re: [résolu] Problème avec le caractère ASCII n°26 Dim 25 Nov 2012 - 20:14 | |
| Dans Game Maker, le caractère # sert à faire un saut à la ligne. Tu peux cependant l'ecrire en faisant /# il me semble. |
|
Térence Utilisateur confirmé: Rang *****
Messages : 2213 Localisation : Oui
| Sujet: Re: [résolu] Problème avec le caractère ASCII n°26 Dim 25 Nov 2012 - 21:01 | |
| Sans vouloir détourner le topic, ca me fait penser que sur android, le caractère triangle vers la gauche ( ► à l'envers, ascii n°17 je crois) ne s'affiche pas, c'est assez ******, est-ce que quelqu'un sait pourquoi ? |
|
Invité Invité
| Sujet: Explications plus précises Dim 25 Nov 2012 - 21:22 | |
| Je sais que le symbole # permet le saut de ligne, mais imagine qu'a la place de dièse il y a un symbole invisible (chr(26)). Si tu prefere: - Code:
-
fichier="abcde:"+chr(26)+"09478363 @à "+'"'+"_(ià_'";
Je ne parle pas du # mais du chr(26). |
|
M@d_Doc Modérateur
Messages : 6600 Localisation : 47°44'8.04 Projet Actuel : aucun
| Sujet: Re: [résolu] Problème avec le caractère ASCII n°26 Dim 25 Nov 2012 - 22:11 | |
| Oh, excuse moi, j'ai lu trop vite Le caractère de substitution, c'était avant tout un EOF sous DOS (End of file, bref, fin d'execution). Il me semble que d'autres langages ont repris ce principe. Le principe est le suivant : lorsque l'ordinateur lit un fichier, il lit jusqu'à trouver la fin du fichier. Pour éviter des erreurs mémoires, il faut un caractère de fin, on ne peux pas simplement essayer de lire du vide pour se rendre compte qu'on est au bout. Bref, c'est se caractère qui indique la fin d'un string ou d'un fichier, Ça expliquerait pourquoi la fin de la chaîne de caractères n'est plus lue! |
|
Invité Invité
| Sujet: Re: [résolu] Problème avec le caractère ASCII n°26 Dim 25 Nov 2012 - 22:40 | |
| D'accord, j'ai compris, merci |
|
Contenu sponsorisé
| Sujet: Re: [résolu] Problème avec le caractère ASCII n°26 | |
| |
|