Pb memoire variable se barre!!!!

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
david
Messages : 208
Inscription : jeu. 03/févr./2005 21:10

Pb memoire variable se barre!!!!

Message par david »

Mon programme met en mémoire des variables (je teste tout est ok après chargement) en milieu de programme ça merdouille....mes varaibles se perdent ou se mélangent???
le but c'est de dire à mon prog, mon nom de fichier s'appelle name$
va voir toutes les 10 secondes pour me prévenir si le fichier existe réellement dans l'emplacement stipulé

si je teste en début de prog mes varaibles sont ok, après j'apelle le sous programme qui test toutes les 10 sec et ça ne va plus




PROG!
(mise mémoire des variables$)
;
;- creation du timer (voir si existe fichier Texte)
;
Procedure AlertThread(Parameter)
courrier$="n"
Repeat
If stop$<>"o"
Resultat = ReadFile (0, adresse$+code$+"\msg"+lettre1$+".txt")
If resultat <> 0
courrier$="o"
nom$=name1$
lettre$=lettre1$
EndIf
resultat = ReadFile (0, adresse$+code$+"\msg"+lettre2$+".txt")
If resultat <> 0
courrier$="o"
nom$=name2$
lettre$=lettre3$
EndIf
resultat = ReadFile (0, adresse$+code$+"\msg"+lettre3$+".txt")
If resultat <> 0
courrier$="o"
nom$=name3$
lettre$=lettre3$
EndIf

If courrier$="o"
MessageRequester("Messenger Info", "Vous avez un message de : "+nom$, 0)
Goto Lance_Loader
stop$="o"
EndIf
EndIf

Delay(10000)
ForEver

EndProcedure
;
;- lance alerte automatique
;
CreateThread(@AlertThread(), 154) ; lance le timing
;
;- debut du programme
;
; Window Constants
;
;
;
;
Procedure.s Lire(fichier.s)

texte.s = ""
If ReadFile(0,fichier)
While Eof(0)=0
texte + ReadString() + Chr(13)
Wend
CloseFile(0)
EndIf

ProcedureReturn texte
EndProcedure
;
;
;- Loader
;
;
Lance_Loader:
resultat = ReadFile (0, adresse$+"Ptf"+code$+"\Msg"+lettre$)
If resultat <> 0
EndIf


#TITRE2 = "Msnger Loader"
#LARGEUR2 = 315
#HAUTEUR2 = 200

OpenWindow(0, 0, 0, #LARGEUR2, #HAUTEUR2, #PB_Window_SystemMenu | #PB_Window_ScreenCentered | #PB_Window_MinimizeGadget, #TITRE2)
CreateGadgetList(WindowID())
EditorGadget(0,5,5,#LARGEUR2-10,#HAUTEUR2-35)
ButtonGadget(1,#LARGEUR2-80,#HAUTEUR2-25,75,20,"Quitter")

ButtonGadget(2,5,#HAUTEUR2-25,75,20,"Répondre")
SetGadgetText(0,Lire(nom$))


Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow :
DeleteFile(nom$)
Break
Case #PB_Event_Gadget
Select EventGadgetID()
Case 1 :
DeleteFile( adresse$+"Ptf"+code$+"\Msg"+lettre$)
Break
Case 2 :
DeleteFile( adresse$+"Ptf"+code$+"\Msg"+lettre$)
Goto Lance_Writer
End

EndSelect
EndSelect
ForEver
End
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Message par nico »

Ce que je vois, c'est qu'il manque pas mal de closefile .... et que tu pourrais simplifier le code en utilisant les LinkedLists.
Répondre