Instruction Input#

Lit les données d'un fichier séquentiel ouvert.

Syntaxe :

Diagramme de l'instruction Input


Input #fileNum {,|;} var1 [, var2 [, ...]]

Paramètres :

fileNum : numéro du fichier contenant les données à lire. Le fichier doit être ouvert avec l'instruction Open à l'aide du mot-clé INPUT.

var : variable de nombre ou de chaîne à laquelle sont assignées les valeurs lues dans le fichier ouvert.

L'instruction Input# lit des valeurs numériques ou des chaînes de caractères dans un fichier ouvert et assigne les données à une ou plusieurs variables. Une variable numérique est lue jusqu'à la première occurrence d'un retour chariot (Asc=13), d'un retour à la ligne (Asc=10), d'un espace ou d'une virgule. Une variable de chaîne de caractères est lue jusqu'à la première occurrence d'un retour chariot (Asc=13), d'un retour à la ligne (Asc=10) ou d'une virgule.

Les données et les types de données du fichier ouvert doivent être dans le même ordre que les variables transmises dans le paramètre "var". Si vous assignez des valeurs non numériques à une variable numérique, le paramètre "var" prend la valeur "0".

Lles enregistrements séparés par des virgules ne peuvent pas être assignées à une variable de chaîne de caractères. Les guillemets (") présents dans le fichier ne sont pas non plus pris en compte. Pour lire ces caractères dans le fichier, utilisez l'instruction Line Input# permettant de lire ligne par ligne un fichier texte pur (contenant uniquement des caractères imprimables).

Si la fin du fichier est atteinte lors de la lecture d'un élément de données, une erreur se produit et le processus est abandonné.

Exemple :


Sub ExampleWorkWithAFile
    Dim iCount As Integer, sFileName As String
    Dim sName As String, sValue As Integer
    sFileName = "C:\Users\ThisUser\data.txt"
    iCount = Freefile
    ' Écrire les données (que nous lirons plus tard avec Input) dans un fichier
    Open sFileName For Output As iCount
    sName = "Hamburg" : sValue = 200
    Write #iCount, sName, sValue
    sName = "New York" : sValue = 300
    Write #iCount; sName, sValue
    sName = "Miami" : sValue = 459
    Write #iCount, sName, sValue
    Close #iCount
    ' Lire le fichier de données en utilisant Input
    iCount = Freefile
    Open sFileName For Input As iCount
    Input #iCount, sName, sValue
    MsgBox sName & " " & sValue
    Input #iCount; sName, sValue
    MsgBox sName & " " & sValue
    Input #iCount, sName, sValue
    MsgBox sName & " " & sValue
    Close #iCount
End Sub

Aidez-nous !