[V] Incroyable mais vrai: autoit remplace les 00 par des 20

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
ELGAMALI
Niveau 5
Niveau 5
Messages : 184
Enregistré le : mar. 13 sept. 2011 00:06
Status : Hors ligne

[V] Incroyable mais vrai: autoit remplace les 00 par des 20

#1

Message par ELGAMALI »

Bonsoir
En éditant un fichier avec un éditeur hexadécimal, ce dernier contient des ofset :00 00 00 en copiant à partir de n’importe quel éditeur hexadécimal j’obtient ce qui suit : « MZP ÿÿ bahbahba¸bah @ bah bah « c.à.d. là ou j’ai mis bah normalement c’est des caractères invisibles (0 invisible)
Alors en copiant le dit texte dans « SciTE Script Editor de Autoit» et après l’avoir copié de nouveau de autoit vers bloc notes en l’ouvrant avec editHxa les 00 00 devinent des 20 20 incroyable mais vrai !!! Là je suis bloqué pour mon application filewrite($2,"MZP ÿÿ ¸ @ "&$txt)
Pouvez-vous m’aider merci
Modifié en dernier par ELGAMALI le dim. 26 févr. 2012 22:03, modifié 1 fois.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11830
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..]INCROYABLE MAIS VRAI: AUTOIT REMPLACE LES 00 PAR DES

#2

Message par Tlem »

Si on ne vous a jamais dit qu'écrire le titre de son message tout en majuscule est incorrect, voilà qui est fait. Donc merci d'éditer rapidement.

De plus votre explication est relativement confuse et n'incite pas à vous aider puisque ce que vous écrivez parait totalement abstrait !!!
Mettez vous à la place de quelqu'un qui ne voit pas ce que vous avez fait et expliquez plus clairement.

Edit : Pour information, voici deux explications de ce qu'est un offset :
http://fr.wikipedia.org/wiki/Offset_%28informatique%29
http://www.developpez.net/forums/d1497/ ... /#post9081
Je doute que cela corresponde à ce dont vous voulez nous parler.
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11830
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Incroyable mais vrai: autoit remplace les 00 par de

#3

Message par Tlem »

Après réflexion, en ce qui concerne votre demande, n'effectuez vous pas une opération en mode texte plutôt qu'en mode binaire ? :mrgreen:

Le copier/coller de caractères spéciaux ne fonctionne pas vraiment bien dans des applications tel que le bloc-notes ou assimilé. ^^
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
ELGAMALI
Niveau 5
Niveau 5
Messages : 184
Enregistré le : mar. 13 sept. 2011 00:06
Status : Hors ligne

Re: [R] Incroyable mais vrai: autoit remplace les 00 par des

#4

Message par ELGAMALI »

Bonsoir Tlem
1- Copiez ce texte Hex suivant : 4D 5A 50 00 02 00 00 00 04 00 0F 00 FF FF 00 00 sur le ploc notes puis enregistrer le.
2- Avec un éditeur hexadécimal par exemple : HexEdit (modification à faire avant Tools/options/Miscellaneous/activer : Typing replaces selection/ok) puis faite une copie du contenu sur un nouveau bloc notes, vérifiez avec HexEdit vous allez constatez que le texte reste inchangé.
3- Copie le texte du bloc notes (2) sur « SciTE Script Editor » de Autoit.
4- Puis copier le texte du bloc note (3) sur un nouveau bloc notes. Vous allez constater à l’aide de HexEdit que les 00 deviennent des 20.

00 Hex veut dire NUL (ne fait rien ou retour chariot) par cotre 20 Hex signifie espace (Space).Dans ce cas toutes les applications basées sur table ASCII seront inapplicable avec Autoit se qui revint à dire que les mauvais étudiants auraient 20 à leur bulletin à la place d’un 00.
Bon courage les amis.
Avatar du membre
Iste
Niveau 11
Niveau 11
Messages : 1870
Enregistré le : jeu. 04 déc. 2008 14:21
Localisation : 76
Status : Hors ligne

Re: [..] Incroyable mais vrai: autoit remplace les 00 par de

#5

Message par Iste »

Et en UTF8 ?
Signez ici
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11830
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Incroyable mais vrai: autoit remplace les 00 par de

#6

Message par Tlem »

Vous mélangez des outils et des données qui ne ne vont pas ensemble, alors forcément, ça fait de la mayonnaise !!!
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
ELGAMALI
Niveau 5
Niveau 5
Messages : 184
Enregistré le : mar. 13 sept. 2011 00:06
Status : Hors ligne

Re: [R] Incroyable mais vrai: autoit remplace les 00 par des

#7

Message par ELGAMALI »

