Page 1 sur 1
ProperCase (vbProperCase en Visual Basic) by PB
Publié : lun. 13/juin/2016 18:36
par falsam
Par PB sur le forum anglophone, ProperCase permet de mettre chaque première lettre de chaque mot d'une phrase en majuscule.
■ Exemples :
charly chaplin devient Charly Chaplin
charLy chaPlin devient Charly Chaplin
Voila une fonction utile pour des applications de saisie d'adresses par exemple.
■ Le code
Code : Tout sélectionner
Procedure.s ProperCase(text$)
For r=1 To Len(text$)
pre=Asc(LCase(Mid(text$,r-1,1)))
cur=Asc(LCase(Mid(text$,r,1)))
If cur>96 And cur<123 And (r=1 Or pre<97 Or pre>122)
cur-32
EndIf
a$+Chr(cur)
Next
ProcedureReturn a$
EndProcedure
Debug ProperCase("charLy chaPlin")

Lien d'origine
http://www.purebasic.fr/english/viewtop ... 165#p52165
Re: ProperCase (vbProperCase en Visual Basic) by PB
Publié : lun. 13/juin/2016 19:31
par Zorro
variante probablement plus rapide
Code : Tout sélectionner
Declare.s propercase(text$)
Debug ProperCase("charLy chaPlin juniOr")
Procedure.s ProperCase(text$)
;by Zorro
For i=1 to CountString(text$," ")+1
extrait$=Lcase(StringField(text$,i," "))
deb$=UCase(left(extrait$,1))
fin$=right(extrait$,Len(extrait$)-1)
sort$=sort$+deb$+fin$+" "
Next i
ProcedureReturn trim(sort$)
EndProcedure
;
; Epb
Re: ProperCase (vbProperCase en Visual Basic) by PB
Publié : lun. 13/juin/2016 21:18
par Ar-S
Zorro, tu as oublié d'enlever le dernier espace ^^
Dans la même lignée.
Code : Tout sélectionner
Declare.s ProperCaZ(text$)
Procedure.s ProperCaZ(text$)
;by Ar-S
For i=1 To CountString(text$," ")+1
mot$ = StringField(text$, i, " ")
Mot$ = ReplaceString( Left(mot$,1), Left(mot$,1), UCase(Left(mot$,1)) )+Mid(mot$,2,Len(mot$)-1)+" "
Phrase.s + mot$
Next
ProcedureReturn Left (Phrase.s,Len(Phrase)-1)
EndProcedure
Debug ProperCaZ("charLy chaPlin juniOr")
Re: ProperCase (vbProperCase en Visual Basic) by PB
Publié : mar. 14/juin/2016 8:50
par Micoute
non, il aurait plutôt faire ça :
Code : Tout sélectionner
Declare.s propercase(text$)
Debug ProperCase("charLy chaPlin juniOr")
Procedure.s ProperCase(text$)
;by Zorro
For i=1 To CountString(text$," ")+1
extrait$=LCase(StringField(text$,i," "))
deb$=UCase(Left(extrait$,1))
fin$=Right(extrait$,Len(extrait$)-1)
sort$=sort$+deb$+fin$+" "
Next i
ProcedureReturn Left(sort$, Len(sort$) - 1)
EndProcedure
Re: ProperCase (vbProperCase en Visual Basic) by PB
Publié : mar. 14/juin/2016 9:02
par Zorro
Micoute a écrit :non, il aurait plutôt faire ça :

lorsqu'on cherche a corriger quelqu'un autant savoir le faire avec classe
exemple :
non, il aurai plutôt
du faire ça :
c'est quand meme plus, dans le principe , non ?
(mon principe qui consiste a utiliser des fonctions toutes faites de Purbasic ...simplifier au max )
Re: ProperCase (vbProperCase en Visual Basic) by PB
Publié : mar. 14/juin/2016 9:08
par Marc56
il aurait plutôt
dû faire ça
(verbe)

et je suis aussi d'accord avec toi,
Trimmer, ça va plus vite

Re: ProperCase (vbProperCase en Visual Basic) by PB
Publié : mar. 14/juin/2016 9:09
par Zorro
je ne faisais pas un cours sur l'orthographe
mais sur la programmation , ici on est pas chez Pivot

