PureBasic

Forums PureBasic
Nous sommes le Mar 20/Aoû/2019 11:20

Heures au format UTC + 1 heure




Poster un nouveau sujet Répondre au sujet  [ 76 messages ]  Aller à la page Précédente  1, 2, 3, 4, 5, 6  Suivante
Auteur Message
 Sujet du message: Re: Epb v2.68
MessagePosté: Mar 11/Juin/2019 8:13 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 02/Oct/2011 16:17
Messages: 2156
Localisation: 50200 Coutances
Merci Zorro pour ces nouvelles rassurantes.

_________________
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.62, 5.70 LTS
Un homme doit être poli, mais il doit aussi être libre !


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Epb v2.68
MessagePosté: Dim 16/Juin/2019 8:59 
Hors ligne
Avatar de l’utilisateur

Inscription: Mar 31/Mai/2016 9:06
Messages: 2053
(apres effacement de mes gif animé par un modo, qui a du se dire qu'elles etaient trop grosses ... je me disait qu'aujourd'hui tout le monde a au mini 1920x1080 ... mais j'oubliais les telephones portable et autre tablette bas de game)

j'ai moi meme effacé mes messages... je me suis rendu compte que j'exprimais mal le probleme ....

en fait le challenge , c'est pas de trouver la position d'un mot "procedure" et son numero de ligne , qui avec findstring() ne prends
pas trop de temps ...

le probleme c'est de trouver TOUTES les occurences de Procedure , avec les numero de lignes ou ils apparaissent

et l'air de rien , sur un code de 9000 lignes , ben ça peut prendre beaucoup plus de temps ;)

si en plus on considere, qu'il faut ranger dans une liste (ou tableau) le nom de la procedure , et le numero de ligne
donc , qu'a chaque fois qu'on trouve une occurence, il faut effectuer un traitement particulier d'analyse de la ligne
de la séparation de celle-ci en "morceaux" pour etre attribué a une liste ou tableau ... là , les quelque milliseconde de recherche par occurence trouvée
se transforme en secondes pour un texte complet .....



l'editeur officiel doit utiliser une subtilité de scintilla que j'ignore , j'imagine une forme de tag , invisible , soit au niveau du contenu de la ligne
la mise a jour de l'onglet de droite que ce soit pour une procedure, ou un signet, est quasi instantané , quelque soit la taille du listing !!
je n'imagine meme pas qu'il utilise un systeme de recherche ... c'est trop rapide ...

de plus, moi j'utilise dans mon onglet le numero de la ligne, pour pouvoir sauter dessus lorsqu'on clique sur l'onglet de droite ....
l'editeur officiel, lui n'affiche aucun numero de ligne dans cet onglet ... donc, comment ferai t'il son "saut" a la bonne ligne,
si le numero de ligne n'est pas retenu quelque part ?? ....

mon systeme marche tres bien sur de petits listings
l'editeur officiel , lui fait un tour de magie !! LOL que franchement je ne comprends pas 8O
(a moins d'une fonction scintilla special ? .. )

_________________
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  
 Sujet du message: Re: Epb v2.68
MessagePosté: Dim 16/Juin/2019 10:41 
Hors ligne
Avatar de l’utilisateur

Inscription: Mar 31/Mai/2016 9:06
Messages: 2053
merci , je vais regarder ta technique :)

_________________
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  
 Sujet du message: Re: Epb v2.68
MessagePosté: Dim 16/Juin/2019 10:56 
Hors ligne
Avatar de l’utilisateur

Inscription: Mar 31/Mai/2016 9:06
Messages: 2053
oui effectivement, c'est super rapide ...

faut que je regarde ces expressions regulieres... 8O

faut que j'isole nom de procedure + parametre (avec parenthese) -->nom_procedure(par,par,..ect ), <-- pour la completion
et aussi juste le nom de procedure sans parenthese et parametre <--- pour l'onglet
si en plus j'avais le numero de ligne...ça m'arrangerai bien <--- pour les sauts plus tard...et puis j'aime bien les avoir dans l'onglet

je vais faire mes propres recherches ;) ... je n'attends pas un code tout cuit :lol:

