Page 1 sur 2
Acronyme
Publié : mer. 21/août/2019 7:52
par Micoute
Bonjour à tous,
pour ne pas polluer davantage le poste de SPH, je poste ici ma petite procédure Acronyme
Code : Tout sélectionner
Procedure.s Acronyme(sTexte.s)
nCompteur = CountString(sTexte, " ") + 1
For nIndex = 1 To nCompteur
If Asc(Left(StringField(sTexte, nIndex, " "),1)) > '@' And
Asc(Left(StringField(sTexte, nIndex, " "),1)) < '['
sMot.s = Left(StringField(sTexte, nIndex, " "),1)
sResultat.s + sMot
EndIf
Next
ProcedureReturn sResultat
EndProcedure
Re: Acronyme
Publié : mer. 21/août/2019 19:59
par SPH
J'ai essayé mais ca n'a rien affiché

Re: Acronyme
Publié : mer. 21/août/2019 20:38
par venom
SPH a écrit :J'ai essayé mais ca n'a rien affiché

As tu ajouté
Debug Acronyme("Ton Texte De Test") sous la procédure pour l'appeler ???
Merci Micoute, fonctionne très bien.
@++
Re: Acronyme
Publié : mer. 21/août/2019 21:45
par SPH
venom a écrit :SPH a écrit :J'ai essayé mais ca n'a rien affiché

As tu ajouté
Debug Acronyme("Ton Texte De Test") sous la procédure pour l'appeler ???
Merci Micoute, fonctionne très bien.
@++
Ba oui mais rien... Bon, je reessaye : ........... Tjr rien
Code : Tout sélectionner
Procedure.s Acronyme(sTexte.s)
nCompteur = CountString(sTexte, " ") + 1
For nIndex = 1 To nCompteur
If Asc(Left(StringField(sTexte, nIndex, " "),1)) > '@' And
Asc(Left(StringField(sTexte, nIndex, " "),1)) < '['
sMot.s = Left(StringField(sTexte, nIndex, " "),1)
sResultat.s + sMot
EndIf
Next
ProcedureReturn sResultat
EndProcedure
Debug Acronyme("je suis super genial")
Re: Acronyme
Publié : mer. 21/août/2019 22:05
par TazNormand
@SPH : normal tu as demandé la procédure sur un texte sans majuscule
Comme ça ça marche mieux :
Code : Tout sélectionner
Procedure.s Acronyme(sTexte.s)
nCompteur = CountString(sTexte, " ") + 1
For nIndex = 1 To nCompteur
If (Asc(Left(StringField(sTexte, nIndex, " "),1)) > '@' And
Asc(Left(StringField(sTexte, nIndex, " "),1)) < '[') Or (Asc(Left(StringField(sTexte, nIndex, " "),1)) > 96 And
Asc(Left(StringField(sTexte, nIndex, " "),1)) < 123)
sMot.s = Left(StringField(sTexte, nIndex, " "),1)
sResultat.s + sMot
EndIf
Next
ProcedureReturn sResultat
EndProcedure
Debug Acronyme("je suis super genial")
Re: Acronyme
Publié : mer. 21/août/2019 22:08
par SPH
Donc, c'etait pas de ma faute

