website logo
Auteur
avatar
artblink

Forum » » Création-Développement » » MHE_NG 0.9B


Posté : 02-01-2016 16:02 icone du post

Merci pour l'idée ma poule

J'ai réussi grâce a une combine de foufou de récupérer TOUTES les functions utilisateurs écrite comme suis dans un programme :

Function Bonjour()
NPrint("Bonjour)
Endfunction

... code ...

Function AuRevoir()
NPrint("Au revoir")
EndFunction


Dans le listing ce sera comme ça :

BONJOUR
AUREVOIR

Mon code est largement plus rapide que la méthode search dans un texteditor donc je me la pête grave :

Code original genre combine rxmui :

Function ListerLesFonctions()
AnciennePosX=mui.get("editeur".. PageActiver,"CursorX")
AnciennePosY=mui.get("editeur".. PageActiver,"CursorY")
mui.set("editeur".. PageActiver,"CursorX","0")
mui.set("editeur".. PageActiver,"CursorY","0")
FinLister=0
mui.DoMethod("Listin gDesFonctions","Clear")
ContenuEditeur=mui.Get("editeur".. PageActiver,"contents")

While FinLister=0

TestPresent=mui.domethod("editeur".. PageActiver,"Search","fun" .. "ction ","")
if TestPresent=0 then FinLister=1
If TestPresent=1
NouvellePosX=mui.get("editeur".. PageActiver,"CursorX")
NouvellePosY=mui.get("editeur".. PageActiver,"CursorY")
FunctionPerso=mui.DoMethod("editeur".. PageActiver,"GetText",NouvellePosX,NouvellePosY,-1,NouvellePosY+1)
mu i.DoMethod("ListingDesFonctions","Insert","Bottom",FunctionPerso)
an class="Apple-tab-span" style="white-space:pre"> endif

Wend
m ui.set("editeur".. PageActiver,"CursorX",AnciennePosX)
mui.set("editeur".. PageActiver,"CursorY",AnciennePosY)

EndFunction
< /div>

Combine a deux balles mille fois plus rapide

Function ListerLesFonctions()

mui.DoMethod("ListingDesFonctions ","Clear")
ContenuEditeur=upperstr(mui.Get("editeur".. PageActiver,"contents")).."FUNCTION :ARTBLINK( Fin du fichier a décomposer)"

Repeat
TestPresent1=findstr(ContenuEditeur,"FUNCTION ")
if TestPresent1<0 then break
If TestPresent1>=0 
ContenuEditeur=unRightstr(ContenuEditeur,TestP resent1+9)
local TestPresent2=findstr(ContenuEditeur,"(")
if TestPresent2>40 then TestPresent2=20
local FunctionPerso=leftstr(ContenuEditeur,TestPresent2)
if FunctionPerso=":ARTBLINK" then break
mui.DoMethod("ListingDesFonctions","Insert","B ottom",FunctionPerso)
endif
Forever

v>EndFunction

En fait, je copie le contenu du texteditor dans une variable, je mets tous le contenu de cette variable en majuscule et ensuite, je recherche une chaine de caractère dans la mega chaine de caractère, et dès que je le trouve j'efface tous ce qu'il y a avant et quand je tombe sur mon rajout, je casse la boucle infini

Le texteditor ne scroll plus

MHE Mise à jour avec nouveau moteur "lister les fonctions utilisateurs"

Bon test


Message édité par : artblink / 02-01-2016 16:06

Cet article provient de Le site des utilisateurs francophones actuels et futurs d'AmigaOS 4.x
https://amiga-ng.org/viewtopic.php?topic=2215&forum=14