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.
V2.83 du 15/02/2014 - ajout fonction CreateMask Emptypar Pedro Aujourd'hui à 8:08

» Un autre pense-bête...
V2.83 du 15/02/2014 - ajout fonction CreateMask Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
V2.83 du 15/02/2014 - ajout fonction CreateMask Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
V2.83 du 15/02/2014 - ajout fonction CreateMask Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
V2.83 du 15/02/2014 - ajout fonction CreateMask Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
V2.83 du 15/02/2014 - ajout fonction CreateMask Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
V2.83 du 15/02/2014 - ajout fonction CreateMask Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
V2.83 du 15/02/2014 - ajout fonction CreateMask Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
V2.83 du 15/02/2014 - ajout fonction CreateMask Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
V2.83 du 15/02/2014 - ajout fonction CreateMask Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
V2.83 du 15/02/2014 - ajout fonction CreateMask Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
V2.83 du 15/02/2014 - ajout fonction CreateMask Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
V2.83 du 15/02/2014 - ajout fonction CreateMask Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
V2.83 du 15/02/2014 - ajout fonction CreateMask Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
V2.83 du 15/02/2014 - ajout fonction CreateMask 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
-20%
Le deal à ne pas rater :
Drone Dji DJI Mini 4K (EU)
239 € 299 €
Voir le deal

 

 V2.83 du 15/02/2014 - ajout fonction CreateMask

Aller en bas 
3 participants
AuteurMessage
Klaus

Klaus


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

V2.83 du 15/02/2014 - ajout fonction CreateMask Empty
MessageSujet: V2.83 du 15/02/2014 - ajout fonction CreateMask   V2.83 du 15/02/2014 - ajout fonction CreateMask EmptySam 15 Fév 2014 - 10:49

Nouvelle version:
KGF.dll V2.83 du 15/02/2014

Nouveauté:
ajout de la fonctioin CreateMask

Modules modifiés:
KGF.dll

KGF_SUB.bas

KGF.chm

KGF.doc

KGF.pdf

La doc et les sources sont à jour.

Cette fonction, d'après une suggestion de Cosmos70, construit une chaîne de caractères en sortie, représentant un masque pour une chaîne de caractères en entrée. Les paires de guillemets seront remplacés par des paires accolades, tout séparateur trouvé dans une liste de séparateurs est remplacé par un caractère masque symbolisant la présence d'un séparateur, et tous les autres caractères sont remplacés par un caractère masque symbolisant la présence d'un caractère texte normal.

Ainsi, voici le résultat pour un cas concret:
Citation :
'  For a% = 1 to 10:print "fort de toute expérience": next a%:if a%>=10 then a%=10: ' fin de la ligne
' *===*==***=*==*==*=====*{====*==*=====*==========}**====*==*==*==**==*====*==*==****===*==*==*=====
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Invité
Invité




V2.83 du 15/02/2014 - ajout fonction CreateMask Empty
MessageSujet: Re: V2.83 du 15/02/2014 - ajout fonction CreateMask   V2.83 du 15/02/2014 - ajout fonction CreateMask EmptySam 15 Fév 2014 - 16:05

J'avais pas vu que c'était une nouvelle version que tu venais de créer.

Klaus! Plus fort que Lucky Lucke?  Very Happy  Il a la dégaine rapide!
 lol! 
Revenir en haut Aller en bas
Invité
Invité




V2.83 du 15/02/2014 - ajout fonction CreateMask Empty
MessageSujet: Re: V2.83 du 15/02/2014 - ajout fonction CreateMask   V2.83 du 15/02/2014 - ajout fonction CreateMask EmptySam 15 Fév 2014 - 18:44

