1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110
| Sub ExtractionTemp(x As String)
Dim i As Long, j As Integer, Nbzone As Long, nbligne As Long
Dim temps As Double, Pastps As Double, tps As Double, temp As Double
Dim Ptps As String
Dim fs As Object, src As Object
'On initialise à 0 cette variable permet de commencer la 2ème séquence à la fin de la 1ère pour le temps
'Lorsqu'on a plusieurs séquence on rajoute le temps de la séquence précédente
tps = 0
'Si on n'a pas entré de fichiers on sort de la sub, on n'a pas de calculs à faire
If x = Empty Then
Exit Sub
End If
'A mettre lors de la création d'un fichier
'src correspond à l'ouverture du fichier résultat
Set fs = CreateObject("Scripting.FileSystemObject")
Set src = fs.OpenTextFile(x, 1)
' ***** Compte le nombre de lignes et colonnes du fichier courant *****
'tant qu'on n'est pas en fin de ligne on saute un caractère
While Not src.atendofline
src.Skip (1)
Wend
Nbzone = (src.Column - 22) / 21 / 2
'tant qu'on n'esr pas en fin de fichier on saute des lignes
While Not src.AtEndOfStream
src.skipline
Wend
nbligne = src.Line
'création du tableau en fonction du nombre de lignes et de zones
ReDim Tableau_Extraction_Temperature(1 To nbligne, 0 To Nbzone) As Single
'On ferme le fichier
src.Close
' ***** Lecture du fichier *****
Set src = fs.OpenTextFile(x, 1)
'on boucle sur les lignes
For i = 1 To UBound(Tableau_Extraction_Temperature, 1) - 1
'on rempli manuellement la 1ère colonne du tableau avec les temps
j = 0
'on saute les 2ers caractères qui correspondent à des blancs
src.Skip (2)
'on lit les 18 prochains caractères qui correnspondent aux T°
Ptps = src.read(18)
'on remplace les points par des virgules
Ptps = Replace(Ptps, ".", ",")
'on transforme la chaine de caractère en réel et on ajoute le temps de la séquence précédente
Pastps = CDbl(Ptps) + tps
'on introduit la colonne temps dans la 1ere colonne du tableau
Tableau_Extraction_Temperature(i, 0) = Pastps
'on saute 2 caractères pour arriver à la lecture des températures
src.Skip (2)
For j = 1 To Nbzone
'on saute le 1er caractère qui est un blanc
src.Skip (1)
'on fait un test sur le caractère d'après pour savoir si c'est un "-" ou un blanc
If src.read(1) = " " Then 'si c'est un blanc on saute ce caractère
'src.Skip (1)
'on arrondie les T° à 2entiers
temp = Round(Val(src.read(18)), 2)
'on rempli le tableau avec les T°
Tableau_Extraction_Temperature(i, j) = temp
'on saute les 22 prochains caractères qui correspondent à la colonne humidité
src.Skip (22)
'quand on arrive à la dernière colonne on passe à la ligne
If j = Nbzone Then
src.skipline
End If
Else
'on arrondie les T° à 2entiers
temp = Round(Val(src.read(18)), 2)
temp = -temp
'on rempli le tableau avec les T°
Tableau_Extraction_Temperature(i, j) = temp
'on saute les 22 prochains caractères qui correspondent à la colonne humidité
src.Skip (22)
'quand on arrive à la dernière colonne on passe à la ligne
If j = Nbzone Then
src.skipline
End If
End If
Next j
Next i
'on donne à la variable tps le dernier temps de la séquence pour commencer la 2eme séquence avec le temps final de la précédente
tps = Pastps
'on ferme le fichier
src.Close
End Sub |
Partager