Page 1 sur 1
Visualisateur de fichiers, programme disparu !!!
Publié : lun. 19/oct./2009 21:04
par cirederff
Bonsoir.
Je suis en train de faire joujou avec PB et un microcontroleur, jusqu'ici pas de problème, tout va bien, communication dans les deux sens impec.
Et là je crée une fenêtre pour faire le choix du port COM avec plein de OptionGadget(), je n' arrive pas à remplacer NomPortSerie$ par une variable dans la fonction OpenSerialPort()

, je bidouille ( et oui, je suis toujours un bleu) avec les variables et les chaines de caractères jusqu'au moment ou plus rien, mon PC coupe et redémarre!
rebidouille
rebelote
rebidouille
rebelote
4 fois de suite

, mais bon, jusque là rien de méchant ( quoi que !

).....Je relance PB mais je ne retrouve plus mon programme en première page dan l'IDE de Pure, je le retrouve dans son emplacement d'origine , double clic dessus et voila qu'il s'ouvre dans le visualisateur de fichier.
Impossible de l'ouvrir dan l'éditeur, il a pourtant toujours la bonne extension.
Alors ma question est: comment je récupère mon fichier ?
Merci
Je suis sous PB 4.31
Mon port COM marche toujours, je l'ai testé avec un autre programme.
Re: Visualisateur de fichiers, programme disparu !!!
Publié : lun. 19/oct./2009 21:42
par djes
Sans code, ça va être dur de t'aider... Mais de toutes façons, un plantage de ce genre implique un problème soit au niveau du hard (tu es sûr de tes branchements? Et ton disque dur, il va bien?), soit d'un pilote de périphérique (vu que tu fais joujou avec le port série, faut chercher par là). Sinon, les problèmes avec les chaînes de caractère peuvent à la rigueur faire planter ton programme, mais rarement windows.
Quant à ton problème de fichier, renomme l'extension en .txt, comme ça au moins tu verras en gros ce qu'il contient. Si ton ordi a planté au moment d'une sauvegarde, il y a de fortes chances pour que ton fichier soit corrompu, désolé.
Re: Visualisateur de fichiers, programme disparu !!!
Publié : mar. 20/oct./2009 8:30
par cirederff
Dans ta réponse, tu as tout résumé.
Plus de programme..... que des carré et plus de texte.

tout est perdu.
Le rapport d'erreur de windows me donnait un problème de périphérique.
Je pense aussi qu'il va falloir que je prenne une bonne habitude, celle de tester les fonction importantes avec des
if et
andif...
Chose un peut bizarre à mon gout de debutant, enfin Dobro m' avait prévenu dans un autre poste