Je reviens à la charge, car j'ai commis une erreur. J'ai publié un code avec un masque de parenthèses. J'avais bien marqué que c'étais pour le contrôle, car j'avais des erreurs lors de la conception du code.
Il n'est pas bon de mettre un masque différent pour les parenthèses.
Si j'utilise instr() pour progressé à la sortie du masque, je dois le faire pour "*" et pour "{" et comparer lequel est devant l'autre, ce qui complique et ralenti l'exécution du code. Pour le masque de fermeture, cela n'a pas d'importance, si il n'y a rien entre les deux parenthèses, je peux recherché l'étoile, ou l'accolade fermante.
Autrement à la place de instr(), il faudrait faire une boucle for/next et regardé le masque. C'est pas un avantage.

Désolé d'avoir montré une fausse piste.
@+
Revenir en haut Aller en bas
Klaus

Klaus


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

V2.83 du 15/02/2014 - ajout fonction CreateMask Empty
MessageSujet: Re: V2.83 du 15/02/2014 - ajout fonction CreateMask   V2.83 du 15/02/2014 - ajout fonction CreateMask EmptySam 15 Fév 2014 - 22:20

Pas grave. Montre-moi ce que tu cherches vraiment - je peux sûrement adapter.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

V2.83 du 15/02/2014 - ajout fonction CreateMask Empty
MessageSujet: re   V2.83 du 15/02/2014 - ajout fonction CreateMask EmptySam 15 Fév 2014 - 23:23

@ Klaus,

Garde celle là quand même, elle peut servir... Laughing
Revenir en haut Aller en bas
Invité
Invité




V2.83 du 15/02/2014 - ajout fonction CreateMask Empty
MessageSujet: Re: V2.83 du 15/02/2014 - ajout fonction CreateMask   V2.83 du 15/02/2014 - ajout fonction CreateMask EmptyDim 16 Fév 2014 - 1:23

Ah! j'arrive!
J'y ai repensé depuis: le plus simple car cela ne modifie presque pas le code que tu as du faire, c'est de mettre aussi une variable de remplacement pour les guillemets. Ainsi on représente les guillemets de la même manière, ou on ressort celui-ci. Peut-être concernant les guillemets, faudrait-il avoir un flag pour soit éviter les masques dans la chaine, soit faire comme si les guillemets n'avaient pas d'intérêt.
Je ne sais pas tous les cas que cette instruction peut avoir besoin,
mais cette méthode pourrait s'adapter à des cas non pensés.

Il ne reste qu'un seul argument. Où alors dans le masque, on évite le masque "=" qui n'a pas besoin d'être indiqué, c'est celui que tu choisis.

Qu'en penses-tu? Ce qu'on lit est le masque qui ressort par rapport aux caractères standards. Il n'est pas nécessaire d'indiquer un caractère générique. Il ne reste que celui du guillemet qui peut-être une option.
Si on a:
a$ = "for a% = 1" avec un retour:
m$= "---*--***-"
on sait que mid$(a$, instr(m$,"*"),1) est égal à " ", et on traite le contrôle espace. Il suffit de connaitre les caractères que tu as choisi, pour les prendre dans les contrôle.
De cette façon il y a assez de paramètres pour DLL.
Revenir en haut Aller en bas
Klaus

Klaus


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

V2.83 du 15/02/2014 - ajout fonction CreateMask Empty
MessageSujet: Re: V2.83 du 15/02/2014 - ajout fonction CreateMask   V2.83 du 15/02/2014 - ajout fonction CreateMask EmptyDim 16 Fév 2014 - 10:29

J'ai ajouté un paramètre mask_quote à GenerateMask pour gérer la représentation des guillemets.

Si ce paramètre est la chaîne vide, les guillemets seront considérés comme du simple texte.

Si ce paramètre ne contient qu'un seul caractère, tous les guillemets seront remplacés par ce caractère. A fortiori, si ce caractère est chr$(34), les guillemets seront inchangés dans le masque résultant.

Si ce paramètres a 2 ou plusieurs caractères, le premier marquera le guillemet ouvrant, se deuxième le guillemet fermant. Exemple: "{}" pour reproduire le comportement de la fonction avant l'ajout de ce paramètre.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Invité
Invité




