Modul
Obsah
Index 🔎︎

# Příkaz Input#

Načte data z otevřeného sekvenčního souboru.

## Syntaxe:

Input #FileNumber As Integer; var1[, var2[, var3[,...]]]

## Parametry:

FileNumber: Číslo souboru, který obsahuje data, jež chcete načíst. Před použitím INPUT musí být soubor otevřen příkazem Open.

var: Číselná nebo řetězcová proměnná, které přiřadíte hodnoty načtené z otevřeného souboru.

Příkaz Input# přečte z otevřeného souboru číselné nebo řetězcové hodnoty a přiřadí data jedné či více proměnným. Číselné proměnné se načítají až do prvního znaku návrat vozíku (Asc=13), nový řádek (Asc=10), mezery nebo čárky. Řetězcové proměnné se načítají až do prvního znaku návrat vozíku (Asc=13), nový řádek (Asc=10) nebo čárky.

Data a datové typy v otevřeném souboru se musí objevit ve stejném pořadí jako proměnné, které jsou předány parametrem "var". Pokud přiřadíte nečíselnou hodnotu číselné proměnné, "var" se přiřadí hodnota "0".

U záznamů, které jsou odděleny čárkami, nelze čárku přiřadit k řetězcové proměnné. Uvozovky (") v souboru jsou také zahozeny. Pokud chcete ze souboru načíst tyto znaky, použijte příkaz Line Input# k načtení čistě textových souborů (souborů obsahujících jen tisknutelné znaky) řádek po řádku.

Pokud je při čtení datového prvku dosažen konec souboru, dojde k chybě a proces bude ukončen.

## Příklad:

    Sub ExampleWorkWithAFile

    Dim iCount As Integer

    Dim sName As String

    Dim sValue As Integer

    Dim sFileName As String

    sFileName = "c:\data.txt"

    iCount = Freefile

    ' Zapíše data (která později přečteme pomocí Input) do souboru

    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

    iCount = Freefile

    ' Přečte soubor s daty pomocí Input

    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