Bonjour
le chiffre zéro (0) n'est pas un caractères spécial et le copier/coller il fonctionne parfaitement bien dans des applications tel que le bloc-notes ou assimilé mais il ne se mélange pas avec les outils et les données de la mayonnaise !!! un beug en le corrige c'est tout.
ELGAMALI
Niveau 5
Niveau 5
Messages : 184
Enregistré le : mar. 13 sept. 2011 00:06
Status : Hors ligne

Re: [R] Incroyable mais vrai: autoit remplace les 00 par des

#8

Message par ELGAMALI »

Bonjour Iste
svp voulez vous développer vos propos merci
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11830
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Incroyable mais vrai: autoit remplace les 00 par de

#9

Message par Tlem »

Vous confondez plusieurs choses.
Déjà, pour commencer, dans la séquence "4D 5A 50 00 02 00 00 00 04 00 0F 00 FF FF 00 00" vous avez des espaces intermédiaires, or sur de vraies données hexadécimale extraites d'un éditeur lui aussi hexadécimal, ces données n'y sont pas !!!
Ensuite, si je fait la première partie de ce que vous demandez :
ELGAMALI a écrit :Copiez ce texte Hex suivant : 4D 5A 50 00 02 00 00 00 04 00 0F 00 FF FF 00 00 sur le ploc notes puis enregistrer le.
mon bloc-notes me propose plusieurs types de fichiers :
  • ANSI
  • Unicode
  • Unicode big endian
  • UTF-8
Forcément, si vous choisissez le mauvais format avec en plus des données qui ne sont pas sensées être existante, cela ne risque pas de fonctionner.

Encore si vous m'aviez proposé :

Code : Tout sélectionner

4D5A50000200000004000F00FFFF0000
cela pourrait éventuellement fonctionner si vous utilisez le bon format, mais sans cela, aucune chance ...
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
ELGAMALI
Niveau 5
Niveau 5
Messages : 184
Enregistré le : mar. 13 sept. 2011 00:06
Status : Hors ligne

Re: [R] Incroyable mais vrai: autoit remplace les 00 par des

#10

Message par ELGAMALI »

Mais sa ne résous pas le beug Autoit
Avatar du membre
ZDS
Membre émérite
Membre émérite
Messages : 554
Enregistré le : jeu. 10 juin 2010 10:35
Localisation : 22300 Cul-d'chouette Langue-de-vache
Status : Hors ligne

Re: [..] Incroyable mais vrai: autoit remplace les 00 par de

#11

Message par ZDS »

Bonjour,

Tu n'as pas compris ce qu'on essaye de te dire Elgamali : IL N'Y A PAS DE BUG. En tout cas pas dans cet exemple là.

En effet tu mélanges les torchons et les serviettes, car en copiant du texte dans le bloc notes, tu ne touches pas du tout au binaire (en tout cas dans le bloc notes windows). Et AutoIt fonctionne très bien en mode binaire : les 0 sont des 0 et les 1 sont des 1, et comme on dit, qui peut le plus peut le moins.

