Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Gestion des guillemets Mar 7 Mai 2019 - 1:39 | |
| Bonjour à tous ! Ah les guillemets ! Ces fameux guillemets ! Ils ne sont pas toujours faciles à insérer dans une chaîne de caractères et ça peut devenir rapidement un véritable casse-tête. Je vous propose ce petit utilitaire qui vous donnera rapidement la solution. Par exemple, vous souhaitez écrire : Le chat "noir"Le programme vous retournera comme modèle : a$ = "Le chat "+chr$(34)+"noir"+chr$(34)Merci aux testeurs de m’informer des éventuelles erreurs ! N’hésitez pas à modifier/améliorer le code et à le partager. Bonne programmation à tous ! - Code:
-
' gestion des guillemets DIM a$,b$,c$,d$,i%,n%,c% WIDTH 0,SCREEN_X HEIGHT 0,250 FONT_NAME 0,"Courier New" FONT_SIZE 0,12 COLOR 0,100,250,100
ALPHA 1 FONT_NAME 1,"Courier New" FONT_SIZE 1,12 n%=TEXT_WIDTH(" ",1) n%=WIDTH_CLIENT(0)/n% TOP 1,20 LEFT 1,50 CAPTION 1,"- Gestion des guillemets dans une chaîne de caractères - "+CHR$(34)+"ESC"+CHR$(34)+" pour quitter !"
ALPHA 2 FONT_NAME 2,"Courier New" FONT_ITALIC 2 FONT_SIZE 2,12 TOP 2,60 LEFT 2,10 CAPTION 2,"Je souhaite écrire :"
ALPHA 3 FONT_NAME 3,"Courier New" FONT_ITALIC 3 FONT_SIZE 3,12 TOP 3,140 LEFT 3,10 CAPTION 3,"J'écris :"
ALPHA 4 FONT_NAME 4,"Courier New" FONT_SIZE 4,12 TOP 4,165 LEFT 4,10 CAPTION 4,"a$="
Affichage_sortie() REPEAT a$=INKEY$ IF a$<>"" then go() PAUSE 20 UNTIL a$=CHR$(27) TERMINATE
END
SUB go() IF a$=CHR$(8) IF LEN(b$)=0 a$="" ELSE b$=LEFT$(b$,LEN(b$)-1) affichage_entree() affichage_sortie() EXIT_SUB END_IF END_IF IF a$=CHR$(34) a$="¤" END_IF b$=b$+a$ affichage_entree() affichage_sortie() END_SUB
SUB affichage_entree() PRINT_LOCATE 10,85 PRINT STRING$(n%," ") PRINT_LOCATE 10,85 FOR i% = 1 to LEN(b$) c$=MID$(b$,i%,1) IF c$="¤" c$=CHR$(34) END_IF PRINT c$; NEXT i% END_SUB
SUB affichage_sortie() PRINT_LOCATE 45,165 PRINT STRING$(n%," ") PRINT_LOCATE 45,165
IF b$="" PRINT CHR$(34); PRINT CHR$(34) EXIT_SUB END_IF
IF LEN(b$)=1 AND b$=CHR$(164) c$="CHR$(34)" PRINT c$ EXIT_SUB END_IF
IF MID$(b$,LEN(b$),1)=CHR$(164) IF LEN(b$)>1 IF MID$(b$,LEN(b$)-1,1)=CHR$(164) MESSAGE "Impossible de mettre deux guillemets consécutifs dans une chaîne de caractères." b$=LEFT$(b$,LEN(b$)-1) affichage_entree() affichage_sortie() EXIT_SUB END_IF END_IF END_IF FOR i% = 1 to LEN(b$) c$=MID$(b$,i%,1) IF i% = 1 IF c$="¤" PRINT "CHR$(34)+"; PRINT CHR$(34); c$="" ELSE PRINT CHR$(34); END_IF END_IF IF i% = LEN(b$) IF c$="¤" PRINT CHR$(34); PRINT "+CHR$(34)"; c$="" ELSE PRINT c$; PRINT CHR$(34); EXIT_SUB END_IF END_IF IF i% > 1 AND i% < LEN(b$) IF c$ ="¤" PRINT CHR$(34); PRINT "+chr$(34)+"; PRINT CHR$(34); c$="" END_IF END_IF
PRINT c$; NEXT i% END_SUB | |
|
papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Gestion des guillemets Mar 7 Mai 2019 - 3:28 | |
| Ah ! Oh ! Euh ! Les guillemets ! On en a discuté plusieurs fois sur le Forum, ici par exemple ou ici encore. - Code:
-
FONT_NAME 0,"Courier New" : font_bold 0 : font_size 0,12 print "Salut tous les Panoramiciens" print : print "Salut " + chr$(34) + "tous" + chr$(34) + " les Panoramiciens" print : print "Salut " + chr$(34) + "tous" + chr$(34) + " les " + chr$(34) + "Panoramiciens" + chr$(34) + " du Forum" print : print chr$(34) + chr$(34) + "Salut tous les Panoramiciens" + chr$(34) + chr$(34) print : print " " + chr$(34) + "Salut tous les Panoramiciens" + chr$(34) print : print "Salut " + chr$(34) + chr$(34)
- Spoiler:
| |
|