Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Calcule du temps total d'utilisation [ Divers / Débutants ] (aldrac)

mardi 5 août 2008 à 19:42:10 | Calcule du temps total d'utilisation

aldrac

Bonjour a tous, j'ai crée une petite application qui se lance au démarrage de
windows,et je chercher un moyen de calculer le temps total d'utilisation,je m'explique:
dés que le pc fonctionne mon programme compte les secondes, minutes et heures, les stocks
dans des fichiers pour pouvoir au ré allumage du pc retrouver les valeurs (heures,min,sec)
Ainsi mon chrono reprend ou il s'etai arrêter!
Je sais cela doit vous sembler un peu poussif!! Mais je débute et je fais ça en amateur,j' ai chercher
le moyen pour que mon prog détecte lorsque le pc va s'éteindre et ainsi écrire juste a ce moment la,
dans un fichier,mais j'ai pas trouver!!
Voici l'extrais de mon code qui concerne cette fonction,
dite moi ce que vous en penser,n'hésiter pas!!


Imports System.IO 'pour pouvoir lire et écrire de fichiers
Public Class Form1
    Dim h As Integer 'les heures
    Dim m As Integer 'les minutes
    Dim s As Integer 'les secondes
    Dim t As String 'affichage du temps


    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        'on regarde si on peut reprendre les données d'un précedent timer
        If File.Exists("c:\a\heures.txt") Then
            Call reprise()
        End If

        'le label affiche les variables (précedente ou non)
        Label1.Text = "" & h & " : " & m & " : " & s & ""

    End Sub

    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick

        'a chaque tick on incrémente s de 1
        s = s + 1

        'on defini les unitées de temps:
        If s = 60 Then : s = 0
            m = m + 1
        End If

        If m = 60 Then : m = 0
            h = h + 1
        End If

        'on donne a t les valeurs des variables h,m,s
        t = "" & h & " : " & m & " : " & s & ""
        Label1.Text = (t) 'affiche t

        ' a chaque tick on écrit les valeurs de h,m,s dans des fichiers .txt afin de les lires
        'lors de la reprise
        Dim SW1 As StreamWriter = File.AppendText("c:\a\heures.txt") ' crée ou si existe ajoute
        SW1.WriteLine(h)
        SW1.Close()

        Dim SW2 As StreamWriter = File.AppendText("c:\a\minutes.txt") ' crée ou si existe ajoute
        SW2.WriteLine(m)
        SW2.Close()

        Dim SW3 As StreamWriter = File.AppendText("c:\a\secondes.txt") ' crée ou si existe ajoute
        SW3.WriteLine(s)
        SW3.Close()


    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Timer1.Interval = 1000 'timer de 1 seconde
        Timer1.Start()

    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        End
    End Sub

  

    Private Sub reprise()

        'on transforme le fichier heures.txt en tableau
        Dim th() As String = File.ReadAllLines("c:\a\heures.txt")
        Dim k As String
        Dim p As Integer

        'on cherche la derniere ligne du tableau
        k = th.Length - 1 ' -1 car les elements du tableau commence a l'indice 0,1,2...donc i serait or tableau
        p = CType((k), Integer)  ' f est la variable String, Integer est le type à obtenir
        h = th.GetValue(p) 'h prend la valeur de la derniere ligne du tableau


        'on transforme le fichier minutes.txt en tableau
        Dim tm() As String = File.ReadAllLines("c:\a\minutes.txt")
        Dim l As String
        Dim q As Integer

        'on cherche la derniere ligne du tableau
        l = tm.Length - 1 ' -1 car les elements du tableau commence a l'indice 0,1,2...donc i serait or tableau
        q = CType((l), Integer)  ' f est la variable String, Integer est le type à obtenir
        m = tm.GetValue(q) 'm prend la valeur de la derniere ligne du tableau


        'on transforme le fichier secondes.txt en tableau
        Dim ts() As String = File.ReadAllLines("c:\a\secondes.txt")
        Dim n As String
        Dim r As Integer

        'on cherche la derniere ligne du tableau
        n = ts.Length - 1 ' -1 car les elements du tableau commence a l'indice 0,1,2...donc i serait or tableau
        r = CType((n), Integer)  ' f est la variable String, Integer est le type à obtenir
        s = ts.GetValue(r) 's prend la valeur de la derniere ligne du tableau

        'apres avoir pris les précedentes valeures de h,m,s on efface les fichiers pour reécrir dans des neufs
        Call efface()
       

    End Sub

  
    Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
        Call reprise()
    End Sub

    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        Timer1.Stop()
    End Sub

    Private Sub efface()

        'on efface les fichiers pour ne pas surcharger
        File.Delete("c:\a\heures.txt")
        File.Delete("c:\a\minutes.txt")
        File.Delete("c:\a\secondes.txt")

    End Sub
