Ascii caractère invisible
13 sujets de 16 à 28 (sur un total de 28)
- 1
- 2
-
Pas recu de MP (?)
Est-ce que tu peux renvoyer un autre échantillon beaucoup plus ‘lourd’ stp, avec tous les formatages possibles (bold,italic,underline,normal,font,color,…)
A600 Rev 1.5 + Vampire 600 V2-128.
A1200 Rev 1D4 + Blizzard 1230 III/50Mhz + 68882 + 256MB @ 50ns.Oki merci. Il y avait bien quelques codes en plus (ESCc, ESCl, ESC[s:value]). J’ai modifié un poil le code du coup.
;******************************* ;** 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() ; GetCLIArg() 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', 'c', 'i', 'l', '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
Je t’envoi l’exécutable sur ta boite mail pour tester. Question retours chariot, c’est à vérifier…
A600 Rev 1.5 + Vampire 600 V2-128.
A1200 Rev 1D4 + Blizzard 1230 III/50Mhz + 68882 + 256MB @ 50ns.super merci !!! 🙂
éclate toi bien au NASS
PS: J’ai mis à jour le fichier j’avai oublier l’alignement du text aussi qui peux posé problème
Salut Sinisrus,
Non en effet, reposé ce n’est pas le bon mot 🙂 Couché deux fois à 4h du mat’, il me faut encore une ou deux autres bonnes nuits de sommeil. Je suis resté très peu devant mon écran finalement. Pleins de machines à voir et surtout des gens qui partagent la même passion. J’ai quand même trouvé le temps de récupérer des environnements de dev c/cpp (gcc, entre autres) et les includes/autodocs.
A600 Rev 1.5 + Vampire 600 V2-128.
A1200 Rev 1D4 + Blizzard 1230 III/50Mhz + 68882 + 256MB @ 50ns.Salut,
J’ai testé en C (yeah) et il me semble que c’est ok.
C’est très certainement possible de faire largement mieux mais pour ma première commande en C/AmigaOS, je suis content. Merci AmiDevCPP, sans ajustement particulier.
#include <proto/dos.h> #include <stdio.h> #include <stdlib.h> #include <string.h> /* RemESC.exe * * DESC: Remove all ESC codes contained in the file given as argument * AUTHOR: flype * VERSION: 1.0 (beta) * USAGE: remesc.exe <file> * * List of ESC codes removed : * * ESCb [bold] * ESCc [?] * ESCi [italic] * ESCl [left-align] * ESCn [normal text] * ESCr [right-align] * ESCu [underline] * ESC[n] [?] * ESCp[n] [?] * */ int main(int argc, char *argv[]) { STRPTR ver = "$VER: RemESC 1.0 (13.5.2014) by flype\r\n"; if(argc < 2) { printf("Argument is missing\n"); return 0; } BPTR fh; if (fh = Open(argv[1], MODE_OLDFILE)) { int i, n; BOOL exitloop = FALSE; UBYTE line[255], *buffer; while(buffer = FGets(fh, line, 255)) { i = 0; n = strlen(line); while(i < n) { if(line == 27) { i++; exitloop = FALSE; while(!exitloop && i < n) { switch(line) { case 'b': case 'c': case 'i': case 'l': case 'n': case 'r': case 'u': exitloop = TRUE; i++; break; case '[': case 'p': while(!exitloop && i < n) { if(line == ']') exitloop = TRUE; i++; } break; } } } else { printf("%c", line); i++; } } } Close(fh); } else { printf("Can't open file\n"); } return 0; }
Je t’envoie l’exécutable par mail.
A600 Rev 1.5 + Vampire 600 V2-128.
A1200 Rev 1D4 + Blizzard 1230 III/50Mhz + 68882 + 256MB @ 50ns.Vu avec Sinisrus par MP, fonctionne nickel.
Nettoyage et optimisation du code :
/************************************************************************ * RemESC.exe ************************************************************************ * * DESC: Remove all Escape sequences * AUTHOR: flype, 14-may-2014 * VERSION: 1.0 * USAGE: remesc <file> * ************************************************************************ * * List of Escape Sequences removed : * * ESCb [bold] * ESCc [align-center] * ESCh [highlight] * ESCi [italic] * ESCl [align-left] * ESCn [normal] * ESCr [align-right] * ESCu [underline] * ESCp[x] [pen] * ESC[s:x] [separator] * * More documentations can be googled here : * http://www.google.fr/search?q=MUIA_TextEditor_ImportHook * ************************************************************************/ #include <proto/dos.h> #include <stdio.h> #define READCHAR (c = FGetC(fh)) != -1 int main(int argc, char *argv[]) { STRPTR ver = "$VER: remesc 1.0 (14.5.2014) for AmigaOS3\r\n"; if(argc > 1) { BPTR fh; if (fh = Open(argv[1], MODE_OLDFILE)) { char c; while(READCHAR) { if(c == 27) { if (READCHAR && (c == 'p' || c == '[')) while(READCHAR && c != ']') {} continue; } printf("%c", c); } printf("\n"); Close(fh); } else { printf("Can't open file\n"); } } else { printf("Argument is missing\n"); } return 0; }
A600 Rev 1.5 + Vampire 600 V2-128.
A1200 Rev 1D4 + Blizzard 1230 III/50Mhz + 68882 + 256MB @ 50ns.
13 sujets de 16 à 28 (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