Optioneel. Variant (Long). Het recordnummer (bestanden in de modus Random) of bytenummer (bestanden in de modus Binary) waar het lezen wordt gestart.
Varnaam
Vereist. Een geldige variabelennaam waaraan de gegevens worden doorgegeven.
Notities
Gegevens die worden gelezen met Get worden meestal met Put weggeschreven naar een bestand.
De eerste record of byte in een bestand bevindt zich op positie 1, de tweede record of byte op positie 2, enzovoort. Als u geen recnummer opgeeft, wordt de volgende record of byte gelezen na de laatste instructieGet of Put (of aangewezen na de laatste functie Seek). Gebruik komma's als scheidingsteken, bijvoorbeeld:
Get #4,,BestandsBuffer
Voor bestanden die zijn geopend in de modus Random, gelden de volgende regels:
Als de lengte van de gegevens die u wilt lezen kleiner is dan de lengte die is opgegeven in de component Len van de instructie Open, worden met Get ook de records na de opgegeven grens gelezen. De ruimte tussen het einde van de ene record en het begin van de volgende record wordt opgevuld met de inhoud van de bestandsbuffer. Aangezien het moeilijk is om exact te bepalen hoeveel opvulgegevens aanwezig zijn, is het verstandig om een record dezelfde lengte te geven als de gegevens die worden gelezen.
Als de variabele waarnaar wordt gelezen een tekenreeks met variabele lengte is, wordt met Get een beschrijving van 2 bytes gelezen die de lengte van de tekenreeks bevat. Daarna worden de gegevens gelezen die worden opgenomen in de variabele. Daarom moet de recordlengte zoals aangegeven in de component Len van de instructie Open ten minste 2 bytes groter zijn dan de echte lengte van de tekenreeks.
Als de variabele waarnaar wordt gelezen een Variant is van een numeriek type, heeft Get 2 bytes nodig om het VarType van de Variant te lezen. Vervolgens worden de gegevens gelezen die in de variabele worden opgenomen. Bij een Variant van VarType 3, leest Get bijvoorbeeld 6 bytes: 2 bytes om de Variant te herkennen als VarType 3 (Long) en 4 bytes die de Long-gegevens bevatten. De recordlengte zoals aangegeven in de component Len van de instructie Open, moet ten minste 2 bytes groter zijn dan het feitelijke aantal bytes dat nodig is om de variabele op te slaan.
Opmerking Met de instructie Get kunt u wel een Variant-matrix vanaf schijf inlezen, maar geen scalaire Variant met een matrix. U kunt Get evenmin gebruiken om objecten vanaf schijf in te lezen.
Als de variabele waarnaar wordt gelezen een Variant van het type VarType 8 (String) is, heeft Get 2 bytes nodig om het VarType te lezen en 2 bytes om de lengte van de tekenreeks aan te geven. Vervolgens worden de gegevens van de tekenreeks gelezen. Vervolgens worden de gegevens van de tekenreeks geschreven. De recordlengte zoals aangegeven in de component Len van de instructie Open dient ten minste 4 bytes groter te zijn dan de feitelijke lengte van de tekenreeks.
Als de variabele waarnaar wordt gelezen een dynamische matrix is, leest Get een descriptor waarvan de lengte gelijk is aan 2 plus 8 maal het aantal dimensies, dat wil zeggen, 2 + 8 * AantalDimensies. De recordlengte zoals is aangegeven in de component Len van de instructie Open moet groter zijn dan of gelijk zijn aan de som van alle bytes die nodig zijn om de gegevens uit de matrix en de matrixdescriptor in te lezen. De volgende matrixdeclaratie neemt bijvoorbeeld 118 bytes aan schijfruimte in beslag.
Dim MijnMatrix(1 To 5,1 To 10) As Integer
De 118 bytes kunnen als volgt worden herleid: 18 bytes voor de descriptor (2 + 8 * 2) en 100 bytes voor de gegevens (5 * 10 * 2).
Als de variabele waarnaar wordt gelezen een matrix is met vaste grootte, leest Get alleen de gegevens. In dat geval wordt geen descriptor gelezen.
Als de variabele waarnaar wordt gelezen een ander type variabele is (geen tekenreeks met variabele lengte of een Variant), leest Get alleen de variabele gegevens. De recordlengte zoals aangegeven in de component Len van de instructie Open dient groter of gelijk te zijn aan de lengte van de gegevens die worden gelezen.
Get leest de onderdelen van door de gebruiker gedefinieerde typen als afzonderlijke delen. Nu zijn echter geen opvulgegevens tussen de onderdelen opgenomen. Een dynamische matrix van een door de gebruiker gedefinieerd gegevenstype (geschreven met Put) wordt voorafgegaan door een descriptor waarvan de lengte gelijk is aan 2 plus 8 maal het aantal dimensies, dat wil zeggen, 2 + 8 * AantalDimensies. De recordlengte zoals aangegeven in de component Len van de instructie Open dient groter of gelijk te zijn aan de som van alle bytes die nodig zijn om de afzonderlijke onderdelen, inclusief matrices en bijbehorende descriptors, te lezen.
Voor bestanden die zijn geopend in de modus Binary, gelden alle regels voor Random, met de volgende uitzonderingen:
De component Len van de instructie Open heeft geen enkele invloed. Get leest alle variabelen aaneengesloten van de schijf, dat wil zeggen zonder opvulgegevens tussen de records.
Als de matrix niet van een door de gebruiker gedefinieerd gegevenstype is, leest Get alleen de gegevens. In dat geval wordt geen descriptor gelezen.
Get leest tekenreeksen met variabele lengte die geen onderdeel zijn van door de gebruiker gedefinieerde typen, zonder de descriptor van 2 bytes. Het aantal bytes dat wordt gelezen is gelijk aan het aantal tekens dat al in de tekenreeks aanwezig is. Uit de volgende instructies kunt u bijvoorbeeld opmaken dat er 10 bytes worden gelezen van bestandsnummer 1: