Προς το περιεχόμενο

xroniki diarkeia sti visual basic


johntas

Προτεινόμενες αναρτήσεις

Δημοσ.

exw to parakatw programma:

 

If Buffer = 1 Then

device1on.ZOrder

datatext.Text = datatext.Text & "Enarksi" & Buffer & "hs metrisis: " & Time$ & " " & Date$ & " "

End If

If Buffer = 2 Then

device2on.ZOrder

datatext.SelStart = 23

datatext.Text = datatext.Text & "Enarksi" & Buffer & "hs metrisis: " & Time$ & " " & Date$ & " "

End If

If Buffer = 3 Then

device3on.ZOrder

datatext.Text = datatext.Text & "Enarksi" & Buffer & "hs metrisis: " & Time$ & " " & Date$ & " "

End If

If Buffer = 4 Then

device4on.ZOrder

datatext.Text = datatext.Text & "Enarksi" & Buffer & "hs metrisis: " & Time$ & " " & Date$ & " "

End If

 

If Buffer = 5 Then

device1off.ZOrder

datatext.Text = datatext.Text & "H 1h metrisi termatistike stis" & Time$ & " " & Date$ & " "

End If

If Buffer = 6 Then

device2off.ZOrder

datatext.Text = datatext.Text & "H 2h metrisi termatistike stis" & Time$ & " " & Date$ & " "

End If

If Buffer = 7 Then

device3off.ZOrder

datatext.Text = datatext.Text & "H 3h metrisi termatistike stis" & Time$ & " " & Date$ & " "

End If

If Buffer = 8 Then

device4off.ZOrder

datatext.Text = datatext.Text & "H 4h metrisi termatistike stis" & Time$ & " " & Date$ & " "

End If

 

auto pou kanei einai molis dexetai apo to buffer mia timi, katagrafei tin trexousa wra kai imeromina

exw 4 zeugaria timwn

1-5

2-6

3-7

4-8

auto pou thelw einai otan dwthei h timi 1, na arxisei na metraei enas metritis kai na termatistei otan dwthei h timi 5 (omoia kai gia ta alla zeugh timwn)

enallaktika na katagrafontai h prwti wra/imerominia kai meta h deuteri kai na ginetai mia idiotipi afairesi

kati tetoio telos pantwn, gia na fainetai posi wra perase apo ti stigmi pou dwthike to 1 mexri na dwthei to 5 klp

kamia voithia?

euxaristw

Δημοσ.

Είναι σίγουρα πιο εύκολο και απλό να χρησιμοποιήσεις την DateDiff μέσα στον παραπάνω κώδικά σου, αλλά αν αυτό δεν είναι εφικτό, δες τι προτείνω

 

Υποθέτω ότι ο παραπάνω κώδικας είναι μέσα σε κάποια Sub (ή Function) της μορφής

Sub DoJobForBuffer(Buffer As Long)

 

Άλλαξε την Sub προσθέτοντας στο τέλος 3 args

Sub DoJobForBuffer(Buffer As Long, NewDateTime As Date, Optional BeforeDateTime, Optional DiffDateTime As Long)

και μέσα σ' αυτή τη Sub στο τέλος της, βάλε αυτόν τον κώδικα

>
NewDateTime = Now()
If Not IsMissing(BeforeDateTime) Then
   DiffDateTime = DateDiff("s", BeforeDateTime, NewDateTime)
End If

NewDateTime = Ημερομηνία και ώρα που τελείωσε η παρούσα κλήση της sub

BeforeDateTime = Ημερομηνία και ώρα που τελείωσε η ΠΡΟΗΓΟΥΜΕΝΗ κλήση της sub (άν υπάρχει, αλλιώς δεν δίνεις τίποτε)

DiffDateTime = Η διαφορά σε δευτερόλεπτα της παρούσας κλήσης σε σχέση με την προηγούμενη (η τιμή ισχύει μόνο αν υπάρχει η προηγούμενη παράμετρος)

 

 

 

Τώρα, κάπου αλλού στο πρόγραμμά σου, καλείς την sub για διάφορες τιμές

 

>
Dim NewTime As Date
Dim ThisTime As Date
Dim SecondsEllapsed As Long
Dim aStr As String

' .
' .
' Κώδικας
' .

DoJobForBuffer 1, ThisTime
aStr = "Αρχική κλήση " & ThisTime & vbCrLf
' .
' .
' Κώδικας
' .

DoJobForBuffer 2, NewTime, ThisTime, SecondsEllapsed
aStr = aStr & "Επόμενη κλήση " & NewTime & " (" & SecondsEllapsed & " δευτ.)" & vbCrLf
ThisTime = NewTime
' .
' .
' Κώδικας
' .

DoJobForBuffer 3, NewTime, ThisTime, SecondsEllapsed
aStr = aStr & "Επόμενη κλήση " & NewTime & " (" & SecondsEllapsed & " δευτ.)" & vbCrLf
ThisTime = NewTime
' .
' .
' Κώδικας
' .

DoJobForBuffer 4, NewTime, ThisTime, SecondsEllapsed
aStr = aStr & "Επόμενη κλήση " & NewTime & " (" & SecondsEllapsed & " δευτ.)" & vbCrLf
ThisTime = NewTime
' .
' .
' Κώδικας
' .

DoJobForBuffer 5, NewTime, ThisTime, SecondsEllapsed
aStr = aStr & "Τελική κλήση " & NewTime & " (" & SecondsEllapsed & " δευτ.)" & vbCrLf
ThisTime = NewTime
' Στο τελικό βήμα η aStr περιέχει τους χρόνους για κάθε βήμα και τη διάρκειά τους
' .
' .
' Κώδικας
' .

Δημοσ.

Euxaristw gia tin apantisi

Katarxas na pw pws den eimai programmatistis. Aplws ematha kapoia pragmata entelws erasitexnika kai gia tis anagkes enos ipotipwdous programmatos pou xreiazomai

Twra pame sto diatauta

 

H uporoutina ksekinaei ws eksis:

 

Private Static Sub MSComm1_OnComm()

 

 

Select Case MSComm1.CommEvent

 

Case comEvReceive

Dim Buffer As Variant

Buffer = Val(MSComm1.Input)

 

Na upothesw pws auto pou les einai na kanw einai auto:

 

Private Static Sub MSComm1_OnComm(NewDateTime As Date, Optional BeforeDateTime, Optional DiffDateTime As Long)

 

???

 

sorry an auta pou rwtaw einai autonoita gia merikous

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...