Ascii caractère invisible

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

  • 1
  • 2
  • sinisrus

      #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

        #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

          #210465

          Je t’envoi ça demain

          sinisrus

            #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

              #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

                #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

                  #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

                    #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

                      #210517

                      Oui

                      flype

                        #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

                          #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

                            #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

                              #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

                                #210570

                                ok merci je t’ai envoyer mon mail en mp

                                flype

                                  #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