V2.83 du 15/02/2014 - ajout fonction CreateMask Empty
MessageSujet: Re: V2.83 du 15/02/2014 - ajout fonction CreateMask   V2.83 du 15/02/2014 - ajout fonction CreateMask EmptyDim 16 Fév 2014 - 12:03

Merci Klaus. Je viens de tester.

C'est pas tout à fait ce que je pensais, mais c'est sans importance, c'est très bien ainsi.
Il suffit pour les parenthèses de mettre "*}" pour les quillemets.
Lorsqu'on trouve le premier guillemet, on recherche "}" pour éviter les masques entre les guillemets. Donc c'est formidable. C'est une fonction généraliste qui peut servir à autre chose que d'avoir à coloriser une ligne de code.
Revenir en haut Aller en bas
Invité
Invité




V2.83 du 15/02/2014 - ajout fonction CreateMask Empty
MessageSujet: Re: V2.83 du 15/02/2014 - ajout fonction CreateMask   V2.83 du 15/02/2014 - ajout fonction CreateMask EmptyLun 17 Fév 2014 - 1:32

Je mets ici un petit programme de démonstration pour montrer que parfois, c'est pas une mauvaise idée que de demander une instruction à Klaus (sans vouloir le surcharger, évidemment)

Ce programme n'est pas optimisé, je m'y étais pris à l'envers comme ça m'arrive souvent, et il y a des routines qui pourraient diminer le code. Je n'ai même pas traité le code REM , je voulais voir la rapidité du programme.
Je n'ai pas utilisé le RichEdit, je ne le connais pas encore, seulement le seul objet de Panoramic qui permet la coloration: PICTURE.
Mon chrono étant en 100ème de minute: 6 centièmes pour afficher une page. Cela était impossible avant.
Spoiler:
Revenir en haut Aller en bas
Klaus

Klaus


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

V2.83 du 15/02/2014 - ajout fonction CreateMask Empty
MessageSujet: Re: V2.83 du 15/02/2014 - ajout fonction CreateMask   V2.83 du 15/02/2014 - ajout fonction CreateMask EmptyLun 17 Fév 2014 - 2:20

Cela me réjouit que ma routine est non seulement fonctionnelle et utile, maius également rapide. C'est super. Juste pour avoir une idée de ce que ça représente en Delphi, voici le code complet de cette fonction:
Code:
function GenerateMask(txt,sep,msk1,msk2,msk3: pstring; out: integer):integer; stdcall; export;
var
  texte, separ, mask1, mask2, mask3, accol: string;
  i: integer;
  p: pointer;
begin
  texte := txt^;
  separ := sep^;
  mask1 := msk1^;
  mask2 := msk2^;
  mask3 := msk3^;
  if length(mask3)=0 then mask3 := mask2; // si mask_quote absent, on prend mask_text
  if length(mask3)<1 then mask3 := mask3 + mask3;
  accol := mask3[1];
  i := pos('"',texte);
  while i>0 do begin
    if i>1 then texte := LeftStr(texte,i-1) + accol + MidStr(texte,i+1,Length(texte))
          else texte :=                      accol + MidStr(texte,i+1,Length(texte));
    if accol=mask3[1] then accol := mask3[2]
                else accol := mask3[1];
    i := pos('"',texte);
  end;
  for i:=1 to length(texte) do begin
    if pos(texte[i],'{}')=0 then begin
      if pos(texte[i],separ)>0 then begin
        if i>1 then texte := LeftStr(texte,i-1) + mask1 + MidStr(texte,i+1,Length(texte))
              else texte :=                      mask1 + MidStr(texte,i+1,Length(texte));
      end else begin
        if i>1 then texte := LeftStr(texte,i-1) + mask2 + MidStr(texte,i+1,Length(texte))
              else texte :=                      mask2 + MidStr(texte,i+1,Length(texte));
      end;
    end;
  end;
  p := @texte;
  CopyTextToPanoramic(integer(p),0,out);
  result := 0;
