Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB6: Maksimiarvon lukeminen

fox [22.11.2007 12:23:53]

#

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

neau33 [22.11.2007 13:17:10]

#

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-

fox [22.11.2007 14:40:56]

#

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 :)

Metabolix [22.11.2007 14:54:39]

#

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

setä [22.11.2007 15:00:55]

#

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ä

fox [25.11.2007 19:33:52]

#

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

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta