Osaisiko joku auttaa aloittelijaa?
Ongelma on seuraava:
Luen csv filusta viimeisen rivin kerran minuutissa VB:n Timer:lla. Rivi sisältää kentät:
Päivämäärä;Kelloaika;Lämpötila
Kun lämpötila ylittää halutun raja-arvon talletetaan alkuaikaleima muuttujaan.
Miten saan loppuaikaleiman, joka on lämpötilan maksimiarvon kohdalla? Esim. lämpötila nousee 70 asteesta 120 asteeseen, jonka jälkeen
se taas laskee esim. 50 asteeseen.
VB:stä on käytössä versio 6
Moikka fox!
Kuules nyt 'Lazy' "aloittelija" esim. tallentamalla myös lämpötilan johonkin muuttujaan & vertaamalla josko olis muuttuessaan suurempikuin asetettu raja-arvo
'... If lTila > rajaArvo And lTila > lTilaTag Then 'asetat aikaleiman jonnekkin... aLeimaB = Now 'myös muuttuja lTilaTag vois olla vaikkapa 'Static, Public tahi jopa Global... lTilaTag = lTila ElseIf lTila <= rajaArvo And lTilaTag > 0 Then lTilaTag = 0 'voit napata tässä vielä aikaleiman jolloin 'lämpötila putos rajarvoihin jne. End If '...
-Nea-
Moi Nea,
En tiedä selitinkö ongelman liian vaikeasti, mutta haen lokitiedostosta (johon siis tulee dataa koko ajan) lämpötilan maksimiarvoa ja sitä vastaavaa aikaleimaa.
Eli ennalta asetetun lämpötilan raja-arvon kohdalta saan kyllä aikaleiman lokitiedostosta, mutta miten saan aikaleiman lämpötilan maksimiarvon kohdalta?
Käsitääkseni esimerkkisi seuraa vain asetettua raja-arvoa.
Tarkoitukseni on laskea, kuinka kauan lämpötilan nouseminen kesti asetetusta raja-arvosta, lämpötilan maksimi-arvoon.
Kaikki muu koodissa toimii paitsi tuo maksimi-arvon seuranta.
_Fox alias Lazy :)
Yrititkö edes? Ohjelmasi suomeksi: jos lämpötila on suurempi kuin suurin tähän mennessä löydetty, otetaan muistiin uusi suurin lämpötila ja sitä vastaava aikaleima. Ei tarvita paljon, että tuo muuttuu koodiksi:
Do ' Luetaan rivi tiedostosta... Pvm, Aika, Lämpötila ' jos lämpötila on suurempi kuin suurin tähän mennessä löydetty If Lämpötila > Suurin_lämpötila Then ' otetaan muistiin uusi suurin lämpötila Suurin_lämpötila = Lämpötila ' ja sitä vastaava aikaleima Suurimman_lämpötilan_aika = Aika Suurimman_lämpötilan_pvm = Pvm End If Loop
Määrittele muuttuja lmax ja tmax, joille annat lämpötilan ja aikaleiman arvot kun lämpötila ylittää annetun raja-arvon. Sen jälkeen seuraat lämpötilaa ja aina kun se ylittää lmaximin annat uuden arvon lmaximille ja aikaleimalle.
Edit: Myöhässä
Kiitokset kaikille vastanneille avusta. Pari päivää päätä seinään, kunnes tajusin että muuttujat olivat väärää tyyppiä useammassa kuin yhdessä kohtaa. Noh kantapään kautta oppii...
_Fox
Aihe on jo aika vanha, joten et voi enää vastata siihen.