besoin d'aide

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Cls
Messages : 620
Inscription : mer. 22/juin/2005 8:51
Localisation : Nantes

Message par Cls »

Bon sinon moi aussi j'ai un petit problème :
j'ai 2 thread, l'un gérant un serveur, l'autre permettant la maj d'un serveur distant.
Et j'ai une boucle repeat / forever avec un Sleep_(10000) dedans.
Mon programme bouffe plus de 50% de ma mémoire !
Ma question est la suivante : y a t - il une api permettant de rendre la main à l'OS quand on est dans une boucle ou un moyen de minimiser l'utilisation de ma mémoire ?
maitre we
Messages : 42
Inscription : mer. 23/nov./2005 23:50

Message par maitre we »

le programme marche sauf que quand je le met en .exe ; il me remet tt le temps sur le mot de passe .


je m'explique :
j'entre le MDP ; il m(affiche le message comme quoi le ode est bon
puis
il me remet sur la fenetre ou je doit entrer le MDP ...etc...


il y a t-il un "remede" ?
Cls
Messages : 620
Inscription : mer. 22/juin/2005 8:51
Localisation : Nantes

Message par Cls »

Chez moi, tout se passe bien... tu as rajouté quelque chose dans le code ?


PS : Par code barbare je voulais dire compliqué pour un débutant qui débute ... ;) !
maitre we
Messages : 42
Inscription : mer. 23/nov./2005 23:50

Message par maitre we »

Code : Tout sélectionner

; /* Liste chainée récupérant tous les parametres */ 
NewList Param.s() 


param.s = ProgramParameter() 

While param <> "" 
  AddElement(Param()) : Param() = param 
  param = ProgramParameter() 
Wend 

; /* Demande un mot de passe */ 
pass.s = InputRequester("Identification", "Veuillez entrer un MDP pour entre dans le programme...", "") 

If pass = "mot2pass" 
  MessageRequester("","Code Bon") 
Else 
  MessageRequester("", "Code Erroné...") 
  End 
EndIf 

; /* il faut ensuite que tu lances l'ouverture du fichier */ 

ForEach Param() 
  args.s = args.s + Param()  
Next 

RunProgram("programme Bastien.exe", args, "")
voila le code . ce que j'ai changé ne nui pas au fonctionement :? j'au juste changé le prg qu'il ouvre ...
Cls
Messages : 620
Inscription : mer. 22/juin/2005 8:51
Localisation : Nantes

Message par Cls »

je ne vois qu'une seule explication : "programme Bastien.exe" est le nom que tu as donné à l'éxécutable : il se rappelle lui - même, comme dans une boucle.
maitre we
Messages : 42
Inscription : mer. 23/nov./2005 23:50

Message par maitre we »

c'est bon j'ai trouver :D

mais j'ai remarqué que quand je tape mon MDP , il est visible ... est-ce possible que quand je tape , les lettre et chiffre aparaisse sous des "***"...


excusé moi si je vous "emmerde"... :(
Cls
Messages : 620
Inscription : mer. 22/juin/2005 8:51
Localisation : Nantes

Message par Cls »

Tu peux le faire mais tu dois créer une fenetre (grâce à la fonction OpenWindow(...)) et ajouter un StringGadget(..)

Ensuite il te faudra "gérer" la fenêtre, les évènements, les messages, etc...

Le programme va légèrement se compliquer... si t'es motivé, il te reste plus qu'à te farcir le manuel (fort bien fait d'ailleurs !)
maitre we
Messages : 42
Inscription : mer. 23/nov./2005 23:50

Message par maitre we »

je mi ataque tt de suite ... je pensse vous donner le resultat demain :!:
maitre we
Messages : 42
Inscription : mer. 23/nov./2005 23:50

Message par maitre we »

en fait ... je n'y arrive absolument pas !

qql peut t-il m'éclairé ?
AWEAR
Messages : 264
Inscription : ven. 28/oct./2005 8:20
Localisation : Mayotte ( 976 ), Océan Indien, France

Message par AWEAR »

Télécharge la library de droopy
Il y a une fonction déja prévue pour il me semble
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)
maitre we
Messages : 42
Inscription : mer. 23/nov./2005 23:50

Message par maitre we »

tu peu me dire ou je la trouve cete ===> "library de droopy" ?
AWEAR
Messages : 264
Inscription : ven. 28/oct./2005 8:20
Localisation : Mayotte ( 976 ), Océan Indien, France

Message par AWEAR »

Tu cherches un message du gars qui s'appelle Droopy (il a posté dans débutant il y a pas longtemps), et tu clique sur le lien qui est dans sa signature.
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)
maitre we
Messages : 42
Inscription : mer. 23/nov./2005 23:50

