Page 1 sur 1

DracScript

Publié : mar. 27/juin/2006 5:18
par Thyphoon
J'essaie depuis pas mal de temps d'intégrer dans mon logiciel, DracScript. Je sais que certain parmis vous le connaisse.
ça marche tres bien a partir du moment ou je charge un script mais si je veux utiliser un script qui n'est pas charqué...ça ne fonctionne pas...

voici ce que j'ai rajouter a DracScript

Code : Tout sélectionner

Procedure.l DS_InitScriptFile(str.s,removeComments.b,index.l)
  ProcedureReturn DS_LoadScriptString(str.s,index)
EndProcedure

Code : Tout sélectionner

Procedure.b DS_DEFAULT_Box() ; 1 param
  SelectElement(DS_StackList(),0)
  *param1.DS_SYMBOL=@DS_StackList()
   
  ;test the param type
  If *param1\type<>#DS_TYPE_STRING
    DS_SetLastError("Box() expects a string  values.")
    ProcedureReturn 0
  EndIf 

  MessageRequester("Information",*param1\value,#PB_MessageRequester_Ok)

  ;return 
  DS_Return("",#DS_TYPE_NULL)
  ProcedureReturn 1 
EndProcedure

dans la procedure DS_RegisterDefault()

Code : Tout sélectionner

If DS_RegisterCommand(@DS_DEFAULT_Box(),"Box",1)=0
    ProcedureReturn 0
  EndIf
Et enfin voilà ce que je fais

Code : Tout sélectionner

 DS_Initialize(3,100)
    DS_Reset(0,1,1,0,1)
    str.s="If Bloc(100)>0"+Chr(13)
    str+"Box('coucou')"+Chr(13)
    str+"EndIf"+Chr(10)+Chr(13)
    DS_InitScriptFile(str.s,0,1)
   r= DS_Execute(1)
   Debug r
   If r<>#DS_RESULT_SUCCESS
       MessageRequester("Error type: "+Str(r),"Error in script. Line: "+Str(DS_Env\line+1)+Chr(13)+Chr(10)+DS_GetLastError())
    Else
    Debug"ok"
EndIf
la commande Box n'a pas l'air d'être pris en compte... je ne sais même pas si le script s'est vraiment executé.
Mais si pour le saut de ligne je met un chr(13)+chr(10) (ou l'invers) il me fait une erreur...

Quelqu'un aurait il une idée ?
Merci d'avance

Publié : mar. 27/juin/2006 12:47
par Remy Vincent
Trop dur de comprendre les tenants et aboutissants du programme,... mais sinon, il faut pas un "THEN" entre un IF et un ENDIF ????

DS_Reset(0,1,1,0,1)
str.s="If Bloc(100)>0 .............THEN.............."+Chr(13)
str+"Box('coucou')"+Chr(13)
str+"EndIf"+Chr(10)+Chr(13)

Publié : mar. 27/juin/2006 12:53
par Jacobus
Entre deux chr() il faut une chaîne vide (pour moi ça marche)
str+"EndIf"+Chr(10)+Chr(13)

Code : Tout sélectionner

str+"EndIf"+chr(10)+""+chr(13)

Publié : mar. 27/juin/2006 20:10
par Thyphoon
Jacobus a écrit :Entre deux chr() il faut une chaîne vide (pour moi ça marche)
str+"EndIf"+Chr(10)+Chr(13)

Code : Tout sélectionner

str+"EndIf"+chr(10)+""+chr(13)
Apparement ça ne marche pas non plus ! ...currieux...