mon "du" en rouge marque juste son absence dans la Phrase a Micoute
Re: ProperCase (vbProperCase en Visual Basic) by PB
Publié : mar. 14/juin/2016 9:12
par Marc56
it was a joke
et j'en fais aussi (des fôtes) et en quantité.
(avec un peu de chance, ça va servir à d'autres)

Re: ProperCase (vbProperCase en Visual Basic) by PB
Publié : mar. 14/juin/2016 9:21
par Zorro
bon voici la course finale :
Code : Tout sélectionner
Declare.s propercase_pb(text$)
Declare.s propercase_zorro(text$)
Declare.s propercase_ar_s(text$)
TempsDepart_Pb = ElapsedMilliseconds() ; Récupère la valeur actuelle
For i=1 to 10000
ProperCase_pb("charLy chaPlin juniOr")
Next i
TempsEcoule_Pb = ElapsedMilliseconds()-TempsDepart_Pb
TempsDepart_Zorro = ElapsedMilliseconds() ; Récupère la valeur actuelle
For i=1 to 10000
ProperCase_zorro("charLy chaPlin juniOr")
Next i
TempsEcoule_Zorro = ElapsedMilliseconds()-TempsDepart_Zorro
TempsDepart_Ar_s = ElapsedMilliseconds() ; Récupère la valeur actuelle
For i=1 to 10000
ProperCase_zorro("charLy chaPlin juniOr")
Next i
TempsEcoule_Ar_s = ElapsedMilliseconds()-TempsDepart_Ar_s
; Affichage resultat
debug "by PB :"+str(TempsEcoule_Pb)
debug "by Zorro :"+str(TempsEcoule_Zorro)
debug "by Ar_s :"+str(TempsEcoule_Ar_s)
Procedure.s ProperCase_pb(text$)
;By Pb
For r=1 To Len(text$)
pre=Asc(LCase(Mid(text$,r-1,1)))
cur=Asc(LCase(Mid(text$,r,1)))
If cur>96 And cur<123 And (r=1 Or pre<97 Or pre>122)
cur-32
EndIf
a$+Chr(cur)
Next
ProcedureReturn a$
EndProcedure
Procedure.s ProperCase_Zorro(text$)
;by Zorro
For i=1 to CountString(text$," ")+1
extrait$=Lcase(StringField(text$,i," "))
deb$=UCase(left(extrait$,1))
fin$=right(extrait$,Len(extrait$)-1)
sort$=sort$+deb$+fin$+" "
Next i
ProcedureReturn trim(sort$)
EndProcedure
Procedure.s ProperCase_ar_s(text$)
;by Ar-S
For i=1 To CountString(text$," ")+1
mot$ = StringField(text$, i, " ")
Mot$ = ReplaceString( Left(mot$,1), Left(mot$,1), UCase(Left(mot$,1)) )+Mid(mot$,2,Len(mot$)-1)+" "
Phrase.s + mot$
Next
ProcedureReturn Left (Phrase.s,Len(Phrase)-1)
EndProcedure
;
; Epb
mais je dois avouer que la methode a Ar-s fini par gagner si on ajoute un zero a la boucle de test
et d'ailleurs, je ne comprends pas trop pourquoi ....

(en fait non , ça depends des moments ... ???)
en tout cas, la version PB est dans les choux

Re: ProperCase (vbProperCase en Visual Basic) by PB
Publié : mar. 14/juin/2016 9:26
par Kwai chang caine
Je ne connaissais pas ce terme
Bettement, je confondais entre ProperCase et CamelCase, merci de m'avoir éclairé
@Marc56
Completement hors sujet, mais j'aime bien ton avatar MARC tout dans la sobriété
En le démontrant sans le montrer, l'on ressent bien que tu veux faire une analogie discrète au psaume 23 de DAVID (pas celui du forum hein !!

) , " l’éternel est mon berger, Il me fait reposer dans de verts pâturages"
Tu veux inévitablement mettre en exergue, de par cette couleur représentant habituellement l'espérance, le fait qu'utiliser Purebasic, c'est se déplacer dans un univers de facilité et de bonheur ..
Bravo pour ce message à la fois discret mais non moins fort, que tu fais passer par le biais d'un si petit symbole de quelques mm²

Re: ProperCase (vbProperCase en Visual Basic) by PB
Publié : mar. 14/juin/2016 9:31
par Zorro
Kwai chang caine a écrit :
Completement hors sujet, mais j'aime bien ton avatar MARC tout dans la sobriété
En le démontrant sans le montrer, l'on ressent bien que tu veux faire une analogie discrète au psaume 23 de DAVID (pas celui du forum hein !!

) , " l’éternel est mon berger, Il me fait reposer dans de verts pâturages"
Tu veux inévitablement mettre en exergue, de par cette couleur représentant habituellement l'espérance, le fait qu'utiliser Purebasic, c'est se déplacer dans un univers de facilité et de bonheur ..
Bravo pour ce message à la fois discret mais non moins fort, que tu fais passer par le biais d'un si petit symbole de quelques mm²

I wanna love you
And treat you right
I wanna love you
Every day and every night

Re: ProperCase (vbProperCase en Visual Basic) by PB
Publié : mar. 14/juin/2016 9:58
par Marc56
Kwai chang caine a écrit :
@Marc56
Completement hors sujet, mais j'aime bien ton avatar MARC tout dans la sobriété
En le démontrant sans le montrer, l'on ressent bien que tu veux faire une analogie discrète au psaume 23 de DAVID (pas celui du forum hein !!

) , " l’éternel est mon berger, Il me fait reposer dans de verts pâturages"
Tu veux inévitablement mettre en exergue, de par cette couleur représentant habituellement l'espérance, le fait qu'utiliser Purebasic, c'est se déplacer dans un univers de facilité et de bonheur ..
Bravo pour ce message à la fois discret mais non moins fort, que tu fais passer par le biais d'un si petit symbole de quelques mm²

Ça en dit long sur l'interprétation (souvent totalement erronnée) des œuvres d'art que font les historiens du même métal sur n'importe quel tableau, sculpture après la mort de son auteur.
Vérité: Ce carré vert est simplement la couleur du fond de certaines montres LCD. Couleur particulièrement lisible même sans rétro éclairage et couleur que j'ai utilisé pour afficher l'heure sur mon programme
Comme je suis nul en graphisme, à force de simplifier l'icône, ça s'est reduit à ce carré vert
Less is more and
small is beautiful
Re: ProperCase (vbProperCase en Visual Basic) by PB
Publié : mar. 14/juin/2016 10:01
par Kwai chang caine
Ouaaaaahhhhh !!!! trop fort !!!!
Tu as raison, ça me fait rire bien souvent, moi qui suis plus cartésien qu'une porte logique AND, de voir des pelos phylosopher des heures sur un point rouge au milieu d'une toile, voir même pas de point rouge du tout

Je ne sais pas pourquoi, mais la simplicité de ton avatar, m'a fait pensé quelques secondes à eux
Bon ben on gardera au moins le coté reposant du vert, non ??
@Zorro
Si on m'avait dit qu'un jour je serais obligé de mettre ce que tu écris dans le traducteur anglais/français de GOOGLE

le temps changent !!! comme aurait dit Danyel
