Input# Statement

LÀser data frÄn en öppen sekventiell fil.

Syntax:

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

Parametrar:

FileNumber: Numret pÄ den fil som innehÄller de data som du vill lÀsa. Filen mÄste öppnas med en Open-sats som anvÀnder nyckelordet INPUT.

var: En numerisk variabel eller strÀngvariabel som du tilldelar de vÀrden som avlÀses i den öppnade filen.

En Input#-sats lÀser numeriska vÀrden eller strÀngar frÄn en öppen fil och tilldelar data till en eller flera variabler. En numerisk variabel lÀses upp till den första vagnreturen (Asc=13), radmatningen (Asc=10), blanksteget eller kommatecknet. StrÀngvariabler lÀses upp till den första vagnreturen (Asc=13), radmatningen (Asc=10) eller kommatecknet.

Data och datatyper i den öppnade filen mÄste visas i samma ordning som de variabler som överförs i parametern "var". Om du tilldelar icke-numeriska vÀrden till en numerisk variabel, sÄ tilldelas "var" vÀrdet "0".

Poster som separeras med kommatecken (,) kan inte tilldelas en strÀngvariabel. Citationstecken (") i filen ignoreras ocksÄ. Om du vill lÀsa de hÀr tecknen frÄn filen kan du anvÀnda Line Input#-satsen för att lÀsa rena textfiler (filer som bara innehÄller utskrivbara tecken) rad för rad.

Om slutet av filen nÄs vid lÀsning av ett dataelement uppstÄr ett fel och processen avbryts.

Exempel:

Sub ExampleWorkWithAFile

Dim iCount As Integer

Dim sName As String

Dim sValue As Integer

Dim sFileName As String

 

sFileName = "c:\data.txt"

iCount = Freefile

 

' Skriv data till filen (som vi senare kommer att lÀsa in via Input)

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

' LÀs datafil med hjÀlp av 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