PureBasic

Forums PureBasic
Nous sommes le Sam 24/Oct/2020 4:13

Heures au format UTC + 1 heure




Poster un nouveau sujet Répondre au sujet  [ 26 messages ]  Aller à la page 1, 2  Suivante
Auteur Message
 Sujet du message: Acronyme
MessagePosté: Mer 21/Aoû/2019 7:52 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 02/Oct/2011 16:17
Messages: 2317
Localisation: 50200 Coutances
Bonjour à tous,

pour ne pas polluer davantage le poste de SPH, je poste ici ma petite procédure Acronyme

Code:
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

_________________
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce GT 640 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 5.72 LTS
Un homme doit être poli, mais il doit aussi être libre !


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Acronyme
MessagePosté: Mer 21/Aoû/2019 19:59 
Hors ligne
Avatar de l’utilisateur

Inscription: Mer 09/Nov/2005 9:53
Messages: 4191
J'ai essayé mais ca n'a rien affiché :cry:

_________________
http://HexaScrabble.com/
!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Portable LENOVO ideapad 110-17ACL 64 bits
Version de PB : 5.70LTS - 32 bits


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Acronyme
MessagePosté: Mer 21/Aoû/2019 20:38 
Hors ligne
Avatar de l’utilisateur

Inscription: Jeu 29/Juil/2004 16:33
Messages: 2916
Localisation: Klyntar
SPH a écrit:
J'ai essayé mais ca n'a rien affiché :cry:


As tu ajouté Debug Acronyme("Ton Texte De Test") sous la procédure pour l'appeler ??? :D

Merci Micoute, fonctionne très bien.






@++

_________________
Windows 10 x64, PureBasic 5.72 1 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Acronyme
MessagePosté: Mer 21/Aoû/2019 21:45 
Hors ligne
Avatar de l’utilisateur

Inscription: Mer 09/Nov/2005 9:53
Messages: 4191
venom a écrit:
SPH a écrit:
J'ai essayé mais ca n'a rien affiché :cry:


As tu ajouté Debug Acronyme("Ton Texte De Test") sous la procédure pour l'appeler ??? :D

Merci Micoute, fonctionne très bien.






@++

Ba oui mais rien... Bon, je reessaye : ........... Tjr rien

Code:
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")


_________________
http://HexaScrabble.com/
!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Portable LENOVO ideapad 110-17ACL 64 bits
Version de PB : 5.70LTS - 32 bits


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Acronyme
MessagePosté: Mer 21/Aoû/2019 22:05 
Hors ligne
Avatar de l’utilisateur

Inscription: Ven 27/Oct/2006 12:19
Messages: 1251
Localisation: Calvados (14)
@SPH : normal tu as demandé la procédure sur un texte sans majuscule

Comme ça ça marche mieux :

Code:
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")

_________________
Image
Image


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Acronyme
MessagePosté: Mer 21/Aoû/2019 22:08 
Hors ligne
Avatar de l’utilisateur

Inscription: Mer 09/Nov/2005 9:53
Messages: 4191
Donc, c'etait pas de ma faute :P :lol:

_________________
http://HexaScrabble.com/
!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Portable LENOVO ideapad 110-17ACL 64 bits
Version de PB : 5.70LTS - 32 bits


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Acronyme
MessagePosté: Jeu 22/Aoû/2019 8:21 
Hors ligne
Avatar de l’utilisateur

Inscription: Jeu 29/Juil/2004 16:33
Messages: 2916
Localisation: Klyntar
Ba je t'ai mis un exemple avec des majuscules exprès. :?






@++

_________________
Windows 10 x64, PureBasic 5.72 1 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Acronyme
MessagePosté: Jeu 22/Aoû/2019 12:45 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 02/Oct/2011 16:17
Messages: 2317
Localisation: 50200 Coutances
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"

_________________
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce GT 640 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 5.72 LTS
Un homme doit être poli, mais il doit aussi être libre !


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Acronyme
MessagePosté: Jeu 22/Aoû/2019 17:25 
Hors ligne
Avatar de l’utilisateur

Inscription: Jeu 29/Juil/2004 16:33
Messages: 2916
Localisation: Klyntar
Oui, c'est mieux ainsi. et merci pour l'astuce des '@' et '[' j’ignorais. 8)
Ps: merci aussi pour Acronyme NINJA. Je ne savais pas :lol:






@++

_________________
Windows 10 x64, PureBasic 5.72 1 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Acronyme
MessagePosté: Jeu 22/Aoû/2019 17:40 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 09/Oct/2005 16:51
Messages: 9027
En Mixant le code de taz et le tiens

Code:
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")

_________________
~~~~Règles du forum ~~~~
.: Ar-S :. Tour + portable W10 x64 PB 5.6x / 5.7x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Acronyme
MessagePosté: Ven 23/Aoû/2019 5:25 
Hors ligne
Avatar de l’utilisateur

Inscription: Mer 09/Nov/2005 9:53
Messages: 4191
Premiere fois que je vois ca et je ne sais pas ce que ca veux dire :

Code:
    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 :?:

_________________
http://HexaScrabble.com/
!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Portable LENOVO ideapad 110-17ACL 64 bits
Version de PB : 5.70LTS - 32 bits


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Acronyme
MessagePosté: Ven 23/Aoû/2019 7:30 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 02/Oct/2011 16:17
Messages: 2317
Localisation: 50200 Coutances
@ 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.

_________________
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce GT 640 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 5.72 LTS
Un homme doit être poli, mais il doit aussi être libre !


Dernière édition par Micoute le Ven 23/Aoû/2019 14:22, édité 2 fois.

Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Acronyme
MessagePosté: Ven 23/Aoû/2019 8:21 
Hors ligne
Avatar de l’utilisateur

Inscription: Jeu 29/Juil/2004 16:33
Messages: 2916
Localisation: Klyntar
@SPH
Dans PureBasic fait Alt+A et tu comprendra. :wink:
Le code de Micoute prend uniquement les caractères entre " @ " et " [ " ce qui correspond a l'alphabet en majuscule (voir Alt+A) :D Et je trouve cette astuce sympathique.







@++

_________________
Windows 10 x64, PureBasic 5.72 1 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Acronyme
MessagePosté: Ven 23/Aoû/2019 20:15 
Hors ligne
Avatar de l’utilisateur

Inscription: Lun 24/Juin/2019 12:19
Messages: 8
Je trouve que cette procedure est un bel exemple technique. 8)

SPH a raison, l’exemple n’est pas compréhensible à la première lecture. 8O

En ajoutant ‘=‘ + l’usage dans une variable cela le devient.

Code:
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")


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Acronyme
MessagePosté: Sam 24/Aoû/2019 8:47 
Hors ligne
Avatar de l’utilisateur

Inscription: Mar 31/Mai/2016 9:06
Messages: 2154
autre façon ..

Code:
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")

_________________
Image
Image
Site: http://michel.dobro.free.fr/
Devise :"dis moi ce dont tu as besoin, je t'expliquerai comment t'en passer"


Haut
 Profil  
Répondre en citant le message  
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 26 messages ]  Aller à la page 1, 2  Suivante

Heures au format UTC + 1 heure


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 9 invités


Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages

Rechercher:
Aller à:  
cron

 


Powered by phpBB © 2008 phpBB Group | Traduction par: phpBB-fr.com
subSilver+ theme by Canver Software, sponsor Sanal Modifiye