Ascii caractère invisible

15 sujets de 1 à 15 (sur un total de 28)

  • 1
  • 2
  • sinisrus

    • Messages : 2369
    #210244

    Bonjour,

     

    j’aimerai savoir comment faire pour supprimer les caractères invisible du genre bp[0] et np[3] dans une fichier texte acsii? avec un script arexx si possible?

     

    merci d’avance

    flype

    • Messages : 1097
    #210458

    Salut

    Faudrait que je teste… En PureBasic, c’est pas bien difficile.

    Tu as un ou deux fichiers de test sous la main ?

    A600 Rev 1.5 + Vampire 600 V2-128.
    A1200 Rev 1D4 + Blizzard 1230 III/50Mhz + 68882 + 256MB @ 50ns.

    sinisrus

    • Messages : 2369
    #210465

    Je t’envoi ça demain

    sinisrus

    • Messages : 2369
    #210481

    Voici le lien d’un script arexx qui doit afficher du text coucou 1, coucou 2, etc…

    http://amitheme.amiga-ng.org/amiga/TextColor.rexx.lha

     

    Merci d’avance pour ton aide

    Admin

    bigdan

    • Messages : 4721
    #210495

    Sinirus : regarde du coté de Say overlay() en Arexx ou sinon tu as un multitude de petits outils qui le font avec des expressions régulières ou pas..

    Pour les CR spécifiquement, tu as une option « Strip CR Marked » dans CygnusED et sinon j’avais pondu un script arexx our CygnusEd il y a quinze ans qui sélectionnait tout le texte et virait tous les CR en conservant les LF (retour lignes amiga)…

    http://aminet.net/package/util/rexx/stripcr

    C’est le même principe mais tu veux virer d’autre caractères…

    flype

    • Messages : 1097
    #210506

    Je ne suis pas sûr de ce que tu veux sinisrus.

    Je veux dire, les commandes bp[0] et np[3] ne sont pas invisibles. C’est du texte. Seuls les caractères ESC (0x1B) ne sont pas visibles.

    D’où proviennent ces séquences de caractères ESCb, ESCn et ESCp[valeur], etc… ? Un copier/coller depuis une page web ? Ou un éditeur sous linux ou windows qui te les rajoute ?

    Pour ce qui est des retour-chariots type LF (0x0A), CR (0x0D), CRLF (0x0D0A) çà n’a pas l’air de perturber Arexx, çà s’exécute bien.

    Bref, si j’ai bien compris, ce que tu veux c’est obtenir un fichier texte, purgé des séquences ESCb, ESCn et ESCp[valeur]. Afin d’obtenir, concernant ton fichier texte échantillon ceci :

    /* Script arexx Test */
    
    say "Coucou 1"
    say "Coucou 2"
    say "Coucou 3"
    say "Coucou 4"
    say "Coucou 5"
    say "Coucou 6"
    

    au lieu de :

    /* Script arexx Test */
    
    ESCbESCp[8]say "Coucou 1"ESCnESCp[0]
    ESCbESCp[10]say "Coucou 2"ESCnESCp[0]
    ESCbESCp[12]say "Coucou 3"ESCnESCp[0]
    ESCbESCp[13]say "Coucou 4"ESCnESCp[0]
    ESCbESCp[14]say "Coucou 5" ESCnESCp[0]
    ESCbESCp[15]say "Coucou 6"ESCn

    A600 Rev 1.5 + Vampire 600 V2-128.
    A1200 Rev 1D4 + Blizzard 1230 III/50Mhz + 68882 + 256MB @ 50ns.

    sinisrus

    • Messages : 2369
    #210511

    En faite je veux retirer de mon texte les couleur,bold,italic, je veux juste du texte simple qui soit lisible avec arexx sinon ça passe pas. C’est pour mon ide arexx, rxmui je veux ajouter la coloration syntaxique mais je doit pouvoir purger mon text pour qu’il s’execute.

    flype

    • Messages : 1097
    #210516

    Ok je comprends mieux. Donc les caractères ESCb,n,p sont ajoutés par quel composant ? le composant MUI TextEditor.mcc ?

    A600 Rev 1.5 + Vampire 600 V2-128.
    A1200 Rev 1D4 + Blizzard 1230 III/50Mhz + 68882 + 256MB @ 50ns.

    sinisrus

    • Messages : 2369
    #210517

    Oui

    flype

    • Messages : 1097
    #210530

    T’es sûr qu’il n’y a pas une propriété ou une fonction du genre GetText() dans le TextEdit.mcc qui ne renvoie que le texte brut ? Et de plus il faut de la doc pour connaitre toutes les commandes de formatage.

    A600 Rev 1.5 + Vampire 600 V2-128.
    A1200 Rev 1D4 + Blizzard 1230 III/50Mhz + 68882 + 256MB @ 50ns.

    flype

    • Messages : 1097
    #210554

    Je viens de regarder dans la doc du TextEdit.mcc ici :

    http://sourceforge.net/projects/texteditor-mcc/files/TextEditor.mcc/15.45/

    Tu as à ta disposition la fonction suivante :

    DoMethod(obj, MUIM_TextEditor_ExportText);

    A utiliser conjointement avec :

    MUIV_TextEditor_ExportHook_NoStyle
    Export all text like the 'Plain' variant, <strong>but strip off all style relevant ESC (33) sequences</strong>. 
    Also converts the escape sequences for the thick and thin separator bar into <tsb> and <sb> like the 'EMail' hook.

    Dans quel langage tu développes rxmui ? Si c’est en C, tu dois pouvoir utiliser cette fonction.

    A600 Rev 1.5 + Vampire 600 V2-128.
    A1200 Rev 1D4 + Blizzard 1230 III/50Mhz + 68882 + 256MB @ 50ns.

    sinisrus

    • Messages : 2369
    #210556

    oui en rxmui est cette fonction n’est pas supporter par rxmui. Sinon un outil en ligne de commande C peut faire l’affaire mais je ne fais pas de C :-/

    flype

    • Messages : 1097
    #210569

    J’ai codé cette nuit un outil en ligne de commande en PureBasic et ça fonctionne nickel au niveau du parser par contre je me rend compte combien la version PureBasic4 n’est franchement super fiable. J’ai eu quelques GURUs et la fonction de lecture des arguments de la ligne de commandes ne fonctionne pas. Mais en gros ça marche. Je vais sans doute faire une remontée de bug chez Fred Laboureur (the man behind PB).  Maintenant que j’ai mon proto/proof of concept, je dois pouvoir le recoder en C. Ce sera mon petit défi, je n’ai jamais codé sous AmigaOS en C, j’ai repris l’Amiga que très récemment alors patience. Je peux t’envoyer par mail l’exécutable. Pour l’heure il faut choisir le fichier par ASL requester a défaut et je te fais suivre le code PureBasic ci après.

    A600 Rev 1.5 + Vampire 600 V2-128.
    A1200 Rev 1D4 + Blizzard 1230 III/50Mhz + 68882 + 256MB @ 50ns.

    sinisrus

    • Messages : 2369
    #210570

    ok merci je t’ai envoyer mon mail en mp

    flype

    • Messages : 1097
    #210572

    Voilà le source en PureBasic. C’est codé à l’arrache hein, pas optimisé, et en un bloc, mais bon j’imagine qu’il n’y aura jamais de grand fichier à traiter.

    ;*******************************
    ;** AmigaOS/MUITextEdit.mcc   **
    ;** Suppression des codes ESC **
    ;*******************************
    
    EnableExplicit
    
    Global file.s, plaintext.s, line.s, i, n, c
    
    If NumberOfCLIArgs() = 0
      file = FileRequester(0)
    Else
      file = ProgramParameter()
    EndIf
    
    If file = ""
      PrintN("Argument missing")
      End
    EndIf
    
    If ReadFile(0, file)
      While Eof() = 0
        plaintext = ""
        line = ReadString()
        n = Len(line)
        i = 1
        While i <= n
          c = Asc(Mid(line, i, 1))
          If c = 27
            i + 1
            While i <= n
              c = Asc(Mid(line, i, 1))
              Select c
                Case 'b', 'i', 'n', 'u':
                  i + 1
                  Break
                Case 'p':
                  While i <= n
                    c = Asc(Mid(line, i, 1))
                    i + 1
                    If c = ']'
                      Break
                    EndIf
                  Wend
                  Break
              EndSelect
            Wend
          Else
            plaintext + Chr(c)
            i + 1
          EndIf
        Wend
        PrintN(plaintext)
      Wend
      CloseFile(0)
    Else
      PrintN("Can't open file")
    EndIf      
    

    A600 Rev 1.5 + Vampire 600 V2-128.
    A1200 Rev 1D4 + Blizzard 1230 III/50Mhz + 68882 + 256MB @ 50ns.

15 sujets de 1 à 15 (sur un total de 28)

  • 1
  • 2
  • Vous devez être connecté pour répondre à ce sujet.

Forums AmigaOS, MorphOS et AROS Développement Ascii caractère invisible

Amiga Impact