[R]Presse-Papier: impossible d'effacer certains caractères

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
martinbrait
Niveau 4
Niveau 4
Messages : 55
Enregistré le : ven. 06 mars 2009 17:17
Status : Hors ligne

[R]Presse-Papier: impossible d'effacer certains caractères

#1

Message par martinbrait »

Bonsoir,
J'ai stocké le contenu texte du presse-papier dans une variable, et j'essaie d'en nettoyer le contenu. J'ai beau m'escrimer à tenter d'effacer certains caractères "vides" stockés dans ma variable de presse-papier, je ne parviens absolument pas à les détruire.


Ce que je mets dans le presse-papier est le contenu d'un mail, sous thunderbird.

Je précise que dans ma situation, lorsque je parcours caractère par caractère mon mail,
je me rends compte d'anomalies lorsque j'ai en retour un code compris entre Chr(48) et Chr(57),
et que je vois dans mon presse papier l'affichage de carrés vides.
J'imagine que c'est parce que le contenu d'un presse-papier est toujours au format string(?)
Il s'agit des caractères Chr(49) à Chr(57).
Or, en temps normal:
$chr(48) va retourner : 0
$chr(49) va retourner : 1
$chr(50) va retourner : 2
$chr(51) va retourner : 3
$chr(52) va retourner : 4
$chr(53) va retourner : 5
$chr(54) va retourner : 6
$chr(55) va retourner : 7
$chr(56) va retourner : 8
$chr(57) va retourner : 9
Dans ma situation, ils sont en fait transcrits dans ma variable,
comme des caractères non reconnus (carrés vides)
► Afficher le texte

Est-ce normal? Merci, et à bientôt j'espère! :shock:
Modifié en dernier par martinbrait le jeu. 26 août 2010 17:20, modifié 1 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: [..]Presse-Papier: impossible d'effacer certains caractères

#2

Message par Iste »

Sans avoir fait de test, votre boucle For $j = LongueurMaxduPressePapier to 1 step -1 est inutile, StringReplace() parcourt déja toute la chaine. Il nous reste donc

Code : Tout sélectionner

For $i = 49 to 57
    StringReplace($ContenuDuPressePapier,Asc($i),"")
    StringReplace($ContenuDuPressePapier,Chr($i),"")
Next
PS : j'ai ajouté la balise de code a votre message, merci d'y penser a l'avenir
Signez ici
Avatar du membre
martinbrait
Niveau 4
Niveau 4
Messages : 55
Enregistré le : ven. 06 mars 2009 17:17
Status : Hors ligne

Re: [..]Presse-Papier: impossible d'effacer certains caractères

#3

Message par martinbrait »

Merci! Je réessaie tout de suite d'effacer mes "chiffres" carrés vides, récalcitrants!
Je n'ai pourtant que du texte ordinaire dans mon message, et par conséquent, la même chose dans le presse-papier(?)

Rien n'a changé. Je présume que mon message thunderbird est écrit dans un encodage spécia(?)

J'utilise cette instruction, pour stocker l'information dans le presse-papier:

Code : Tout sélectionner

$bak = ClipGet()
MsgBox(0, "Clipboard contains:", $bak)
Modifié en dernier par martinbrait le jeu. 12 août 2010 21:52, modifié 3 fois.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11824
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..]Presse-Papier: impossible d'effacer certains caractères

#4

Message par Tlem »

Vous n'expliquez pas comment vous faites pour récupérer la chaine à traiter.

Juste au cas ou, est-ce que ceci ne vous conviendrait pas ?

Code : Tout sélectionner

#Include <Clipboard.au3>

$ClipText = _ClipBoard_GetData($CF_TEXT)
MsgBox(0, '', $ClipText)
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
martinbrait
Niveau 4
Niveau 4
Messages : 55
Enregistré le : ven. 06 mars 2009 17:17
Status : Hors ligne

Re: [..]Presse-Papier: impossible d'effacer certains caractères

#5

Message par martinbrait »