Revérifie ton modus operandi avant de présenter un bug, car (je l'ai vu énormément dans mon boulot) un test qui plante ne vient pas toujours d'un programme qui plante, mais du test qui est mal conçu.

A bientôt.
ZDS : Chef de projet du nAiO (logiciel AutoIt gratuit sous licence CC 4.0 BY-NC-SA)
Tout problème a une solution, donc si il y a pas d'solution, c'est qu'il y a pas d'problème !
ELGAMALI
Niveau 5
Niveau 5
Messages : 184
Enregistré le : mar. 13 sept. 2011 00:06
Status : Hors ligne

Re: [..] Incroyable mais vrai: autoit remplace les 00 par de

#12

Message par ELGAMALI »

Bonjour ZDS

Je vous remercie de t'être penché sur ce bug autoit, pour le comprendre vous trouverez ci-joint fichier TEST.txt .
1- Ouvrir le fichier TEST.TXT ci-joint avec HexEdit, vous aller voir que les 00 sont bien là. Puis (edition/ sélectionner tout) copiez le contenu sur une page de SciTE Script Editor.
2- Copie le texte de la page SciTE Script Editor de Autoit vers un nouveau bloc notes.
3- Vous allez constater à l’aide de HexEdit que les 00 deviennent des 20.

Cordialement
Fichiers joints
TEST.TXT
(384 Octets) Téléchargé 83 fois
Avatar du membre
Iste
Niveau 11
Niveau 11
Messages : 1870
Enregistré le : jeu. 04 déc. 2008 14:21
Localisation : 76
Status : Hors ligne

Re: [..] Incroyable mais vrai: autoit remplace les 00 par de

#13

Message par Iste »

Déjà, rien a voir avec AutoIt vu que la on n'y touche même pas...
Ensuite, votre chaine n'est pas faites pour être copiée dans le presse papier, aussi, des données sont perdu ou modifiées quand on essaye.

Mais si je demande a AutoIt de faire la copie :

Code : Tout sélectionner

$file = FileOpen("TEST.TXT", 0)
FileWrite("TEST2.TXT", FileRead($file))
FileClose($file)
aucun souci.
Signez ici
Avatar du membre
Jerome
Niveau 9
Niveau 9
Messages : 661
Enregistré le : mar. 07 avr. 2009 08:35
Localisation : Picardie
Status : Hors ligne

Re: [..] Incroyable mais vrai: autoit remplace les 00 par de

#14

Message par Jerome »

Tlem a écrit :Vous mélangez des outils et des données qui ne ne vont pas ensemble, alors forcément, ça fait de la mayonnaise !!!
Coucou,


Comme le dit très bien Tlem, le mélange de format, sa fait des chocapics.


Il y a surement un autre moyen pour vous de "copier" cette chaîne de caractère (si j'ai bien compris le soucis) pour le pas utiliser de logiciel tiers qui vienne grappiller des informations et qui les perdent au passage.




Eߣ“B‚ˆmatroskaB‡B…S€g I©fä*×±ƒB@M€£libebml v0.7.7 + libmatroska v0.8.1WAAVSMatroskaFileD‰„GÖ< Daˆâj¶úö s¤·1
êÆƒ§¶->Që¢2¥T®k@æ®@×sńܒ®ƒ¹ˆUª œ mç#1O„?€ Uî †V_MPEG4/ISO/AVCª#ツbZ 3µœƒundc¢¨M@3ÿá gM@3št “`3 e0e@ hî<€à•°‚к‚@š T°‚ÐTº‚@®ÒׁsÅ„iÕy‘ƒ¹ˆUª œmç #1O„?€ Uî †‰A_MPEG/L3ª#ãƒ„Ž˜Ð3µœƒundት„G,D ŸìD


(J'aime surtout le MPEG a la fin, je sais pas de quoi provient cette chaine, mais c'est pas du txt xD)

PS : Matroska ??


Jérôme
ELGAMALI
Niveau 5
Niveau 5
Messages : 184
Enregistré le : mar. 13 sept. 2011 00:06
Status : Hors ligne

Re: [R] Incroyable mais vrai: autoit remplace les 00 par des

#15

Message par ELGAMALI »

Salut Iste
Que pensez-vous du résultat du code ci-dessous

Code : Tout sélectionner

If FileExists(@ScriptDir&"\TEST.TXT")Then
                        
$1=fileopen(@ScriptDir&"\TEST.TXT",0)
                        
$2=fileopen(@ScriptDir&"\TEST2.TXT",1)
                       
$txt=FileRead($1)
;filewrite($2,"ici c'est la copie du texte TEST.TXT"&$txt)
filewrite($2,"Eߣ“B‚ˆmatroskaB‡B…S€g          I©fä*×±ƒB@M€£libebml v0.7.7 + libmatroska v0.8.1WAAVSMatroskaFileD‰„GÖ< Daˆâj¶úö s¤·1êÆƒ§¶->Që¢2¥T®k@æ®@×sńܒ®ƒ¹ˆUª œ mç#1O„?€  Uî †V_MPEG4/ISO/AVCª#ツbZ 3µœƒundc¢¨M@3ÿá gM@3št “`3      e0e@ hî<€à•°‚к‚@š T°‚ÐTº‚@®ÒׁsÅ„iÕy‘ƒ¹ˆUª œmç #1O„?€  Uî †‰A_MPEG/L3ª#ãƒ„Ž˜Ð3µœƒundት„G,D ŸìD  "&$txt)

If FileExists(@ScriptDir&"\TEST2.TXT")Then
                          
FileClose($2)
FileClose($1)
EndIf
EndIf   
Honnêtement j'aimerai avoir votre avis.
Modifié en dernier par ELGAMALI le lun. 27 févr. 2012 15:59, modifié 2 fois.
ELGAMALI
Niveau 5
Niveau 5
Messages : 184
Enregistré le : mar. 13 sept. 2011 00:06
Status : Hors ligne

Re: [R] Incroyable mais vrai: autoit remplace les 00 par des

#16

Message par ELGAMALI »

Ne vous inquiéter pas cher Jerome ce n’est qu’un exemple parmi d’autre, mais comme vous le dit très bien il y a sûrement un autre moyen pour "copier" cette chaîne de caractère avec Autoit, ainsi le bug autoit sautera
Avatar du membre
Iste
Niveau 11
Niveau 11
Messages : 1870
Enregistré le : jeu. 04 déc. 2008 14:21
Localisation : 76
Status : Hors ligne

Re: [..] Incroyable mais vrai: autoit remplace les 00 par de

#17

Message par Iste »

J'en pense que pour avoir écrit ce code vous avez du copier coller le contenu via un éditeur de text, et que comme déja dis, le presse papier n'est pas fait pour stocker ce genre de données et que donc il ne faut pas s'attendre a retrouver le résultat de dépars...
De toute facon chez moi, la compilation ne passe pas du tout ! Et normal, ce genre de chaine n'a rien a faire dans un code..

Mais l'autre ligne "filewrite($2,"ici c'est la copie du texte TEST.TXT"&$txt)" prouve bien qu'il n'y a pas de bug avec AutoIt !

Encore une foi, ces valeurs sont du binaire et non des chaines de caractères ! Vous ne pouvez donc pas les manipuler avec des outils fait pour du texte comme le blocnote ou le copier/coller
Signez ici
ELGAMALI
Niveau 5
Niveau 5
Messages : 184
Enregistré le : mar. 13 sept. 2011 00:06
Status : Hors ligne

Re: [..] Incroyable mais vrai: autoit remplace les 00 par de

#18

Message par ELGAMALI »

Vous vous trompez c'est un véridique Bug pour les développeurs. AutoIt est un langage de création de script, normalement il doit stocker dans son presse papier les données binaire et aussi les chaînes de caractères n’est se pas !!!!!!???? D’après vous on ne peut pas sauter ce Bug, donc il faut au mois le contourné ; la solution est devant vous mais il faut tout simplement l’amélioré merci pour votre aide.
Modifié en dernier par ELGAMALI le lun. 27 févr. 2012 17:12, modifié 1 fois.
Avatar du membre
ZDS
Membre émérite
Membre émérite
Messages : 554
Enregistré le : jeu. 10 juin 2010 10:35
Localisation : 22300 Cul-d'chouette Langue-de-vache
Status : Hors ligne

Re: [..] Incroyable mais vrai: autoit remplace les 00 par de

#19

Message par ZDS »

Rebonjour,

Je pense que tu es plus de mauvaise foi sans même essayer de comprendre ce que disent Tlem, Iste, Jérôme, etc... : Le problème que tu as n'est pas lié à AutoIt, mais au mieux à Scintilla !

C'est comme d'ouvrir un fichier texte encodé en chinois (ou en binaire dans ton cas) dans un éditeur de texte qui ne lit pas le chinois de façon native (Scite). Normal dans ce cas que ça affiche des carrés (ou des espaces) à la place des caractères non traitables.

Après, mon raisonnement n'est certainement pas sans faille (j'essaye surtout de vulgariser les dires précédents), mais pas la peine de blâmer et de crier au bug alors que tu n'en as pas la certitude/preuve que ça vienne d'AutoIt et pas de ton environnement de développement. Si tu as un exemple plus concret, je suis preneur.

A bientôt !

Personnellement, quand je copie/colle ton texte "Eߣ“B‚ˆmatroskaB‡B…S€g I©fä*tagadatsointsoin" dans Scite, je me retrouve avec des symboles "illégaux" types [SOB], , [NAK], etc... Par contre, en partant de ton fichier TEST.TXT, en récupérant son contenu dans un script, et en le collant dans un autre fichier texte (EN BINAIRE), la comparaison de contenu (sous Notepad++ par exemple) tombe sur un match parfait... Ce qui prouve bien qu'AutoIt peut traiter tes caractères zarbis mais que Scite lui a du mal vu l'encodage utilisé.[spoiler="Lecture et copie, y a pas plus c*n comme code"][code=text]Local $fichier, $texte, $flux

; Récupération
$fichier = "Test.txt"
$flux    = FileOpen($fichier, 0)
$texte   = FileRead($flux)

; Enregistrement
$fichier = "Test2.txt"
$flux    = FileOpen($fichier,8+2)
FileWrite($flux, $texte)
FileClose($fichier)[/code][/spoiler]
ZDS : Chef de projet du nAiO (logiciel AutoIt gratuit sous licence CC 4.0 BY-NC-SA)
Tout problème a une solution, donc si il y a pas d'solution, c'est qu'il y a pas d'problème !
overflow
Niveau 5
Niveau 5
Messages : 138
Enregistré le : sam. 05 déc. 2009 23:49
Status : Hors ligne

Re: [..] Incroyable mais vrai: autoit remplace les 00 par de

#20

Message par overflow »

le "00" en valeur hexa copier dans le bloc note donne rien car il correspond a rien en valeur ascii
ce qui se traduit par un blanc
mais quand tu essaye d envoyer un "blanc" (espace en faite) de l ascii vers l hexa ca se traduit par un 0x20 ce qui est tout a fait normale car c est le code ascii de l espace

si tu veut editer des fichier binaire tu ouvre le fichier en binaire et tu lis la valeur des octet
et si tu veut les coller dans un bloc note il faut les transcodé dans leur équivalent ascii

pas de bug la juste des torchons et des serviettes dans le meme panier ;)
Verrouillé