Verwijzingen > Naslaggegevens voor scriptstappen > Scriptstappen voor bestanden > Van gegevensbestand lezen
 

Van gegevensbestand lezen

Leest gegevens van een geopend gegevensbestand.

Zie ook 

Opties 

Bestands-ID is een numerieke uitdrukking die de bestands-ID van een geopend gegevensbestand aangeeft. Raadpleeg Gegevensbestand openen scriptstap.

Grootte geeft het aantal te lezen bytes aan als Lezen als UTF-8 of Bytes is. Bij UTF-16 is Grootte het aantal te lezen Unicode-code-eenheid. Als de Grootte niet is opgegeven (op niets ingesteld), wordt het hele bestand gelezen.

Doel is het veld of de variabele waarin de gegevens die van het bestand zijn gelezen, worden opgeslagen.

Lezen als geeft de tekencodering van het bestand aan.

UTF-16 is de standaard 16-bits Unicode-tekencodering (UTF-16 little endian) van FileMaker.

UTF-8 is 8-bits Unicode-tekencodering.

Bytes heeft geen specifieke tekencodering, maar leest in plaats daarvan één byte tegelijk. Als het doel een variabele of containerveld is, worden gegevens die van het bestand zijn gelezen, opgeslagen als containergegevens met dezelfde bestandsnaam als het opgegeven bestand.

Compatibiliteit 

 

Product 

Ondersteund 

FileMaker Pro Advanced 

Ja 

FileMaker Go 

Ja 

FileMaker WebDirect 

Nee 

FileMaker Server 

Ja 

FileMaker Cloud-product 

Ja 

FileMaker Data API 

Nee 

Custom Web Publishing 

Ja 

Runtime-oplossing 

Nee 

Afkomstig van 

FileMaker Pro 18.0 Advanced

Beschrijving 

Deze scriptstap leest gegevens die worden gespecificeerd door Grootte, vanaf de huidige positie voor lezen/schrijven, of leest het gehele bestand als Grootte niet is gespecificeerd. Raadpleeg Positie gegevensbestand instellen.

De maximale hoeveelheid gegevens die deze scriptstap tegelijk kan lezen, is 64 MB. Als een bestand groter is dan 64 MB, kunt u deze scriptstap meerdere keren uitvoeren. Dan wordt er per keer een hoeveelheid van niet meer dan 64 MB gelezen.

Opmerkingen 

De prestaties zijn het beste wanneer er niet meer dan 64 KB moet worden gelezen.

Bij het lezen van Unicode-tekst van een gedeelte van een bestand, kan er slechts een deel van een teken worden gelezen als het teken bestaat uit meerdere code-eenheden. Als u verwacht tekst te lezen van een UTF-8- of UTF-16-bestand, is het mogelijk veiliger om het hele bestand in één keer te lezen, tenzij u zeker bent van het aantal code-points per teken.

Voorbeeld 1 

Leest de inhoud van een geopend bestand met een bestands-ID van 2 en slaat de gegevens op in een variabele.

Van gegevensbestand lezen [ Bestands-ID: 2 ; Grootte (bytes): ; Doel: $variabele ; Lezen als: Bytes ]

Voorbeeld 2 

Controleert of er een bestand met de naam wijziging.log voorkomt in de map Documenten. Als dit het geval is, leest het voorbeeld de eerste 100 UTF8-code-eenheden in het tekstveld Hulpprogramma's::Log-invoer

Variabele instellen [ $bestand ; Waarde: Get (DocumentPad) & "wijziging.log" ]
Informatie over bestaan van bestand ophalen [ "$bestand" ; Doel: $bestaanBestand ]
If [ niet $bestaanBestand ]
Script afsluiten [ Tekstresultaat: ]
End If
Gegevensbestand openen [ "$bestand" ; Doel: $bestandsID ]
Van gegevensbestand lezen [ Bestands-ID: $bestandsID ; Grootte (bytes): 100 ; Doel: Hulpprogramma's::Log-invoer ; Lezen als: UTF-8 ]
Gegevensbestand sluiten [ Bestands-ID: $bestandsID ]

Voorbeeld 3 

Als het bestand groot.log bestaat en groot is, leest het bestand 64 MB tegelijk in een variabele. Dit gaat door totdat het gehele bestand is gelezen. Als het bestand kleiner is, wordt het hele bestand in één leesbewerking gelezen. De gegevens worden in een variabele gelezen voor betere prestaties. Vervolgens worden de gegevens opgeslagen in een veld.

Foutafvanging instellen [ Aan ]
Variabele instellen [ $k_BestandOntbreektFout ; Waarde: 100 ]
Variabele instellen [ $k_EindVanBestandFout ; Waarde: 10 ]
Variabele instellen [ $k_64KB ; Waarde: 64 * 1024 ]
Variabele instellen [ $k_64MB ; Waarde: 64 * 1024 * 1024 ]
Variabele instellen [ $bestand ; Waarde: "groot.log" ]
Informatie over bestaan van bestand ophalen [ "$bestand" ; Doel : $bestaanBestand ]
If [ $bestaanBestand = 0 ]
Script afsluiten [ Resultaat: $k_BestandOntbreektFout ]
End If

Gegevensbestand openen [ "$bestand" ; Doel: $bestandsID ]

#Als het is gelukt om het bestand te openen, leest u de inhoud.
If [ Get (LaatsteFout) = 0 ]
Bestandsgrootte ophalen [ "$bestand" ; Doel: $bestandsGrootte ]

#Als het bestand groter is dan 64 KB, moet er per keer een hoeveelheid van 64 MB worden gelezen.
If [ $bestandsGrootte > $k_64KB ]

Loop
#Lees tot 64 MB en sla dit op in een variabele.
Van gegevensbestand lezen [ Bestands-ID: $bestandsID ; Grootte (bytes): $k_64MB ; Doel: $gegevensBlok ; Lezen als: UTF-8 ]
Variabele instellen [ $leesFout; Waarde:Get (LaatsteFout) ]

#Als de leesbewerking is geslaagd of als het einde van het bestand is bereikt, voegt u de gegevens die in deze herhaling zijn gelezen ($gegevensBlok) samen bet de gegevens die eerder zijn gelezen ($bestandsInhoud).
If [ ( $leesFout = 0 ) of ( $leesFout = $k_EindVanBestandFout ) ]
Variabele instellen [ $bestandsInhoud ; Waarde: $bestandsInhoud & $gegevensBlok ]
End If

#Sluit de lus af als de leesbewerking is mislukt of als het einde van het bestand is bereikt.
Exit Loop If [ $leesFout ]
End Loop

Else
#Als het bestand niet groter is dan 64 KB, moet het in één keer worden gelezen.
Van gegevensbestand lezen [ Bestands-ID: $bestandsID ; Doel: $bestandsInhoud ; Lezen als: UTF-8 ]
End If

#Sluit het gegevensbestand en sla de inhoud op in een veld.
Gegevensbestand sluiten [ Bestands-ID: $bestandsID ]
Veld instellen [ Tabel::Gegevens ; $bestandsInhoud ]

End If

Verwante onderwerpen 

Gegevensbestand openen scriptstap

Informatie over bestaan van bestand ophalen scriptstap

Bestandsgrootte ophalen scriptstap

Naslaggegevens voor scriptstappen (alfabetisch overzicht)

Naslaggegevens voor scriptstappen (lijst met categorieën)