Bonsoir!
Je viens d'utiliser l'instruction que vous préconisez, mais je suis toujours en échec pour effacer mes fameux caractères mal codés, directement copiés depuis un message du navigateur MozillaThunderbird. :?

J'ai également changé les options d'encodage des caractères sous thunderbird, mais il n'y a eu aucun changement.
Modifié en dernier par martinbrait le jeu. 12 août 2010 22:22, modifié 1 fois.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11824
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..]Presse-Papier: impossible d'effacer certains caractères

#6

Message par Tlem »

Peut-on voir une bride de cette fameuse chaine avec ces caractères récalcitrants ?
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
martinbrait
Niveau 4
Niveau 4
Messages : 55
Enregistré le : ven. 06 mars 2009 17:17
Status : Hors ligne

Re: [..]Presse-Papier: impossible d'effacer certains caractères

#7

Message par martinbrait »

LE TEXTE ORIGINAL EST JUSTE AU DESSOUS, AVEC LES ESPACES A ELIMINER!
Il suffit de copier la séquence ci-dessous directement dans le presse papier, pour se trouver dans la même situation, avec les espaces impossibles à éliminer! :x Je voudrais que toutes les phrases se suivent avec un espace d'intervalle uniquement, entre chaque phrases!
► Afficher le texte

Je croyais qu'il fallait effacer les caractères de tabulation Chr(10), Chr(13), bien sûr.
Les instructions préconisées StringReplace($ClipText,@CR,""), StringReplace($ClipText,@LF,"")
ne produisent aucun effet dans mon cas.
StringReplace($ClipText,@TAB,"")
StringReplace($ClipText,@CRLF,"")
sont également sans effet!
► Afficher le texte
Un forum excel me fait tout à fait penser à mon problème actuel sous autoit!
► Afficher le texte

Merci!
Modifié en dernier par martinbrait le jeu. 12 août 2010 23:52, modifié 6 fois.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11824
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..]Presse-Papier: impossible d'effacer certains caractères

#8

Message par Tlem »

Difficile de dire, puisque nous n'avons pas le texte original avec les caractères à éliminer.

Éventuellement, essayez ceci :

Code : Tout sélectionner

StringReplace($ClipText,@CR,"")
ou
StringReplace($ClipText,@LF,"")
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
Iste
Niveau 11
Niveau 11
Messages : 1870
Enregistré le : jeu. 04 déc. 2008 14:21
Localisation : 76
Status : Hors ligne

Re: [..]Presse-Papier: impossible d'effacer certains caractères

#9

Message par Iste »

J'ai comme un doute, pouvez vous nous donner un exemple de code qui opère ces changements svp ?
Signez ici
Avatar du membre
sylvanie
Niveau 11
Niveau 11
Messages : 1556
Enregistré le : jeu. 26 juil. 2007 21:31
Localisation : Paris
Status : Hors ligne

Re: [..]Presse-Papier: impossible d'effacer certains caractères

#10

Message par sylvanie »

Bonjour,
je proposerai un triple balayage e regexp :
un sur \x0a pour remplacer les retours chariot par " "
un sur toutes les valeurs de 0x00 à 0x1F pour les éliminer
un dernier sur les autres de 0x7f à FF
► Afficher le texte
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.
Avatar du membre
martinbrait
Niveau 4
Niveau 4
Messages : 55
Enregistré le : ven. 06 mars 2009 17:17
Status : Hors ligne

Re: [..]Presse-Papier: impossible d'effacer certains caractères

#11

Message par martinbrait »

Merci beaucoup Sylvanie :P , c'était effectivement par là qu'il fallait creuser.

Pour ma part , j'ai adapté avec les 4 lignes suivantes:

Code : Tout sélectionner

$ClipText=StringRegExpReplace($ClipText,"[\x0A]",";")
$ClipText=StringRegExpReplace($ClipText,"[\x00-\x1F]","")
$ClipText=StringRegExpReplace($ClipText,"[\x7F-\xFF]","")
$ClipText=StringRegExpReplace($ClipText,"[\x00-\x20]",";")
Désormais, le presse papier se charge parfaitement, sans espaces ou autres non attendus!
Répondre