FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Logiciel de planétarium.
Demande divers à Klaus Emptypar Pedro Aujourd'hui à 8:08

» Un autre pense-bête...
Demande divers à Klaus Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
Demande divers à Klaus Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
Demande divers à Klaus Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
Demande divers à Klaus Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
Demande divers à Klaus Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
Demande divers à Klaus Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
Demande divers à Klaus Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
Demande divers à Klaus Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
Demande divers à Klaus Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
Demande divers à Klaus Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
Demande divers à Klaus Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
Demande divers à Klaus Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
Demande divers à Klaus Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
Demande divers à Klaus Emptypar leclode Ven 20 Sep 2024 - 19:02

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2024
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier
-38%
Le deal à ne pas rater :
Ecran PC gaming 23,8″ – ACER KG241Y P3bip à 99,99€
99.99 € 159.99 €
Voir le deal

 

 Demande divers à Klaus

Aller en bas 
AuteurMessage
Invité
Invité




Demande divers à Klaus Empty
MessageSujet: Demande divers à Klaus   Demande divers à Klaus EmptySam 15 Fév 2014 - 2:25

fonction d'un INSTR( avec différents séparateurs)
titre changé, généraliste.

Au départ je pensais juste répondre à tes questions pour un super_instr avec le nom que tu veux).

J'ai fais un code rapide. Celui-ci regarde une chaine de caractères, qui est une ligne de code.
En basic, il m'a semblé plus simple d'avoir un retour sous forme d'une chaine, avec un repère de position avec un caractère particulier à la place du symbole recherché. Il suffit avec INSTR() de regarder cette chaine en retour, pour prendre les positions à la suite. Cela évite un tas de teste, et on peut lire le caractère en rapport au repère.
En lançant le programme on comprend mieux. -ici j'ai repris la copie que je pensais mettre sur un autre post, mais c'était pas raisonnable -

Maintenant le retour, peut être aussi une liste de nombre de la position de chaque repère. Si tu es partant, tu fais comme tu veux. Si on lance le programme, on voit que c'est long. Telque je le pense pour maintenant, je vois une instruction qui a la chaine en paramètre, suivi d'un séparateur spécifique, pour séparer les différents caractères, car ils peuvent parfois être associés, puis la liste des séparateurs. J'ai pas de nom à proposer, mais voila un exemple:
Code:
   separe$ = " |,|:|<|>|<>|><|=|>=|=>|=<|<=|'|/|*|+|-|" + g$ + "|"
   a$ = " For a% = 1 to 10:print " + g$ + "for de toute expérience" + g$ + ": next a%:if a%>=10 then a%=10: ' fin de la ligne"
   separe(a$ , "|" ,separe$)

g$ est ici un guillemet.

hors sujet:

Si tu le fais , tu le fais quand tu veux.


Dernière édition par cosmos70 le Dim 16 Fév 2014 - 1:33, édité 2 fois
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

Demande divers à Klaus Empty
MessageSujet: Re: Demande divers à Klaus   Demande divers à Klaus EmptySam 15 Fév 2014 - 10:52

Regarde la nouvelle fonction CreateMask dans le groupe des fonctions de traitement des chaînes de caractères. Et voici ton code modifié pour gérer, à la fois ta procédure separe(...), et ma fonction CreateMask. si tu désactives ta procédure separe(...) en mettant la ligne en commentaire, tu pourras apprécier la vitesse d'exécution de la fonction CreateMask.