en tout cas, merci bien, tu vas peut etre , etre a l'origine de la reprise de EPB :) carrement ça me debloque...

j'aime bien travailler sur les Chaines, mais a l'ancienne (mid() Left() right() findstring() etc ... ) les expression regulieres, je ne maitrise pas :)

ps: a ta santé (avec la meilleurs bierre du monde ! ); Image

_________________
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  
 Sujet du message: Re: Epb v2.68
MessagePosté: Dim 16/Juin/2019 14:41 
Hors ligne
Avatar de l’utilisateur

Inscription: Mar 31/Mai/2016 9:06
Messages: 2053
arf!! j'etais tout fier de te montrer mon complement du regex
pour avoir la procedure complete :mrgreen:

Code:
If Not CreateRegularExpression(0, "\bprocedure[ .]{1,}[a-zA-Z_0-9-\(.\)-,-$-*- ]+", #PB_RegularExpression_NoCase)


vais tester ton code . Merci :)

_________________
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  
 Sujet du message: Re: Epb v2.68
MessagePosté: Dim 16/Juin/2019 15:02 
Hors ligne
Avatar de l’utilisateur

Inscription: Mar 31/Mai/2016 9:06
Messages: 2053
oui je prends aussi le type , puisque ceci sera pour les completions ...

regarde j'apprends vite :)

j'ai repris ton premier code , et je rajoute le numero de ligne ;)

grace a toi je pense que EPB va prendre un coup de turbo :)

Code:
; Mémorisation fichier de test (code pb 9800 lignes 127 procedures)


CallDebugger
file.s=OpenFileRequester("ouvre un pb","d:\","*.pb",0)
If file.s<>""

Debug "Lecture Fichier source en cours..."
ReadFile(0,file.s)
Deb = ElapsedMilliseconds()
While Not Eof(0)
    Txt$ = ReadString(0, #PB_File_IgnoreEOL)
Wend   
CloseFile(0)
Fin = ElapsedMilliseconds()
Debug "Lecture Terminée. (" + Str(Fin - Deb) + " ms)"
Else
   End
EndIf

; Analyse
If Not CreateRegularExpression(0, "\bprocedure[ .]{1,}[a-zA-Z_0-9-\(.\)-,-$-*- ]+", #PB_RegularExpression_NoCase)
    Debug RegularExpressionError()
    End
EndIf

Debug "Analyse..."
Deb = ElapsedMilliseconds()

If ExamineRegularExpression(0, Txt$)
   Debug "--- Resultat"
   While NextRegularExpressionMatch(0)
      i + 1
      pos_procedure=RegularExpressionMatchPosition(0)
      Debug "Offset: " + LSet(Str(RegularExpressionMatchPosition(0)), 8, " ") + " - " +RegularExpressionMatchString(0) +"ligne numero:"+CountString(Left(Txt$,pos_procedure), #CRLF$) + 1
   Wend   
EndIf
Debug ""

Fin = ElapsedMilliseconds()
Debug "Analyse Terminée. (" + Str(Fin - Deb) + " ms) " + Str(i) + " Procédures"

_________________
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  
 Sujet du message: Re: Epb v2.68
MessagePosté: Dim 16/Juin/2019 15:04 
Hors ligne
Avatar de l’utilisateur

Inscription: Mar 31/Mai/2016 9:06
Messages: 2053
merci encore :)

je vais faire ensuite l'adaptation pour les signets
(lignes commençant par ";-" ou ";{" ou ";{-" )



et aussi les constantes (le plus simple ) lignes commençant par "#" :)

mais là , c'est Dimanche , je vais m'arreter là :)

bon Dimanche a toi , (et a ceux qui lisent ) a+++ :)

ps: pour le type c'est pas trop grave , un traitement finale a base de Stringfield() ne prends pas beaucoup de temps
le plus long etant bien la recherche , et grace au regex , ben ... ça le fait , je pense :)

_________________
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  
 Sujet du message: Re: Epb v2.68
MessagePosté: Dim 16/Juin/2019 17:19 
Hors ligne

Inscription: Ven 29/Juin/2007 17:50
Messages: 3483
@marc56