Re: Visualisateur de fichiers, programme disparu !!!
Publié : mar. 20/oct./2009 8:34
par Cls
cirederff a écrit :Je pense aussi qu'il va falloir que je prenne une bonne habitude, celle de tester les fonction importantes avec des if et andif...
Ce n'est pas les fonctions "importantes" qui doivent être testées, c'est toutes les fonctions pouvant renvoyer un code d'erreur ! Dans une appli, il est primordial d'avoir une gestion des erreurs simples,
complètes et communes à toute l'application.
En cas de problème, ça permet de savoir où, quand et pourquoi une erreur est survenue. La maintenance est simplifiée, les corrections sont facilement faisables, bref que ce soit en développement ou éventuellement en production c'est un aspect qui ne doit jamais être négligé.
Re: Visualisateur de fichiers, programme disparu !!!
Publié : mar. 20/oct./2009 10:37
par djes
Tout à fait d'accord, et une sauvegarde dès qu'un changement important dans le code a lieu.
Re: Visualisateur de fichiers, programme disparu !!!
Publié : mar. 20/oct./2009 12:35
par cirederff
Donc dans cet exemple ci, je test comment mes fonction et surtout comment ?
Code : Tout sélectionner
Enumeration
#fenetre
EndEnumeration
OpenWindow(#fenetre,0,0,1200,800,"INJECTION",#PB_Window_ScreenCentered|#PB_Window_MinimizeGadget )
Fenetre_principale = WindowID(#fenetre )
SetWindowColor(#fenetre,RGB(150, 255, 150))
LoadFont(1, "Ariale", 14)
SetGadgetFont(#PB_Default, FontID(1))
OpenSerialPort(1,port$,baud,#PB_SerialPort_EvenParity,8,1,#PB_SerialPort_NoHandshake,1024,1024)
Delay (1000)
comme ça
Code : Tout sélectionner
If OpenWindow(#fenetre,0,0,1200,800,"INJECTION",#PB_Window_ScreenCentered|#PB_Window_MinimizeGadget )
Fenetre_principale = WindowID(#fenetre )
SetWindowColor(#fenetre,RGB(150, 255, 150))
LoadFont(1, "Ariale", 14)
SetGadgetFont(#PB_Default, FontID(1))
OpenSerialPort(1,port$,baud,#PB_SerialPort_EvenParity,8,1,#PB_SerialPort_NoHandshake,1024,1024)
Delay (1000)
EndIf
ou comme ça !
Code : Tout sélectionner
If OpenWindow(#fenetre,0,0,1200,800,"INJECTION",#PB_Window_ScreenCentered|#PB_Window_MinimizeGadget )
EndIf
Fenetre_principale = WindowID(#fenetre )
SetWindowColor(#fenetre,RGB(150, 255, 150))
LoadFont(1, "Ariale", 14)
SetGadgetFont(#PB_Default, FontID(1))
If OpenSerialPort(1,port$,baud,#PB_SerialPort_EvenParity,8,1,#PB_SerialPort_NoHandshake,1024,1024)
EndIf
Delay (1000)
Ça vous parait peut être évidant à vous mais pour moi...pas.J'ai pour habitude de remplacer dans ma tête les
if pas
si et je cherche toujours le
then 
mais bon...
Re: Visualisateur de fichiers, programme disparu !!!
Publié : mar. 20/oct./2009 12:52
par Cls
C'est juste à titre d'exemple. La gestion des erreurs est à penser entièrement, avant même le développement (valable surtout sur les gros projets).
Tu peux faire quelque chose dans ce goût là :
Code : Tout sélectionner
Enumeration
#fenetre
EndEnumeration
; Type de messages
Enumeration
#ERROR
#WARNING
#INFO
EndEnumeration
; Procédure de gestion des messages
Procedure Message(msg.s, type.l = #ERROR)
Select type
Case #ERROR
Debug msg
Case #WARNING
Debug msg
Case #INFO
Debug msg
EndSelect
EndProcedure
If OpenWindow(#fenetre,0,0,1200,800,"INJECTION",#PB_Window_ScreenCentered|#PB_Window_MinimizeGadget )
Fenetre_principale = WindowID(#fenetre )
SetWindowColor(#fenetre,RGB(150, 255, 150))
If LoadFont(1, "Ariale", 14)
SetGadgetFont(#PB_Default, FontID(1))
Else
Message("Impossible de charger la police.")
EndIf
If OpenSerialPort(1,port$,baud,#PB_SerialPort_EvenParity,8,1,#PB_SerialPort_NoHandshake,1024,1024)
Message("Port série ouvert", #INFO)
Else
Message("Impossible d'ouvrir le port série.")
EndIf
Delay (1000)
Else
Message("Impossible d'ouvrir la fenêtre.")
EndIf
Re: Visualisateur de fichiers, programme disparu !!!
Publié : mar. 20/oct./2009 13:20
par cirederff
Je viens de changer
port$ ligne 35 par "COM8" dans l'exemple et replantage même avec la gestion des erreurs !!
Mais je viens de m'apercevoir que je n'ai pas mis de
CloseSerialPort() 
Re: Visualisateur de fichiers, programme disparu !!!
Publié : mar. 20/oct./2009 13:25
par Cls
Je n'y connais rien en port série, je n'ai jamais utilisé ces fonctions. Je peux juste t'aiguiller sur un certain nombre de bonnes pratiques à mettre en œuvre lors de tes développements.
Re: Visualisateur de fichiers, programme disparu !!!
Publié : mar. 20/oct./2009 14:38
par cirederff
ça marche quand je n'oublie pas
baud=115200
J'ai du faire une erreur de frape dans mon ancien programme.
Merci à ceux qui m'ont aidés, reste plus qu'à me pencher sur la gestion des erreurs

A + fred
Re: Visualisateur de fichiers, programme disparu !!!
Publié : mar. 20/oct./2009 17:01
par Anonyme2
Sinon pour les sauvegardes, j'utilise l'utilitaire
CodeCaddy en anglais de
blueznl, il permet en autre de reformater les codes pour avoir l'indentation souhaiée et aussi de sauvegarder les fichiers automatiquement, ce qui m'a déjà sorti d'affaires...
Il crée un dossier
_backup et y stocke les copies de chaque fichier (à cocher dans l'onglet préférence/backup) et permet de définir le nombre de copies du fichier à stocker, j'ai choisi de garder les 50 dernières versions. Tu choisis aussi ce qui déclenche les sauvegardes.
Le fichier renommé a le même nom avec l'extension
.pb suivi d'un numéro (compteur interne) suivi de
.bak (le tout à paramétrer dans les prefs).
Il s'intègre comme outil dans PB
Ca va très vite, c'est invisible pour moi et ça marche.
Le post de
blueznl est ici
http://www.purebasic.fr/english/viewtop ... 0&start=60