End Class



mercredi 6 août 2008 à 00:57:23 | Re : Calcule du temps total d'utilisation

Kevin.Ory

Réponse acceptée !
Salut,
Il y a plus simple

1. Au lieu de créer un fichier, on peut utiliser un paramètre de l'application :
    - Menu Projet > Propriétés
    - Onglet Paramètres, tu ajoute un paramètre qui s'appel "ElapsedTime" de type Integer, porté utilisateur et de valeur 0


2. Au démarrage de l'application, on mémorise l'heure :
Private StartTime As Date
Private Sub Form1_Load(...) Handles MyBase.Load
    StartTime = Now
End Sub

3. A la fermeture de l'application, on sauvegarde le temps écoulé :
Private Sub Form1_FormClosing(...) Handles Me.FormClosing
    ' Temps écoulé durant la session :
    Dim Span As TimeSpan = Now - StartTime
    ' Ajouter au temps total :
    My.Settings.ElapsedTime += Span.Ticks
End Sub

4. Si tu veux connaitre/afficher le temps écoulé total :
    ' Temps total enregistré :
    Dim TotalTime As New TimeSpan(My.Settings.ElapsedTime)
    ' On ajoute le temps écoulé durant la session
    TotalTime.Add(Now - StartTime)


Comme tu peux le voir, on ne travail pas avec des heures, minutes et secondes, mais avec des ticks. Le tick est l'unité de base du temps, utilisé avec un TimeSpan il permet d'en extraire les heures, minutes et secondes ainsi que d'être aditionné/soustrait à une date.

mercredi 6 août 2008 à 07:08:55 | Re : Calcule du temps total d'utilisation

aldrac

Réponse acceptée !
je te remercie pour ta renonce je vais regarder tout ça!!
A++

mercredi 6 août 2008 à 10:49:20 | Re : Calcule du temps total d'utilisation

gillardg

Réponse acceptée !

tu n'as pas besoin de savoir quand windows vas se fermer ,
windows envoie un message aux applications qui tournent et normalement ton prog aura le temps de sauver ses données

dans l'evenement  form_close sauve tes données  .|


bonjour chez vous!
< body>

mercredi 6 août 2008 à 17:16:27 | Re : Calcule du temps total d'utilisation

aldrac

Réponse acceptée !
ok!! Tout simple!
Merci Gillardg.



Cette discussion est classé dans : system, tableau, txt, integer, byval


Répondre à ce message

Sujets en rapport avec ce message

Recup Tableau [ par legion91 ] Je voudrais recuperer l'organisation d'un tableau generer par le code ci-dessou qui cree un fichier txt par exemple:Sub main()Dim buffer() As IntegerD Lire dans un fichier Txt -optimiser mon code- [ par ninja hacker ] Bonjour!J'ai fais un tutoriel sur internet qui ma permit d'apprendre a lire dans un fichier Txt pou savoir la derniere ligne de texte écrit dans celui hook souris dans Word URGENT [ par sylvain230 ] Bonjour. Je n'arrive pas à installer un hook dans WordJ'ai toujours l'erreur suivante " Tentative de lecture ou d'écriture de mémoire protégée. Cela i VoiceInsert [ par Jav1man ] J'ai un prolème avec ce code, y a t-il un samaritin dans le coin voici le codeCode Vb.netImports VoiceInsert.ComputerFeaturesImports VoiceInser les marges pour une impression ne fonctionne pas [ par alexandreillusion ] je cherche à imprimer une form en paysage ce que j'arrive a faire. en revanche je ne reussi pas centrer sur la page cette form. pourriez vous m'aider Suite [ par neo de la matrix ] Voici le code que j'utilise pour remplir mon datagridview    Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handle transferer valeur des textbox dans un tableau [ par minus87 ] bonjour je viens de finir de créer une boite de dialogue qui sert a ajouter un ouvrier dans une liste de personnel.Elle comporte :textbox :            DataReceived l'interuption ne fonctionne pas: Besoin d'aide [ par Aselophe ] Bonjour a tousJ'ai un petit probleme avec la fonction DataReceived. Interuption a la reception d'un byte ne fonctionne pas.J'ai pourtant cherché sur p j'ai un doute sur ce prg [ par domxaline ] bonjourcomme vous savez je suis un debutant j'ai un doute sur ce prg<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAM Gestion d'évenement et référence d'objet [ par eldran64 ] Bonjour, J'ai un petit souci avec mon code sous VB.net:   J'ai une classe (Rectangle) et j'aimerai faire appel à un é


Nos sponsors

Sondage...

CalendriCode

Téléchargements



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,281 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.