Visualisateur de fichiers, programme disparu !!!

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
cirederff
Messages : 54
Inscription : ven. 15/mai/2009 19:57

Visualisateur de fichiers, programme disparu !!!

Message 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! 8O
rebidouille
rebelote 8O
rebidouille
rebelote 8O
4 fois de suite 8O 8O 8O 8O , 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. :x
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.
Avatar de l’utilisateur
djes
Messages : 4252
Inscription : ven. 11/févr./2005 17:34
Localisation : Arras, France

Re: Visualisateur de fichiers, programme disparu !!!

Message 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é.
cirederff
Messages : 54
Inscription : ven. 15/mai/2009 19:57

Re: Visualisateur de fichiers, programme disparu !!!

Message par cirederff »

Dans ta réponse, tu as tout résumé.
Plus de programme..... que des carré et plus de texte. :cry: 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 :oops:
Cls
Messages : 620
Inscription : mer. 22/juin/2005 8:51
Localisation : Nantes

Re: Visualisateur de fichiers, programme disparu !!!

Message 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é.
Avatar de l’utilisateur
djes
Messages : 4252
Inscription : ven. 11/févr./2005 17:34
Localisation : Arras, France

Re: Visualisateur de fichiers, programme disparu !!!

Message par djes »

Tout à fait d'accord, et une sauvegarde dès qu'un changement important dans le code a lieu.
cirederff
Messages : 54
Inscription : ven. 15/mai/2009 19:57

Re: Visualisateur de fichiers, programme disparu !!!

Message 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 :oops: mais bon...
Cls
Messages : 620
Inscription : mer. 22/juin/2005 8:51
Localisation : Nantes

Re: Visualisateur de fichiers, programme disparu !!!

Message 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
cirederff
Messages : 54
Inscription : ven. 15/mai/2009 19:57

Re: Visualisateur de fichiers, programme disparu !!!

Message 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() :oops:
Cls
Messages : 620
Inscription : mer. 22/juin/2005 8:51
Localisation : Nantes

Re: Visualisateur de fichiers, programme disparu !!!

Message 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.
cirederff
Messages : 54
Inscription : ven. 15/mai/2009 19:57

Re: Visualisateur de fichiers, programme disparu !!!

Message par cirederff »

ça marche quand je n'oublie pas baud=115200 :roll:

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
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Re: Visualisateur de fichiers, programme disparu !!!

Message 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
Répondre