3 petites questions

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
AWEAR
Messages : 264
Inscription : ven. 28/oct./2005 8:20
Localisation : Mayotte ( 976 ), Océan Indien, France

Message par AWEAR »

Il faut que tu fasse

Code : Tout sélectionner

left(text$, len("ouvrirwindow"))
Dernière modification par AWEAR le mer. 23/nov./2005 16:54, modifié 1 fois.
La vie est une rose dont il faut accepter les épines, mais la mienne est fannée, arrosée par le goût de mes larmes. (Soprano)
gadjet35
Messages : 190
Inscription : ven. 21/oct./2005 7:49
Localisation : Quelque part en france !

Message par gadjet35 »

ah ok merci
bonne journer à tous !!!
AWEAR
Messages : 264
Inscription : ven. 28/oct./2005 8:20
Localisation : Mayotte ( 976 ), Océan Indien, France

Message 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
La vie est une rose dont il faut accepter les épines, mais la mienne est fannée, arrosée par le goût de mes larmes. (Soprano)
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message 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
gadjet35
Messages : 190
Inscription : ven. 21/oct./2005 7:49
Localisation : Quelque part en france !

Message 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
bonne journer à tous !!!
AWEAR
Messages : 264
Inscription : ven. 28/oct./2005 8:20
Localisation : Mayotte ( 976 ), Océan Indien, France

Message 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
La vie est une rose dont il faut accepter les épines, mais la mienne est fannée, arrosée par le goût de mes larmes. (Soprano)
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message 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]
AWEAR
Messages : 264
Inscription : ven. 28/oct./2005 8:20
Localisation : Mayotte ( 976 ), Océan Indien, France

Message 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.
La vie est une rose dont il faut accepter les épines, mais la mienne est fannée, arrosée par le goût de mes larmes. (Soprano)
gadjet35
Messages : 190
Inscription : ven. 21/oct./2005 7:49
Localisation : Quelque part en france !

Message 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
bonne journer à tous !!!
Répondre