Il y a PeDe qui est à 450MHz ici. Est-ce que tu pourrais préciser à quelle vitesse tourne ton petit i3, et avec combien de coeurs?

@zorro

J'ai vu ton message hier et, à part ignorer que c'était un GIF, ton message était des plus orthodoxes. Perso, juste pas le temps d'y répondre. Quasiment comme maintenant d'ailleurs.

_________________
Juste la 4G pour Smartphone


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Epb v2.68
MessagePosté: Mar 18/Juin/2019 0:13 
Hors ligne
Avatar de l’utilisateur

Inscription: Mar 31/Mai/2016 9:06
Messages: 2053
Marc56 a écrit:
je vais faire ensuite l'adaptation pour les signets, (lignes commençant par ";-" ou ";{" ou ";{-" )


je coince justement la dessus en ce moment , j'ai testé sur des sites online
par exemple celui ci
https://regex101.com/

si je met "^;(\{|\-).+" en regex pour ce texte : ça marche !! . mais dans Purebasic, ça ne marche plus !??
Citation:
;- test 1
;{ test 2
; simple commentaire 2
;}
;{- test 3
; simple commentaire 3
;}


resultat :

Image


du coup, je suis pas sur que purebasic interprete les regex comme il faut ...

_________________
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  
 Sujet du message: Re: Epb v2.68
MessagePosté: Mar 18/Juin/2019 0:47 
Hors ligne
Avatar de l’utilisateur

Inscription: Mar 31/Mai/2016 9:06
Messages: 2053
si ça marche , a condition d'ajouter le multiligne …

Code:
If Not CreateRegularExpression(1,  "^;(\{|\-).+", #PB_RegularExpression_NoCase|#PB_RegularExpression_MultiLine)

_________________
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  
 Sujet du message: Re: Epb v2.68
MessagePosté: Mar 18/Juin/2019 8:43 
Hors ligne
Avatar de l’utilisateur

Inscription: Mar 31/Mai/2016 9:06
Messages: 2053
je te remercie pour les infos concernants les regex
je voulais juste que tu saches que je ne me sert absolument pas de tes exemples concernant Scintilla
EPB etant fait de façon différente... je ne pourrai de toute façons pas greffer tes exemples...
donc peut etre eu t'il fallu que tu post ces superbes exemple dans un topic dédie ou mieux, a la suite du tuto de Falsam
sur Scintilla ... :)

pour tes premières remarques
Marc56 a écrit:
Ton "^;(\{|\-).+" peut s'écrire plus simplement "^;[-{].+"
Les caractères dans les classes [] n'ont pas besoin d'êtres "échappées" \ (saut ])
[-{] suffit


oui , je le savais , note que j'utilise un groupe () et pas une classe []....
et j'ai vu pléthore d'exemples sur le net qui échappent dans les groupes... alors dans le doute ...;)

Citation:
Les procédures et commentaires ne sont pas forcement en début de ligne, je propose donc
"\s?;[-{].+"
Ici je traite uniquement d'éventuels espaces ou tab à gauche.


les Signets ne sont pas des commentaires ordinaire, ils ne peuvent pas etre ailleurs qu'au debut d'une ligne !!

les procedures c'est la meme chose, ont les ecrit toujours en debut de lignes (dans EPB,je considère qu'une tabulation est un debut de ligne ;) )
en principe seul les declaration des procedure m'interresse ... donc elles sont ecrite en debut de ligne :)



dans EPB , je filtre de toutes façons les espaces et les Tab (Trim() )
les regex ne me servent qu'a trouver le mot...(et c'est deja énorme le gain de temp)
le traitement, je le fait avec les fonctions string de Purebasic .....

si j'avais a refaire un éditeur a partir de zero , ce serai bien différent ... là je compose avec la librairie "Go-Scintilla"
qui m'apporte une simplicité de codage, mais aussi beaucoup de lenteurs parfois ...
si c'etait a refaire, je ne passerai pas par cette librairie ....

d'ailleurs, il me reste de grosse lenteurs, il faut que j'arrive a trouver d'ou ça viens ....
j'ai un gros soupçon concernant les complétions de Go-scintilla .... :)

