johntas Δημοσ. 10 Νοεμβρίου 2005 Δημοσ. 10 Νοεμβρίου 2005 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
UserXP Δημοσ. 14 Νοεμβρίου 2005 Δημοσ. 14 Νοεμβρίου 2005 Είναι σίγουρα πιο εύκολο και απλό να χρησιμοποιήσεις την 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 περιέχει τους χρόνους για κάθε βήμα και τη διάρκειά τους ' . ' . ' Κώδικας ' .
johntas Δημοσ. 15 Νοεμβρίου 2005 Μέλος Δημοσ. 15 Νοεμβρίου 2005 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
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.