Voici un test fait sous VB2005 Express édition :
Imports System.IO
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim Unknown As UInt32
Dim Timestamp As UInt32
Dim AbsolutePressure As Single
Dim WindSpeed As Single
Dim WindDirection As UInt32
Dim AbsoluteRainFall As Single
Dim IndoorTemperature As Single
Dim OutdoorTemperature As Single
Dim IndoorHumidity As Short
Dim OutdoorHumidity As Short
Dim HistoRead As New BinaryReader(File.OpenRead("c:history.dat"))
Dim i As Integer
Dim dt As DateTime
Dim dt1 As DateTime
' Première fois ?
If Me.TBNrEnreg.Text = "" Then
HistoRead.BaseStream.Seek(0, SeekOrigin.Begin)
Else
i = Me.TBNrEnreg.Text
HistoRead.BaseStream.Seek(i * 36, SeekOrigin.Begin)
' Fin du fichier ?
If i * 36 = HistoRead.BaseStream.Length - 28 Then
MsgBox("Fin du fichier!", MsgBoxStyle.Information)
Me.Close()
Exit Sub
End If
End If
Unknown = HistoRead.ReadUInt32
Timestamp = HistoRead.ReadUInt32
AbsolutePressure = HistoRead.ReadSingle
WindSpeed = HistoRead.ReadSingle
WindDirection = HistoRead.ReadUInt32
AbsoluteRainFall = HistoRead.ReadSingle
IndoorTemperature = HistoRead.ReadSingle
OutdoorTemperature = HistoRead.ReadSingle
IndoorHumidity = HistoRead.ReadUInt16
OutdoorHumidity = HistoRead.ReadUInt16
dt = New DateTime(1970, 1, 1)
dt1 = dt.AddSeconds(3600 + Math.Abs(Timestamp - 2208988800)) '+3600=GMT+1
'Affichage valeurs
'Me.TBPressure.Text = Format(Val(AbsolutePressure), "fixed")
Me.TBPressure.Text = AbsolutePressure.ToString("####.#")
Me.TBVentVit.Text = Val(WindSpeed)
Me.TBVentDir.Text = Val(WindDirection)
Me.TBPluie.Text = Val(AbsoluteRainFall)
Me.TBTempInt.Text = IndoorTemperature.ToString("##.#")
Me.TBTempExt.Text = OutdoorTemperature.ToString("##.#")
Me.TBHumiInt.Text = IndoorHumidity.ToString("##.#")
Me.TBHumiExt.Text = OutdoorHumidity.ToString("##.#")
i = HistoRead.BaseStream.Position / 36
Me.TBNrEnreg.Text = i.ToString("0###")
Me.TBDate.Text = dt1.ToString.Substring(0, 10)
Me.TBHeure.Text = dt1.ToString.Substring(11)
' *******
HistoRead.Close()
End Sub
Gel de la session utilisateur sur Windows Server 2003
Pour compléter mon message précédent il vaudrait mieux écrire :
Me.TBTempInt.Text = IndoorTemperature.ToString("##0.#")
Me.TBTempExt.Text = OutdoorTemperature.ToString("##0.#")
pour voir le zéro si la température est comprise entre -1 et +1 °
Il faudrait aussi décoder la direction du vent par un "Select case"
Select Case Val(WindDirection)
Case 0
Me.TBVentDir.Text = "N"
Case 1
Me.TBVentDir.Text = "NNE"
Case 2
Me.TBVentDir.Text = "NE"
etc.
End Select
Il s'agit juste d'un test pour afficher les variables du fichier dans des textbox à chaque pression sur un bouton mais on peut bien sûr mettre les valeurs obtenues dans une structure. Ce qui me semblait correspondre à la demande c'est le décodage des données et en particulier de la date
Je reste à disposition pour tout complément d'information.
Cordialement.
Michel
Me.TBTempInt.Text = IndoorTemperature.ToString("##0.#")
Me.TBTempExt.Text = OutdoorTemperature.ToString("##0.#")
pour voir le zéro si la température est comprise entre -1 et +1 °
Il faudrait aussi décoder la direction du vent par un "Select case"
Select Case Val(WindDirection)
Case 0
Me.TBVentDir.Text = "N"
Case 1
Me.TBVentDir.Text = "NNE"
Case 2
Me.TBVentDir.Text = "NE"
etc.
End Select
Il s'agit juste d'un test pour afficher les variables du fichier dans des textbox à chaque pression sur un bouton mais on peut bien sûr mettre les valeurs obtenues dans une structure. Ce qui me semblait correspondre à la demande c'est le décodage des données et en particulier de la date

Je reste à disposition pour tout complément d'information.
Cordialement.
Michel
Dernière modification par MichelC le sam. janv. 06, 2007 8:01 pm, modifié 1 fois.
- jturlier
- Membre
- Messages : 3149
- Inscription : mar. août 22, 2006 8:38 am
- Localisation : 34410 Sérignan - Languedoc
- Contact :
Michel,
cela correspond, en mieux, à ce que j'avais déjà réussi à identifier. Le boulot est fait à 98%, le reste n'est que de l'habillage.
Merci encore.
Jean
cela correspond, en mieux, à ce que j'avais déjà réussi à identifier. Le boulot est fait à 98%, le reste n'est que de l'habillage.
Merci encore.
Jean
Jean
Station : VP2 Pro Console Vue + anémomètre à Ultra-sons
Logiciels : Cumulus 1.9.4 + Cumulus2SQL
Serveur local : Apache + MySQL +PHP
PC : W10
Support Audio : FR
http://meteoserignan.ddns.net

"Aide-toi d'abord toi-même et les autres t'aideront ... peut-être"
Station : VP2 Pro Console Vue + anémomètre à Ultra-sons
Logiciels : Cumulus 1.9.4 + Cumulus2SQL
Serveur local : Apache + MySQL +PHP
PC : W10
Support Audio : FR
http://meteoserignan.ddns.net

"Aide-toi d'abord toi-même et les autres t'aideront ... peut-être"