end;

Ce n'est pas gros, n'est-ce pas ? En encore - on peut optimiser. J'ai privilégié la clarté d'écriture.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

V2.83 du 15/02/2014 - ajout fonction CreateMask Empty
MessageSujet: Re   V2.83 du 15/02/2014 - ajout fonction CreateMask EmptyLun 17 Fév 2014 - 2:37

Je vais regarder tout ça de près...de très près... Twisted Evil
Revenir en haut Aller en bas
Invité
Invité




V2.83 du 15/02/2014 - ajout fonction CreateMask Empty
MessageSujet: Re: V2.83 du 15/02/2014 - ajout fonction CreateMask   V2.83 du 15/02/2014 - ajout fonction CreateMask EmptyVen 21 Fév 2014 - 1:14

J'ai enfin réussi à prendre le temps de faire un vrai teste de coloration d'un source.
Apparemment il n'y a pas d'erreur.
Pour celui-ci moins de 4 secondes pour 150 lignes (sur un picture)
Spoiler:

EDIT: Plus pensé, il faut mettre le chemin d'un programme dans le memo 3, en ligne 14. J'avais oublié ce détail, et en ligne 21, l'adresse de kgf.
Revenir en haut Aller en bas
Klaus

Klaus


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

V2.83 du 15/02/2014 - ajout fonction CreateMask Empty
MessageSujet: Re: V2.83 du 15/02/2014 - ajout fonction CreateMask   V2.83 du 15/02/2014 - ajout fonction CreateMask EmptyVen 21 Fév 2014 - 1:25

Alors, ... heureux ? Very Happy  Very Happy  Very Happy
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Invité
Invité




V2.83 du 15/02/2014 - ajout fonction CreateMask Empty
MessageSujet: Re: V2.83 du 15/02/2014 - ajout fonction CreateMask   V2.83 du 15/02/2014 - ajout fonction CreateMask EmptyVen 21 Fév 2014 - 1:32

Oui, j'arrivais pas à me décider à aller jusqu'au bout.
Par contre il y a une liste limitée de mots-clés, et qui ne concerne que ce programme. Mais le but n'était pas de coloriser sur un picture, mais de voir le résultat.

Il me tarde de pouvoir sortir de mes préoccupations du moment qui sont multiples. Je laisse le temps au temps!

J'ajoute que pour coloriser une seule ligne: 4000/150 = 26.centièmes de seconde soit 1000/25 donne près de 40 frappes par seconde. Donc on peut coloriser en temps réel
Revenir en haut Aller en bas
Invité
Invité




V2.83 du 15/02/2014 - ajout fonction CreateMask Empty
MessageSujet: Re: V2.83 du 15/02/2014 - ajout fonction CreateMask   V2.83 du 15/02/2014 - ajout fonction CreateMask EmptyDim 23 Fév 2014 - 1:42

Bonsoir,
Il y a une chose que je ne comprend pas.
J'essaye d'adapter petit à petit la colorisation d'un source pour du html, en rapport à mon programme de site. J'ai ajouté le WB, mais depuis j'ai annulé celui-ci. Je n'ai plus de retour du masque , le dernier paramètre, et je ne vois pas pourquoi.
Spoiler:

Si il y a une interférence, j'ai annulé l'appel du WB, même en ignorant le handle(de la form).
Dans le memo 399, on met l'adresse d'un source.
En ligne 63, j'ai mis un message sur le contenu de a$ et b$. J'ai essayé de voir si il y avait pas un problème de dim_local avec b$. Bizarre. Les mots-clés sont limités, mais comme de toute façon il n'y a rien pour b$, cela ne donnera rien de toute façon.
Je pense maintenant à  Sleep  vu que ça ne marche plus.
Revenir en haut Aller en bas
Klaus

Klaus


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

