Demarage vb

Signaler
Messages postés
3
Date d'inscription
lundi 1 décembre 2008
Statut
Membre
Dernière intervention
29 mai 2013
-
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
-
salut, j'ai créer une application en vb6.0,et je souhaiterai qu'en demarant l'application pour la première fois de la journée n, que vb me donne un message de bienvenu, mais si cela 2ème,3ème,....,ou nième fois de la journée,que vb ne donne pasdes message.
je veux le code pour faire cela.

merci

10 réponses

Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
235
Bonjour,
Il te faut dans ce cas prévoir un simple petit fichier texte (ne contenant que la date)
A l'ouverture de ton appli :
- lire (par Open) le contenu de ce fichier
- si absent ou date antérieure : ===>> message + y écrire date du jour
- si contient déjà date du jour : ne rien fgaire
- fermer le fichier texte
Mécanisme simple, donc !
Pour ce qui est de comment lire, écrire dans un fichier texte : utilise donc le moteur de recherche de ce forum : ===>> il s'agit d'une question à ce point récurrente que le moteur de recherche te conduira à une foultitude de liens !


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ

Bonjour,

je veux le code pour faire cela.

Donner un code comme cela, c'est contraire aux usages de la maison.

Tout ce qu'il te faut, c'est garder une indication à quelque part que le programme a déjà été lancé.

Ce quelque part cela peut être:

le registre :

-SaveSettings et GetSettings dans l'aide de VB6

un fichier .ini
-Faut passer par l'API Windows

un banal fichier texte
-open dans l'aide de VB6
Messages postés
728
Date d'inscription
samedi 4 avril 2009
Statut
Membre
Dernière intervention
30 mars 2014
5
Bonjour,

C'est vrai que si tu débute tu ne risque pas d'y arriver, il faut déjà bien manipuler les fichiers...

' code vb6 testé (mais à vérifier dans tous les cas)
Option Explicit ' d'après ucFoutu...
  Dim primoDate As Boolean

Sub Form_Load()
  Dim p  As Integer
  Dim ligne As String
  Dim ladate As Date
  primoDate = False
  ChDrive App.Path
  ChDir App.Path
  p = FreeFile
  On Error GoTo erreur1
  Open "ladate.txt" For Input As p
  Line Input #p, ligne
  Close p
  ladate = CDate(ligne)
  If ladate <> Mid(Now, 1, 10) Then GoTo primo
  Exit Sub
  '
erreur1: ' 53 = introuvable
  On Error Resume Next
  Close p
primo:
  ladate = Mid(Now, 1, 10)
  p = FreeFile
  Open "ladate.txt" For Output As p
  Print #p, ladate
  Close p
  primoDate = True
End Sub

Sub Form_Activate()
  If primoDate = True Then
    primoDate = False
    MsgBox "Première lancement de la journée", vbInformation
  End If
End Sub


Cordialement, Joe.
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
235
Bonjour EhJoe,
Evite-lui ces gestions d'erreur, dans ce cas
Le message de bienvenue est à envoyer dans 2 cas :
- fichier absent
- fichier avec date antérieure

Si un fichier est absent : La fonction Dir retourne ""
donc :
toto = false
Si Dir = ""
   toto = true
sinon
  on ouvre en lecture
  si date du jour ===>> toto = true
    on ferme
  sinon
    toto = true
    on ferme
    on ouvre en écriture
      on y met la date du jour
      on ferme
  fin si
fin si
si toto true>> message de bienvenue

Pas de gestion d'erreur no de goto.
Je le laisse personnellement écrire cela en vrai code



________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
235
Pardon ===>>
toto = false
Si Dir = ""
   toto = true
sinon
  on ouvre en lecture
  si date du jour
    on ferme
  sinon
    toto = true
    on ferme
    on ouvre en écriture
      on y met la date du jour
      on ferme
  fin si
fin si
si toto true>> message de bienvenue



________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
235
Ah oui ! Il va falloir amorcer au moins une fois !
Qu'à celà ne tienne, alors ===>>
toto = false
Si Dir = ""
   toto = true
fin si
si toto = false
  on ouvre en lecture
  si <> date du jour
    toto = true
  fin si    
  on ferme
fin si
on ouvre en écriture
   on y met la date du jour
on ferme
si toto true>> message de bienvenue




________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
Messages postés
728
Date d'inscription
samedi 4 avril 2009
Statut
Membre
Dernière intervention
30 mars 2014
5
eh Jacques, à chaque fois que tu réponds tu en rajoutes, tu va bientôt me dépasser en longueur, et encore t'as pas mis les écritures fichiers

Cordialement, Joe.
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
235
Je n'ai rien ajouté ! j'ai remplacé tout est là (et je le commente donc)
toto = false
Si Dir "" '>> c'est que le fichier n'existe pas
   toto = true 
fin si
si toto false>> le fichier existe 
  on ouvre en lecture 
  si <> date du jour
    toto true '>> on ne passe à true que si nécessaire
  fin si    
  on ferme
fin si ' ===>> on ferme dans tous les cas
on ouvre en écriture ' ===>> se fait sans condition (rappel cette ouverture crée seule le fichier)
   on y met la date du jour
on ferme
si toto true>> message de bienvenue car si true : date <> ou fichier encore absent au départ

On aurait même pu (je n'ai pas voulu être à ce point avare pour une infime fraction de seconde) utiliser une 2ème booléenne pour ne pas réécrire lorsque date en lecture = date du jour


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
Messages postés
728
Date d'inscription
samedi 4 avril 2009
Statut
Membre
Dernière intervention
30 mars 2014
5
Bonjour Jacques,

Belle journée pleine de pluie à 13°c, ils ne vont pas dire qu'il manque d'eau ça fait un mois que ça tombe

Je n'ai pas pensé au dire, je ne l'utilise pas dans ce cas, par contre j'évais pensé à lire simplement la date du fichier qui aurait été vide, mais quand j'ai vu qui'l fallait y mettre une couche d'API j'ai laissé tomber pour lui (l'auteur de la quetion).

Bonne journée, cordialement, Joe.
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
235
Oui, il pleut ici également.
Allez, va ==>> j'ai fini par l'écrire moi-même, en simplifiant encore.
Je n'utilise plus toto, mais la fonction elle-même, que je type en booléenne.

Option Explicit
Private Sub Form_Load()
 If dire_bonjour Then MsgBox "bonjour"
End Sub
 
Private Function dire_bonjour() As Boolean
  Dim mon_fic_bonjour As String, quoi As String
  mon_fic_bonjour = App.Path & "\bonjour.txt"
  If Dir(mon_fic_bonjour) <> "" Then
    Open mon_fic_bonjour For Input As #1
      Line Input #1, quoi
      If quoi <> Format(Date, "yyyymmdd") Then
       dire_bonjour = True
      End If
    Close #1
  Else
    dire_bonjour = True
  End If
  If Not dire_bonjour Then Exit Function
  Open mon_fic_bonjour For Output As #1
    Print #1, Format(Date, "yyyymmdd")
  Close #1
End Function


Voilà, EhJoe : pas de goto, pas de gestion d'erreur.
Et je n'écris que lorsque nécessaire, en plus.
J'ai testé ===>> pas de faille
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