Ascii caractères de contrôle

Résolu
cs_lacomm Messages postés 298 Date d'inscription lundi 14 juin 2004 Statut Membre Dernière intervention 5 juillet 2013 - 5 sept. 2007 à 17:25
cs_lacomm Messages postés 298 Date d'inscription lundi 14 juin 2004 Statut Membre Dernière intervention 5 juillet 2013 - 6 sept. 2007 à 10:17
Hello,

Comment faire pour remplacer les caractères de contrôle ascii ?
Le code suivant marche bien pour les autres caractères ascii, mais pas pour les caractères de contrôle de 0 à 31

source() = Replace(source(i), Asc(65), " ")

Grand merci

5 réponses

cs_lacomm Messages postés 298 Date d'inscription lundi 14 juin 2004 Statut Membre Dernière intervention 5 juillet 2013 1
6 sept. 2007 à 10:17
En fait c'est très simple: soit utiliser une macro VBA, soit utiliser le logiciel RemplaceVite http://www.logitheque.com/fiche.asp?I=15378
Merci et à bientôt
3
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
6 sept. 2007 à 08:04
Salut,
Tu es sur que ce n'est plutot ceci qu'il faudrait pour remplacer correctement un A par un espace

Source(i) = Replace(Source(i), Chr(65), " ")

NOTE: ce code m'a aussi êrmis de remplacer les caractere de 0 à 31.

@+: Ju£i?n
Pensez: Réponse acceptée
0
cs_lacomm Messages postés 298 Date d'inscription lundi 14 juin 2004 Statut Membre Dernière intervention 5 juillet 2013 1
6 sept. 2007 à 08:20
Salut et merci

En fait j'ai une routine qui ouvre tous les fichiers d'un répertoire, et quand le dernier caractère est par exemple un A, ca marche, cad que les fichiers en entrée sont recopiés en sortie tels quels en changeant seulement le A ; par contre quand c'est le caractère 026 (substitute), la routine recopie seuelement le premier fichier, mais vide.
Avec ton code c'est la même chose.
Plus précisément il s'agit de fichiers contenant des nombre dont le dernier caractère est ce caractère de contôle que je voudrais effacer.

While sInputFilePath <> ""
    fnInput = FreeFile
    Open inputFolder & "" & sInputFilePath For Input As fnInput
    On Error Resume Next
    sInputTextEntier = Input(LOF(fnInput), fnInput)
    source() = Split(sInputTextEntier, " ")
    For i = 1 To UBound(source)
    j = 1
        For h = 1 To Len(source(i))
            c = Mid$(source(i), h, 1)
            If c = Chr(26) Then
                source(i) = Replace(source(i), Chr(26), " ")
                h = h + 1
                j = h
             End If
        Next h
        Print #fnoutput, source(i)
    Next i
     Close #fnInput
        Close #fnoutput
    sInputFilePath = Dir()
Wend
0
cs_lacomm Messages postés 298 Date d'inscription lundi 14 juin 2004 Statut Membre Dernière intervention 5 juillet 2013 1
6 sept. 2007 à 08:51
Autre exemple, si je fais
source() = Split(sInputTextEntier, chr(65))
le A disparait (OK)
mais si je fais
source() = Split(sInputTextEntier, chr(26))
rien n'est splitté
0

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

Posez votre question
cs_lacomm Messages postés 298 Date d'inscription lundi 14 juin 2004 Statut Membre Dernière intervention 5 juillet 2013 1
6 sept. 2007 à 09:31
Peut-être est-ce une explication ?

Substitute :
On MS-DOS systems with files opened in text mode, "end of text" or "end of file" is marked by the Ctrl-Z
character (code 26, "Substitute"), instead of ^C or ^D common on other
operating systems. In many programs, a keyboard input of Ctrl-Z is an "undo"
command to reverse the most recent input or action. In many terminal
programs, this will suspend the active process and return control to
the shell.
0
Rejoignez-nous