cs_IcebergMan
Messages postés41Date d'inscriptionvendredi 11 février 2005StatutMembreDernière intervention11 décembre 2008
-
2 févr. 2006 à 16:19
Zlub
Messages postés809Date d'inscriptionmercredi 11 octobre 2000StatutMembreDernière intervention29 septembre 2010
-
3 févr. 2006 à 15:36
Bonjour à tous,
Voici mon problème : J'ai un fichier CSV contenant mes codes d'erreurs et leur description. Jutilise les objets fso pour lire le fichier ligne par ligne (une ligne représentant un seul message derreur). Ensuite jutilise la fonction Split pour extraire les informations vers un tableau. Après, je voudrais affecter le contenu de ce tableau dans un autre tableau contenant une structure. Cette structure est composée de 2 énumérations et dun String.
La lecture se passe bien, mais jai un petit souci avec mes tableaux.
Jai une erreur dincompatibilité (Type incompatible (erreur 13)) lorsque jaffecte une des valeurs du tableau de lecture vers le tableau contenant la structure avec les énumérations. Pouvez-vous maider ?
Est-il possible de transformer un String en Constante dun Enum ?
Exemple du code :
Public Enum ERROR_TYPE
type0 = &H0
type1 = &H1
type2 = &H2
type3 = &H3
typeUnused = &HFF
End Enum
Public Enum SENSOR_ID
sensor1 = &H2
sensor2 = &H3
sensor4 = &H4
sensor95 = &H95
sensor96 = &H96
sensor97 = &H97
End Enum
Public Type ERROR_STRUCTURE
ErrorType As ERROR_TYPE
SensorId As SENSOR_ID
ErrorText As String
End Type
Public ErrorStructure() As ERROR_STRUCTURE
Public Function LoadErrorMessage() As Boolean
Dim i As Integer
Dim fso As FileSystemObject
Dim fError As TextStream
Dim strPathErrorFile As String
Dim strErrorLine As String
Dim strFieldsErrorFile
LoadErrorMessage = False
Set fso = New FileSystemObject
strPathErrorFile = C:\Error.txt
If fso.FileExists(strPathErrorFile) Then
Set fError = fso.OpenTextFile(strPathErrorFile, ForReading)
Private Sub Form_Load()
MsgBox "sensor1 = " & ConvertSensorStringToSensorLong("sensor1")
MsgBox "sensor2 = " & ConvertSensorStringToSensorLong("sensor2")
MsgBox "sensor35 = " & ConvertSensorStringToSensorLong("sensor35")
MsgBox "sensor95 = " & ConvertSensorStringToSensorLong("sensor95")
Unload Me
End Sub
Private Function ConvertSensorStringToSensorLong(ByVal sSensor As String) As Long
Select Case sSensor
Case "sensor1": ConvertSensorStringToSensorLong = sensor1
Case "sensor2": ConvertSensorStringToSensorLong = sensor2
Case "sensor4": ConvertSensorStringToSensorLong = sensor4
Case "sensor95": ConvertSensorStringToSensorLong = sensor95
Case "sensor96": ConvertSensorStringToSensorLong = sensor96
Case "sensor97": ConvertSensorStringToSensorLong = sensor97
Case Else: ConvertSensorStringToSensorLong = &H0
End Select
End Function
Voilà, comme tu vois c'est une légère modif du code de pcpt ;)
cs_IcebergMan
Messages postés41Date d'inscriptionvendredi 11 février 2005StatutMembreDernière intervention11 décembre 2008 3 févr. 2006 à 09:34
Pcpt, Zlub,
Merci beaucoup pour vos réponses. Malheureusement, comme vous me l'avez signalé, il n'y a pas d'autre solution qu'utiliser cette fonction pour l'enum SENSOR_ID :
Private Function ConvertSensorStringToSensorLong(ByVal sSensor As String) As SENSOR_ID