Ascii caractère invisible
15 sujets de 1 à 15 (sur un total de 28)
- 1
- 2
-
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
AdminSinirus : 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…
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.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.
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.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.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.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