Re: Acronyme
Publié : jeu. 22/août/2019 8:21
par venom
Ba je t'ai mis un exemple avec des majuscules exprès.
@++
Re: Acronyme
Publié : jeu. 22/août/2019 12:45
par Micoute
Bonjour à tous,
avec ma méthode qui ne fonctionne qu'avec des majuscules, on peut taper "Nouvel Institut National des Jeunes Aveugles",
ça fait "NINJA" et non pas "nindja"
Re: Acronyme
Publié : jeu. 22/août/2019 17:25
par venom
Oui, c'est mieux ainsi. et merci pour l'astuce des
'@' et
'[' j’ignorais.
Ps: merci aussi pour Acronyme
NINJA. Je ne savais pas
@++
Re: Acronyme
Publié : jeu. 22/août/2019 17:40
par Ar-S
En Mixant le code de taz et le tiens
Code : Tout sélectionner
Procedure.s Acronyme(sTexte.s)
T$ = RemoveString(sTexte,"des ",#PB_String_NoCase)
T$ = RemoveString(T$,"de ",#PB_String_NoCase)
T$ = RemoveString(T$,"ces ",#PB_String_NoCase)
T$ = RemoveString(T$,"ce ",#PB_String_NoCase)
T$ = RemoveString(T$,"les ",#PB_String_NoCase)
T$ = RemoveString(T$,"le ",#PB_String_NoCase)
;(tu ajoutes ce que tu veux)
nCompteur = CountString(T$, " ") + 1
For nIndex = 1 To nCompteur
If (Asc(Left(StringField(T$, nIndex, " "),1)) > '@' And
Asc(Left(StringField(T$, nIndex, " "),1)) < '[') Or (Asc(Left(StringField(T$, nIndex, " "),1)) > 96 And
Asc(Left(StringField(T$, nIndex, " "),1)) < 123)
sMot.s = Left(StringField(T$, nIndex, " "),1)
sResultat.s + sMot
EndIf
Next
ProcedureReturn UCase(sResultat)
EndProcedure
Debug Acronyme("Nouvel institut national des jeunes aveugles")
Re: Acronyme
Publié : ven. 23/août/2019 5:25
par SPH
Premiere fois que je vois ca et je ne sais pas ce que ca veux dire :
Code : Tout sélectionner
If (Asc(Left(StringField(sTexte, nIndex, " "),1)) > '@' And Asc(Left(StringField(sTexte, nIndex, " "),1)) < '[')
If(Asc(Left(StringField(sTexte, nIndex, " "),1)) > 96 And Asc(Left(StringField(sTexte, nIndex, " "),1)) < 123)
Quelqu'un a une torche ? Enfin,... je veux dire : qqun peux m'eclairer

Re: Acronyme
Publié : ven. 23/août/2019 7:30
par Micoute
@ SPH : pourquoi > '@' et < '[' ? Parce que la valeur Ascii de @, c'est 64 donc inférieure à 65 qui est la valeur de 'A' et idem pour '[' dont la valeur Ascii est 91, donc supérieure à 'Z' qui a la valeur 90.
la ligne suivante reprend le même principe pour les minuscules 'a' .. 'z', 97 .. 122.
Re: Acronyme
Publié : ven. 23/août/2019 8:21
par venom
@SPH
Dans PureBasic fait Alt+A et tu comprendra.
Le code de Micoute prend uniquement les caractères entre " @ " et " [ " ce qui correspond a l'alphabet en majuscule (voir Alt+A)

Et je trouve cette astuce sympathique.
@++
Re: Acronyme
Publié : ven. 23/août/2019 20:15
par Itsy Bitsy
Je trouve que cette procedure est un bel exemple technique.
SPH a raison, l’exemple n’est pas compréhensible à la première lecture.
En ajoutant ‘=‘ + l’usage dans une variable cela le devient.
Code : Tout sélectionner
Procedure.s Acronyme(sTexte.s)
PROTECTED car.c
T$ = RemoveString(sTexte,"des ",#PB_String_NoCase)
T$ = RemoveString(T$,"de ",#PB_String_NoCase)
T$ = RemoveString(T$,"ces ",#PB_String_NoCase)
T$ = RemoveString(T$,"ce ",#PB_String_NoCase)
T$ = RemoveString(T$,"les ",#PB_String_NoCase)
T$ = RemoveString(T$,"le ",#PB_String_NoCase)
T$ = RemoveString(T$,"un ",#PB_String_NoCase)
T$ = RemoveString(T$,"une ",#PB_String_NoCase)
;(tu ajoutes ce que tu veux)
nCompteur = CountString(T$, " ") + 1
For nIndex = 1 To nCompteur
car=Asc(Left(StringField(T$, nIndex, " "),1))
If (car >= 'A' And car =< 'Z') Or (car >= 'a' And car =< 'z')
sMot.s = Left(StringField(T$, nIndex, " "),1)
sResultat.s + sMot
EndIf
Next
ProcedureReturn UCase(sResultat)
EndProcedure
Debug Acronyme("Nouvel institut national des jeunes aveugles")
Re: Acronyme
Publié : sam. 24/août/2019 8:47
par Zorro
autre façon ..
Code : Tout sélectionner
Procedure.s Acronyme(Text.s)
es=CountString(Text.s," ")+1
For i=1 to ES
mot.s=StringField(text.s,i," ")
ext.s=left(mot.s,1)
if len(mot.s)>3
acro.s=acro.s+ext.s+"."
Endif
Next i
ProcedureReturn UCase(acro.s)
EndProcedure
Debug Acronyme("Nouvel institut national des jeunes aveugles")