V2.83 du 15/02/2014 - ajout fonction CreateMask Empty
MessageSujet: Re: V2.83 du 15/02/2014 - ajout fonction CreateMask   V2.83 du 15/02/2014 - ajout fonction CreateMask EmptyDim 23 Fév 2014 - 1:58

Difficile de tester ça. On n'a pas le fichier chargé en ligne 21, par exemple. Et je ne vois aucun appel de la fonction CreateMask, et je ne peux donc pas voir pourquoi il n'y a pas de retour...
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Invité
Invité




V2.83 du 15/02/2014 - ajout fonction CreateMask Empty
MessageSujet: Re: V2.83 du 15/02/2014 - ajout fonction CreateMask   V2.83 du 15/02/2014 - ajout fonction CreateMask EmptyDim 23 Fév 2014 - 7:49

Bonjour,
Écoutes: Je me réveille, et avant de regarder mon ordi, je me demandais si la chaîne b$ était bien à la longueur de a$.
Je regarde et je vois que j'avais mis la ligne en commentaire.

J'en ai marre de me traiter d'idiot, alors je suis un con!.
Désolé du dérangement.
Revenir en haut Aller en bas
Invité
Invité




V2.83 du 15/02/2014 - ajout fonction CreateMask Empty
MessageSujet: Re: V2.83 du 15/02/2014 - ajout fonction CreateMask   V2.83 du 15/02/2014 - ajout fonction CreateMask EmptyDim 23 Fév 2014 - 8:54

Je viens de modifier mon programme, en enlevant tout ce qui est inutile.
En suivant les indications dans les commentaires sur différent fichier, vous pouvez tester le programme. Ici il y a une limitation des mot-clés. Ce n'est que pour tester la colorisation sur une page html.
Spoiler:
Si dants les data vous avec: DATA """, il faut le remplacer par: data "&quot;". Apparemment le source ici n'est pas respecté.


Dernière édition par cosmos70 le Dim 23 Fév 2014 - 10:39, édité 1 fois
Revenir en haut Aller en bas
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

V2.83 du 15/02/2014 - ajout fonction CreateMask Empty
MessageSujet: Re: V2.83 du 15/02/2014 - ajout fonction CreateMask   V2.83 du 15/02/2014 - ajout fonction CreateMask EmptyDim 23 Fév 2014 - 10:30

Super boulot Cosmos.
Je n'ai pas encore testé, mais j'ai regardé le code et la réalisation est super intéressante Wink
Revenir en haut Aller en bas
Invité
Invité




V2.83 du 15/02/2014 - ajout fonction CreateMask Empty
MessageSujet: Re: V2.83 du 15/02/2014 - ajout fonction CreateMask   V2.83 du 15/02/2014 - ajout fonction CreateMask EmptyDim 23 Fév 2014 - 10:43

Merci bien.

Je viens d'apporter une modification dans les datas. Il y avait une erreur sur un caractère, et j'ai remarqué qu'en première ligne, le guillemet était interprété sur le forum. Il faut le remplacer par DATA "&quot;" à la pace de DATA """ si c'est bien le cas chez-vous.
Revenir en haut Aller en bas
Contenu sponsorisé





V2.83 du 15/02/2014 - ajout fonction CreateMask Empty
MessageSujet: Re: V2.83 du 15/02/2014 - ajout fonction CreateMask   V2.83 du 15/02/2014 - ajout fonction CreateMask Empty

Revenir en haut Aller en bas
 
V2.83 du 15/02/2014 - ajout fonction CreateMask
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» V2.72 du 08/01/2014 - ajout ShowMessageModalChoixSortie
» V2.77 du 31/01/2014: ajout GetSelectedRichEditAttributes
» V2.76 du 23/01/2014 - ajout fonction GetKeyboardState
» V3.22 du 21/08/2014 - ajout code 4 à SyneditMode
» V2.90 du 05/03/2014 - ajout fonction ReframePicture

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: