Page 2 sur 2

Publié : mer. 23/nov./2005 12:26
par AWEAR
Il faut que tu fasse

Code : Tout sélectionner

left(text$, len("ouvrirwindow"))

Publié : mer. 23/nov./2005 12:29
par gadjet35
ah ok merci

Publié : mer. 23/nov./2005 12:32
par AWEAR
Mais dans ce cas tu ne pourras pas utiliser select et case je pense
Il faudra faire

Code : Tout sélectionner

For ligne = 1 To 100 
  text$ = StringField(GetGadgetText(#String_1),ligne,Chr(10)) 
 If left(text$, len("ouvrirwindow")) = "ouvrirwindow"
 endif 
 Next

Publié : mer. 23/nov./2005 19:20
par Backup
faut pas faire comme ça ! :lol:

il faut analyser chaque ligne de text , et a l'interieur faire une analyse
pour les parametre de tes commandes personelle !

Code : Tout sélectionner

For ligne = 1 To 100
  text$ = StringField(GetGadgetText(#String_1),ligne,Chr(10)) ; sort la ligne
if text$<>"" ; ya quelque chose dans cette ligne ?

for cet_ligne=1 to len(text$) ; on regarde dans la ligne en cour !
   sous_text$=StringField(text$,cet_ligne," "); on regarde entre les espaces pour recupere les element de ta ligne de code (commande ET parametres separé par des espaces)
;---- soit un gosub regarde_ce_que_c'est_comme commande_ou parametre , et traitement eventuel
; soit :

if Flag_commande_trouvé=1 ; tiens une commande a deja ete trouvé !!
; donc on cherche les paramatre
parametre$=sous_text$ ; et un parametre (si tu determine plusieur parametre , tu fait un petit tableau mais faut connaitre le nombre de parametre pour pouvoir remettre: Flag_commande_trouvé=0 )
car  Flag_commande_trouvé=0 indiquera que l'on recherche une commande a nouveau :D
endif




if sous_text$="ouvrirwindow" and Flag_commande_trouvé=0
; ACTION !!!
; c'est la commande ouvrirwindow donc (openwindows)
; mais mieux vaut attendre la fin de la ligne pour etre sur d'avoir les parametres s'il y en a !
Flag_commande_trouvé=1 ; < ceci indique que l'on a la commande manque plus que les parametres
endif

; ***** ect .....

next cet_ligne
la fin de la "sous ligne" (ligne en cours d'exploration) est atteinte
endif
; ici on a normalement recuperé les commandes presente dans la ligne
; et les parametres !! 

; MAINTENANT ACTION !!! en fonction de la commande decouverte !


on recomence pour la prochaine ligne de code !


 
 Next  ligne


:D

Publié : mer. 23/nov./2005 19:54
par gadjet35
Sa depend moi j'ai fait autrement je suis en train de programmer pure_move V4.5 (ce n'est de loin pas terminer) :

Code : Tout sélectionner

;EN- France
;LE- 18/11/2005  
;PAR- Gadjet35

If InitSprite() = 0
 End
EndIf

NewList lignecode.s()

;- Window Constants
;
Enumeration
  #Window_1
  #Window_Test
EndEnumeration

;- MenuBar Constants
;
Enumeration
  #MenuBar_0
EndEnumeration

Enumeration
  #MENU_1
  #MENU_2
  #MENU_3
  #MENU_4
  #MENU_5
  #MENU_6
  #MENU_7
EndEnumeration

;- Gadget Constants
;
Enumeration
  #Text_0
  #Button_1
  #Button_2
  #Button_3
  #Button_4
  #Button_5
  #String_1
  #Scrol_0
EndEnumeration


Procedure Open_Window_1()
  If OpenWindow(#Window_1, -4, -4, 1024, 712,  #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget , "Pure  Move")
    If CreateMenu(#MenuBar_0, WindowID())
      MenuTitle("Fichier")
      MenuItem(#MENU_1, "Ouvrir fichiers")
      MenuItem(#MENU_2, "Sauvegarder fichiers")
      MenuBar()
      MenuItem(#MENU_3, "Fermer pure move")
      MenuTitle("Edition")
      MenuItem(#MENU_4, "Fermer le fichier en cours")
      MenuItem(#MENU_5, "Suprimer un fichier")
      MenuTitle("Aide")
      MenuItem(#MENU_6, "Aide de fonction")
      MenuBar()
      MenuItem(#MENU_7, "Info")
      EndIf

      If CreateGadgetList(WindowID())
        TextGadget(#Text_0, 0, 50, 1020, 20, "___________________________________________________________________________________________________________________________________________________________________________")
        ButtonGadget(#Button_1, 700, 0, 120, 40, "Lancer")
        ButtonGadget(#Button_2, 10, 10, 90, 30, "Ouvir")
        ButtonGadget(#Button_3, 150, 10, 90, 30, "Sauvegarder")
        ButtonGadget(#Button_4, 290, 10, 90, 30, "Fermer le fichier")
        ButtonGadget(#Button_5, 430, 10, 90, 30, "Quitter")
        ScrollAreaGadget(#scrol_0,20,80,980,610,950,2000,10)
        StringGadget(#String_1, 10, 10, 940, 1990, "", #PB_String_MultiLine)
      EndIf
    EndIf
EndProcedure

Procedure code()
 For code = 0 To 100
  SelectElement(lignecode.s(),code)
  Select lignecode.s()
   Case "<_window"
    OpenWindow(1,0,0,500,500,0,"test")
    fen = 1
   Case ">_window"
    CloseWindow(1)
    fen = 0
   Case "temps"
    ligne$ = StringField(GetGadgetText(#String_1),code,Chr(10))
    temps$ = StringField(ligne$,2," ")
    temps = Val(temps$)
    Delay(temps)
   Case "finir"
    If fen = 1
     CloseWindow(1)
     fen = 0
    EndIf
    If sce = 1
     CloseScreen()
     sce = 0
    EndIf
    Goto finir:
   Case "aller_a"
    ligne$ = StringField(GetGadgetText(#String_1),code,Chr(10))
    aller_ligne$ = StringField(ligne$,2," ")
    aller_ligne = Val(aller_ligne$)
    code = aller_ligne
   Case "<_ecran"
    OpenScreen(800,600,16,"ecran")
    sce = 1
   Case ">_ecran"
    CloseScreen()
    sce = 0
   Case "variable"
    ligne$ = StringField(GetGadgetText(#String_1),code,Chr(10))
    text_vari$ = StringField(ligne$,2," | ")
    text$ = StringField(text_vari$,1,"=")
    vari$ = StringField(text_vari$,2,"=")
    text = Val(text$)
    vari = Val(vari$)
    text = vari
  EndSelect
 Next
EndProcedure

Procedure lancer_test()
 For ligne = 1 To 100
  text$ = StringField(GetGadgetText(#String_1),ligne,Chr(10))
  If Left(text$,Len("<_window")) = "<_window"
   AddElement(lignecode.s()) : lignecode.s() = "<_window" 
  EndIf
  If Left(text$,Len(">_window")) = ">_window"
   AddElement(lignecode.s()) : lignecode.s() = ">_window"
  EndIf
  If Left(text$,Len("temps")) = "temps"
   AddElement(lignecode.s()) : lignecode.s() = "temps"
  EndIf
  If Left(text$,Len("finir")) = "finir"
   AddElement(lignecode.s()) : lignecode.s() = "finir"
  EndIf
  If Left(text$,Len("aller_a")) = "aller_a"
   AddElement(lignecode.s()) : lignecode.s() = "aller_a"
  EndIf 
  If Left(text$,Len("<_ecran")) = "<_ecran"
   AddElement(lignecode.s()) : lignecode.s() = "<_ecran"
  EndIf 
  If Left(text$,Len(">_ecran")) = ">_ecran"
   AddElement(lignecode.s()) : lignecode.s() = ">_ecran"
  EndIf 
  If Left(text$,Len("variable")) = "variable"
   AddElement(lignecode.s()) : lignecode.s() = "variable"
  EndIf 
  AddElement(lignecode.s()) : lignecode.s() = ""
 Next
 code()
EndProcedure

open_window_1()
finir:

 Repeat
  Select WaitWindowEvent()
   Case #PB_EventGadget
    Select EventGadgetID()
     Case #button_1
      lancer_test()
     Case #button_2
      fichier$ = OpenFileRequester("Ouvrir...","","fichier pure_move (*.fpm)|*.fpm",0)
      text_fichier$ = ReadString()
      SetGadgetText(#String_1,text_fichier$)
     Case #button_3
      text$ = GetGadgetText(#String_1)
      fichier$ = SaveFileRequester("sauver...","","fichier pure_move (*.fpm)|*.fpm",0)
      CreateFile(0,fichier$+".fpm")
       WriteStringN(text$)
      CloseFile(0)
     Case #button_4
      SetGadgetText(#String_1,"")
     Case #button_5
      End
    EndSelect
   Case #PB_EventMenu
    Select EventMenuID()
     Case #menu_1
      fichier$ = OpenFileRequester("Ouvrir...","","fichier pure_move (*.fpm)|*.fpm",0)
      text_fichier$ = ReadString()
      SetGadgetText(#String_1,text_fichier$)
     Case #menu_2
      text$ = GetGadgetText(#String_1)
      fichier$ = SaveFileRequester("sauver...","","fichier pure_move (*.fpm)|*.fpm",0)
      CreateFile(0,fichier$+".fpm")
       WriteStringN(text$)
      CloseFile(0)
     Case #menu_3
      End
     Case #menu_4
      SetGadgetText(#String_1,"")
     Case #menu_5
      fichier$ = OpenFileRequester("Suprimer...","","fichier pure_move (*.fpm)|*.fpm",0)
      DeleteFile(fichier$)
     Case #menu_6
      ;*****************************************;
     Case #menu_7
      MessageRequester("INFO","Le Programmeur :"+Chr(13)+Chr(13)+"------------------- GADJET35 -------------------"+Chr(13)+Chr(13)+"L' Aide :"+Chr(13)+Chr(13)+Space(20)+"Dobro"+Chr(13)+Space(20)+"Gillou"+Chr(13)+Space(20)+"Awear"+Chr(13)+Chr(13)+"pour toute aide oubliée veuiller me prévenir")
    EndSelect
   Case #PB_EventCloseWindow
    quit = 1
  EndSelect
 Until quit = 1

Publié : mer. 23/nov./2005 20:07
par AWEAR
Quel est le probème avec ma méthode Dobro ?? :?

@Gadjet35 :
Mieux vaut remplacer

Code : Tout sélectionner

 Case #button_2 
      fichier$ = OpenFileRequester("Ouvrir...","","fichier pure_move (*.fpm)|*.fpm",0) 
      text_fichier$ = ReadString() 
      SetGadgetText(#String_1,text_fichier$)
Par

Code : Tout sélectionner

 Case #button_2 
      fichier$ = OpenFileRequester("Ouvrir...","","fichier pure_move (*.fpm)|*.fpm",0) 
if fichier$      
text_fichier$ = ReadString() 
      SetGadgetText(#String_1,text_fichier$)
      endif
Comme ça tu n'auras pas de mauvaises surprises

Publié : mer. 23/nov./2005 22:07
par Backup
Quel est le probème avec ma méthode Dobro ??

:D il n'y a aucun probleme ! :D

je pense que d'analyser les lignes de code en recherchant que les pseudo-commandes s'en rechercher les parametres qui vont avec,
va forcement limité quelques part non ?

t'as methode n'as pas de defaut en soit , c'est juste, que de faire abstractions de parametres c'est dommage ! ...
mais je doit t'avouer que j'ai pas essayé son prg .... :oops:

donc je vais te laisser continuer a le conseiller!
peut etre n'ai-ja pas compris ce qu'il cherche a faire :?

je pensais qu'il cherchai a faire un interpreteur de pseudo-commandes...
mais j'ai du faire erreur :D


excuses ...

:D


[Reedit]

mais je vois qu'il a trouvé une autre solution, c'est cool !:D
[/Reedit]

Publié : jeu. 24/nov./2005 8:20
par AWEAR
Oui je sais bien que ma méthode fait abstraction des paramètres mais ce n'est pas bien compliqué d'en rajouter et de les prendre en compte...
Enfin il ne me semble pas.

Publié : jeu. 24/nov./2005 20:20
par gadjet35
mais essaie donc mon code tu verras c'est deja un debut
et pour la methode a awear je ne la trouve pas mal non plus
mais celle de dobro est aussi bien et merci pour ton conseil sur les fichiers awear ! :D