Πρόταση Input#

Διαβάζει τα δεδομένα από ένα ανοιγμένο διαδοχικό αρχείο.

Σύνταξη:

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

Παράμετροι:

FileNumber: Ο αριθμός του αρχείου από το οποίο θα αναγνωσθούν τα δεδομένα. Το αρχείο θα πρέπει να έχει ανοιχθεί πριν από την πρόταση Open με την λέξη-κλειδί INPUT.

var: Μια μεταβλητή στην οποία εκχωρούνται οι τιμές που διαβάζονται από το αρχείο. Οι αριθμητικές τιμές και οι τιμές συμβολοσειρών είναι έγκυρες.

Η δήλωση Input# χρησιμοποιείται για να διαβάσει αριθμητικές τιμές ή συμβολοσειρές από ένα ανοιγμένο αρχείο και να εκχωρήσει τα δεδομένα σε μία ή περισσότερες μεταβλητές. Μια αριθμητική μεταβλητή διαβάζεται μέχρι τον πρώτο χαρακτήρα επιστροφής (Asc=13), αλλαγή γραμμής (Asc=10), κενό διάστημα ή κόμμα. Οι μεταβλητές συμβολοσειρών διαβάζονται μέχρι τον πρώτο χαρακτήρα επιστροφής (Asc=13), αλλαγή γραμμής (Asc=10) ή κόμμα.

Τα δεδομένα και οι τύποι δεδομένων σε ένα αρχείο θα πρέπει να εμφανίζονται στην ίδια σειρά όπως και οι μεταβλητές που μεταβιβάζονται στην παράμετρο "var". Αν αναθέσετε μη αριθμητικές τιμές σε μια αριθμητική μεταβλητή, τότε στη μεταβλητή εκχωρείται μηδενική τιμή.

Οι εγγραφές στο αρχείο μπορούν να χωρίζονται με κόμμα, αυτός ο χαρακτήρας όμως δεν μπορεί να αναγνωσθεί σε μια μεταβλητή συμβολοσειράς. Επίσης αγνοούνται τα εισαγωγικά (") στο αρχείο. Αν θέλετε να διαβάζετε αυτούς τους χαρακτήρες από το αρχείο, χρησιμοποιήστε την πρόταση Line Input# για να διαβάζετε αμιγή αρχεία κειμένου (αρχεία που περιέχουν μόνο εκτυπώσιμους χαρακτήρες) γραμμή προς γραμμή.

Αν κατά την ανάγνωση ενός στοιχείου δεδομένων η διαδικασία φτάσει στο τέλος του αρχείου, τότε εμφανίζεται ένα μήνυμα σφάλματος και η διαδικασία ματαιώνεται.

Παράδειγμα:

Sub ExampleWorkWithAFile

Dim iCount As Integer

Dim sName As String

Dim sValue As Integer

Dim sFileName As String

 

sFileName = "c:\data.txt"

iCount = Freefile

 

' Εγγραφή δεδομένων (που θα διαβάσουμε αργότερα στην είσοδο) σε αρχείο

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

' Ανάγνωση αρχείου δεδομένων χρησιμοποιώντας είσοδο

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