Newsgroup: it.comp.lang.visual-basic
Titolo: Sempre per il contascatti vb6

Salve a tutti (piccolo riassunto)
Sto facendo un programma che servirà a chi ha un abbonamento internet a 
tempo tipo 100 ore.
Il timer parte con la connessione e si spegne alla fine della connessione. 
poi scrive sul label il conto degli scatti.Alla fine della connessione il 
cronometro si ferma e il contenuto del label degli scatti viene scritto in 
un file di testo che poi terra a memoria il numero degli scatti effettuati. 
Il problema è che lo stesso numero lo scrive 20 o trenta volte e non solo 
una volta?quindi nel file di testo invece di scrivere
4
scriverà
4
4
4
4
4
4
4
4
4
4
4
4
4
Il codice da controllare è quello finale :-)) grazie a tutti
Private Sub Timer1_Timer()
If IsConnected = True Then
    scatti = Lblscatti.Caption
    If Label1.Caption = "00" And Label2.Caption = "00" And Label3.Caption = 
"00" Or _
       Label1.Caption = "15" And Label2.Caption = "00" And Label3.Caption = 
"00" Or _
       Label1.Caption = "30" And Label2.Caption = "00" And Label3.Caption = 
"00" Or _
       Label1.Caption = "45" And Label2.Caption = "00" And Label3.Caption = 
"00" Then
       Lblscatti.Caption = CStr(Int(Val(Replace(Lblscatti.Caption, ",", 
"."))) + 1)
    End If
    LblOra = Format(Now, "HH.MM.SS")
    If Label3.Caption = 99 Then
        Label3.Caption = "00"
        Label2.Caption = Label2.Caption + 1
        Timer1.Interval = 10
        Else
        If Label2.Caption = 60 Then
        Label2.Caption = "00"
        Label1.Caption = Label1.Caption + 1
        Timer1.Interval = 10
    Else
    If Label1.Caption = 60 Then
        Label1.Caption = "00"
        Label4.Caption = Label4.Caption + 1
        Timer1.Interval = 10
        Else
        Label3.Caption = Label3.Caption + 1
        Timer1.Interval = 10
    End If
    End If
    End If
Else
    Label1.Caption = "00"
    Label2.Caption = "00"
    Label3.Caption = "00"
    Label4.Caption = "00"
Dim nomefile, contenuto As String
nomefile = Format(Calendar1, "MM.yyyy")
contenuto = Lblscatti
Open App.Path & "\archivio\" & nomefile & ".txt" For Append As #1
Print #1, contenuto
Close #1
End If
End Sub 

 Private Sub Timer1_Timer()

Punto primo:
    Timer1.interval = 1000 (che equivale a un secondo)
    lo setti di default, non è necessario settarlo in tutte le parti del
codice, dato che non cambia.
    Tieni presente che il Timer lo puoi settare al massimo a 65.535, quindi
60.000 (60 x 1000) equivale a un minuto.
Punto secondo:
    Prima di scrivere i dati controlli che Lblscatti.Caption <> 0.
    Dopo che hai scritto i dati resetti Lblscatti.Caption = 0.
    Tieni presente che nella label a questo punto hai il conteggio dei
secondi!
--
Ciao Fede
By Chicco Production
http://www.webalice.it/bychicco/

 ha scritto nel messaggio 
news:48068346$0$29597$4faf...@reader1.news.tin.it...


        Timer1.Interval = 10
Intervallo TROPPO piccolo, sotto i 30 ms il timer di VB
NON e' affidabile (neanche sopra... a dir la verita' e' molto
impreciso).

 Ti ringrazio sei sempre molto gentile adesso vedo se ho capito :-))
Il quote please.
Inoltre usare il testo di una label per fare dei confronti nel codice non è
che sia proprio comodo.

 Close #1
....
Aprendo un file per Append, l'istruzione print che fai, "Appende" il testo a 
quello gia' scritto, quindi effettivamente la tua riga verra' aggiunta al 
file.
Se invece lo apri "For OutPut", tutto il contenuto del file verra' 
cancellato e verra' sostituito con tutti i Print che farai prima di chiudere 
il file stesso.
Spero ti possa aiutare.
Ciao... Maurizio 

 il file stesso.
Essendo quello uno "storico" è giusto che sia in append.
Il problema è che scrive sul file quando IsConnected=False, cioè se tiene
il programma sempre aperto senza connessione scriverà sempre.
Io avrei salvato su un file o database inizio /fine connessione ed
eleborato poi gli scatti. In questo modo avrebbe un vero storico di
connessioni, che elabora come vuole in un secondo momento.
Oppure se vuol fare così, una volta scritto il file porta contenuto a 0 e
fa la print solo se contenuto>0, oppure scrive sul file prima di uscire dal
programma o comunque non all'evento timer.

 Essendo quello uno "storico" è giusto che sia in append.
...
Ok, allora avevo capito io male il problema.
Avevo capito che a lui servisse sapere solo quanti scatti aveva fatto fino a 
quel punto, e non tenere traccia, connessione per connessione, degli scatti 
consumati.
Chiedo scusa e torno nell'oblio! :-)
Ciao... Maurizio