ps: j'ai testé
Citation:
"\s?;[-{].+"

sur le site https://regex101.com/
je ne suis pas convaincu ....

voici ce que le site me renvoi c(regarder les sélections en bleu )
Image

voici ce que j’obtiens avec mon regex
Image

_________________
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  
 Sujet du message: Re: Epb v2.68
MessagePosté: Mar 18/Juin/2019 13:37 
Hors ligne
Avatar de l’utilisateur

Inscription: Mar 31/Mai/2016 9:06
Messages: 2053
je sais pas pourquoi, mais je sent que ça te motive a faire ton propre editeur :lol:

_________________
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  
 Sujet du message: Re: Epb v2.68
MessagePosté: Mer 19/Juin/2019 21:44 
Hors ligne

Inscription: Ven 29/Juin/2007 17:50
Messages: 3483
Moi, ces machins-là, Scintilla et RegEx, c'est comme la pipe : c'est pas pour moi.

_________________
Juste la 4G pour Smartphone


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Epb v2.68
MessagePosté: Sam 22/Juin/2019 0:57 
Hors ligne

Inscription: Ven 29/Juin/2007 17:50
Messages: 3483
Olliv a écrit:
@marc56
Il y a PeDe qui est à 450MHz ici. Est-ce que tu pourrais préciser à quelle vitesse tourne ton petit i3, et avec combien de coeurs?
Prévenez s'il vous plaît quand vous supprimez un message sinon le sujet n'a ni queue ni tête. Tu avais donc indiqué que tu mettais ta config dans ta dignature.

Donc, en gros, PeDe a un engin 4 fois moins rapide que ton << petit i3 >> qui est déjà à 450 MHz. De souvenir, je suis passé d'un 33MHz à un 450 MHz. On peut vraiment faire un paquet de choses impossibles avec un 33 MHz. C'est une chance de pouvoir faire tourner des programmes sur d'anciennes config sans prise de tête d'adaptation.

_________________
Juste la 4G pour Smartphone


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Epb v2.68
MessagePosté: Sam 22/Juin/2019 9:24 
Hors ligne

Inscription: Sam 08/Fév/2014 15:19
Messages: 1592
Ollivier a écrit:
Il y a PeDe qui est à 450MHz ici. Est-ce que tu pourrais préciser à quelle vitesse tourne ton petit i3, et avec combien de coeurs?

Prévenez s'il vous plaît quand vous supprimez un message sinon le sujet n'a ni queue ni tête. Tu avais donc indiqué que tu mettais ta config dans ta dignature.
Donc, en gros, PeDe a un engin 4 fois moins rapide que ton << petit i3 >> qui est déjà à 450 MHz. De souvenir, je suis passé d'un 33MHz à un 450 MHz. On peut vraiment faire un paquet de choses impossibles avec un 33 MHz. C'est une chance de pouvoir faire tourner des programmes sur d'anciennes config sans prise de tête d'adaptation.

1. J'ai prévenu que je déplaçais mes exemples pour ne pas polluer le topic de zorro. Les articles ont ensuite été supprimés dans la journée pour garder le topic propre (j'approuve ce nettoyage)
2. Il n'y a plus grand monde pour utiliser des vieux coucous et encore moins développer dessus. Ma mini tour i3 m'avait coûté en 2012 le prix d'une smartphone ou tablette moyenne gamme (299€ (UC seule neuve)) pour ça: Intel i3-3220 @3.30 GHz, 2 coeurs, 4 threads - RAM 16 Go (dont 8 ajouté pour qqs euros) - Nvidia GT 620 1920x1080 DPI 100%.

(Allègement du cloud et recentrage topic: Un modo pourra aussi supprimer cet article après le weekend par exemple)
:)

_________________
Windows 10 Famille x64 + Linux (Slackware, Debian sur Oracle VirtualBox 6.0)


Haut
 Profil  
Répondre en citant le message  
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 76 messages ]  Aller à la page Précédente  1, 2, 3, 4, 5, 6  Suivante

Heures au format UTC + 1 heure


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 2 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 à:  

 


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