Message par maitre we »

j'y arrive pas : sa MERDE :(
Cls
Messages : 620
Inscription : mer. 22/juin/2005 8:51
Localisation : Nantes

Message par Cls »

Bon, voila un petit bout de code qui devrait t'aider un peu...
Ne croit pas que ce sera comme ca à chaque fois par contre !

Code : Tout sélectionner

;- Window Constants
Enumeration
  #Window_0
EndEnumeration

;- Gadget Constants
;
Enumeration
  #Text_0
  #String_0
  #Button_0
  #Button_1
EndEnumeration

; /* Fonction retournant une chaine de caractere
;  * Elle prend en parametre le titre de la fenetre et le texte a afficher (sur 1 ligne) 
Procedure.s PasswordWindow(titre.s, text.s)
  ; /* Variable prévue pour le retour de la fonction
  ret.s = ""
  
  ; /* créé une fenetre */
  If OpenWindow(#Window_0, 401, 343, 331, 140,  #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar | #PB_Window_ScreenCentered , titre)
    
    ; /* créé une liste d'objet graphique sur la fenetre en cours (celle kon vient de créer) */
    If CreateGadgetList(WindowID())
      ; /* Ajoute un objet texte (affichage)*/
      TextGadget(#Text_0, 20, 20, 290, 25, text, #PB_Text_Center)
      ; /* ajoute un objet texte (entrée d'informations) avec option password */
      StringGadget(#String_0, 65, 55, 200, 20, "", #PB_String_Password)
      ; /* Ajoute deux boutons */
      ButtonGadget(#Button_0, 20, 100, 120, 25, "Ok")
      ButtonGadget(#Button_1, 180, 100, 120, 25, "Annuler")
    EndIf
  EndIf
  
  ; /* c'est dans cette boucle (repeat/until) qu'on gère les évenements de la fenetre */
  ; /* La variable stop est utilisee pour quitter la boucle */
  stop = 0
  ; /* Et c'est parti ! */
  Repeat
    ; /* Fonction renvoyant le numero de l'evenement qui vient de se produire */
    event = WaitWindowEvent()
    ; /* Structure conditionnelle (select/case) : on teste la variable event */
    Select event
      Case #PB_Event_CloseWindow ; /* on clik sur la croix : on quitte */
        stop = 1
        
      Case #PB_Event_Gadget      ; /* Un gadget a été cliké */
        Select EventGadgetID()   ; /* Lequel ? */
          Case #Button_0         ; /* Le #bouton_0 (Ok) 
            ret = GetGadgetText(#String_0) ;/* on retourne les infos contenus dans le #String_0 (le password) */
            stop = 1 ; /* on quitte la boucle */
          
          Case #Button_1  ;/* bouton annuler : on quitte */
            stop = 1
      EndSelect    
      
    EndSelect

  Until stop = 1  ; /* Teste d'arret de la boucle (repeat/until)
  
  ProcedureReturn ret ;/* on renvoi ici le resultat de la fonction */
EndProcedure ;// fin de la procedure

; /* on appelle ici la fonction PasswordWindow 
;  * le resultat est mis dans la variable pass */
pass.s = PasswordWindow("Password requis", "Veuillez entrer un password afin d'accéder aux inforamtions")

; /* Fenetre surgissante renvoyant les infos contenues dans pass */
MessageRequester("pass contient : ", pass)
maitre we
Messages : 42
Inscription : mer. 23/nov./2005 23:50

Message par maitre we »

merci pour ton code ... Mais j'ai reussi avant :P
Répondre