Voici le source:
Code:
dim g$ , t$
g$ = chr$(34) : t$ = chr$(13)
width 0,screen_x : font_name 0,"Consolas" : font_size 0,10 : font_bold 0
edit 1 : width 1,width(0)-30 : height 1,30
edit 2 : width 2,width(1) : height 2,30 : top 2,30
edit 4 : width 4,width(1) : height 4,30 : top 4,60
memo 3 : top 3,90: width 3,width(1) : height 3,400 : print_target_is 3
dll_on "KGF.dll"
teste()
end
' ====================
sub teste()
  dim_local a$,separe$, separe2$
  dim_local msk1$, msk2$, b$, res%
  msk1$ = "*" : msk2$ = "="
  separe$  = " |,|:|<|>|<>|><|=|>=|=>|=<|<=|'|/|*|+|-|" + g$ + "|"
  separe2$ = " ,:<>='/*+-"
  a$ = " For a% = 1 to 10:print " + g$ + "fort de toute expérience" + g$ + ": next a%:if a%>=10 then a%=10: ' fin de la ligne"
  text 1,a$
  separe(a$ , "|" ,separe$)
  b$ = string$(len(a$)," ")
  res% = dll_call5("GenerateMask",adr(a$),adr(separe2$),adr(msk1$),adr(msk2$),adr(b$))
  text 4,b$
end_sub

' le 2ème paramètre est le choix d'un séparateur. On pourrait aussi l'intégrer dans les séparateurs en 1ère position
sub separe(a$ , mur$ , separe$)
  dim_local a%,b$,c$ , point$ , b% , trait$ , carac$ , tr% , s$
  point$ = string$(len(a$),"=") : ' chaine de x trait à la place des caractères. On remplace la position d'un repère par '*'
  for a% = 1 to len(a$)
      s$ = separe$
      repeat
          tr% = instr(s$, mur$)
          if tr% > 0
            trait$ = left$(s$,tr%-1) : s$ = right_pos$(s$,tr%+1)
          end_if

          if mid$(a$,a%,len(trait$)) = trait$

            if tr% = 1
                point$ = "*"+ right_pos$(point$,2)
            else
                if trait$ = g$
                  point$ = left$(point$,a%-1) + "{" + right_pos$(point$,a%+len(trait$))
                else
                  point$ = left$(point$,a%-1) + "*" + right_pos$(point$,a%+len(trait$))
                end_if
            end_if

            if trait$ = g$
                b% = instr_pos( a$,g$ , a%+1)
                point$ = left$(point$,b%-1) + "}" + right_pos$(point$,b%+1)
                a% = a% + b% -a%
            end_if
            exit_repeat
          end_if
      until tr% => len(separe$) or tr% = 0 or scancode = 27

      if len(trait$) =2 then a% = a%+1
  next a%
  text 2 , point$
  '
end_sub
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Invité
Invité




Demande divers à Klaus Empty
MessageSujet: Re: Demande divers à Klaus   Demande divers à Klaus EmptySam 15 Fév 2014 - 15:58

Merci Klaus pour ta réponse.
Effectivement c'était déjà prévu. Mais tu vas tellement vite, qu'il est difficile de se rendre compte de ce que tu fais.

Que penses-tu de renommer le titre par "Demandes diverses à Klaus"
Ma demande étant en faite inutile, on pourrait se servir de ce sujet pour juste faire des propositions, sans encombrer inutilement d'un tas de sujets.
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

Demande divers à Klaus Empty
MessageSujet: Re: Demande divers à Klaus   Demande divers à Klaus EmptySam 15 Fév 2014 - 21:50

comme tu veux, Cosmos70. C'est ton fil de discussion, et j'y interviens avec plaisir !
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Invité
Invité




Demande divers à Klaus Empty
MessageSujet: Re: Demande divers à Klaus   Demande divers à Klaus EmptyDim 16 Fév 2014 - 1:30

Oui quand j'ai vu ta réponse au départ, je n'étais pas allé assez loin, et j'ai cru que c'était une ancienne fonction, certain que j'avais déjà vu passé quelque chose sur les masques.

Je vais modifier le titre, car bien souvent on demande des choses qui sont déjà faite, et cela devient un post inutile.
Revenir en haut Aller en bas
Contenu sponsorisé





Demande divers à Klaus Empty
MessageSujet: Re: Demande divers à Klaus   Demande divers à Klaus Empty

Revenir en haut Aller en bas
 
Demande divers à Klaus
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Demande de précisions (Klaus)
» IDE et Divers
» DLL rubrique Divers
» BUGs divers pour APK
» Amélioration et divers info de KGF

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: Activité des sites créés par les Panoramiciens. :: Le site de Klaus-
Sauter vers: