Riferimento > Istruzioni di script > Istruzioni di script File > Leggi da file dati
 

Leggi da file dati

Legge i dati da un file dati aperto.

Vedere anche 

Opzioni 

ID file è un'espressione numerica che specifica l'ID file di un file dati aperto. Vedere istruzione di script Apri file dati.

Quantità specifica il numero di byte da leggere se Leggi come è UTF-8 o Byte. Per UTF-16, Quantità è il numero di unità di codice Unicode da leggere. Se Quantità non è specificato (nessun valore impostato), viene letto l'intero file.

Destinazione è il campo o la variabile in cui memorizzare i dati letti dal file.

Leggi come specifica la codifica caratteri del file.

UTF-16 è la codifica caratteri Unicode a 16 bit (UTF-16 little endian) predefinita di FileMaker.

UTF-8 è la codifica caratteri Unicode a 8 bit.

Byte non presuppone nessuna codifica caratteri specifica, ma legge un byte per volta. Se la destinazione è una variabile o un campo Contenitore, i dati letti dal file vengono memorizzati come dati Contenitore con lo stesso nome del file specificato.

Compatibilità 

 

Prodotto 

Supportata 

FileMaker Pro Advanced 

 

FileMaker Go 

 

FileMaker WebDirect 

No 

FileMaker Server 

 

Prodotto FileMaker Cloud 

 

FileMaker Data API 

No 

Pubblicazione Web personalizzata 

 

Soluzione runtime 

No 

Creata in 

FileMaker Pro 18.0 Advanced

Descrizione 

Questa istruzione di script legge i dati specificati da Quantità partendo dalla posizione di lettura-scrittura corrente o, se Quantità non è specificato, legge l'intero file. Vedere Imposta posizione file dati.

La quantità massima di dati che questa istruzione di script può leggere per volta è 64 MB. Se un file supera i 64 MB, è possibile eseguire questa istruzione di script più volte, leggendo ogni volta una quantità non superiore a 64 MB.

Note 

La lettura di una quantità non superiore ai 64 KB garantisce prestazioni ottimali.

Durante la lettura di un testo Unicode da una porzione di un file, è possibile venga letta solo parte di un carattere se questo è composto da più unità di codice. Se si prevede di leggere il testo da un file UTF-8 o UTF-16, potrebbe essere più sicuro leggere l'intero file in una volta sola, a meno che non si sia certi del numero di punti di codice per carattere.

Esempio 1 

Legge i contenuti di un file aperto con ID 2 e memorizza i dati in una variabile.

Leggi da file dati [ID file: 2 ; Quantità (byte): ; Destinazione: $variabile; Leggi come: Byte]

Esempio 2 

Controlla se esiste un file modifica.log nella cartella Documenti. Se esiste, legge le prime 100 unità di codice UTF-8 nel campo Testo Utilità::Voce di registro.

Imposta variabile [$file; Valore: Get ( PercorsoDocumenti ) & "modifica.log"]
Ottieni esistenza file ["$file"; Destinazione: $fileEsiste]
If [not $fileEsiste]
Esci dallo script [Risultato testo: ]
End If
Apri file dati ["$file"; Destinazione: $IDfile]
Leggi da file dati [ID file: $IDfile; Quantità (byte): 100 ; Destinazione: Utilità::Voce di registro; Leggi come: UTF-8 ]
Chiudi file dati [ID file: $IDfile]

Esempio 3 

Se il file grande.log esiste ed è grande, ne legge 64 MB per volta in una variabile finché non viene letto l'intero file. Se il file è più piccolo, legge l'intero file in un'operazione di lettura. I dati vengono letti in una variabile per prestazioni migliori, quindi memorizzati in un campo.

Imposta cattura errori [Attivata]
Imposta variabile [$k_ErroreFileMancante; Valore: 100]
Imposta variabile [$k_ErroreFineFile; Valore: 10]
Imposta variabile [$k_64KB; Valore: 64 * 1024 ]
Imposta variabile [$k_64MB; Valore: 64 * 1024 * 1024 ]
Imposta variabile [$file; Valore: "grande.log"]
Ottieni esistenza file ["$file"; Destinazione: $fileEsiste]
If [$fileEsiste = 0]
Esci dallo script [Risultato testo: $k_ErroreFileMancante]
End If

Apri file dati ["$file"; Destinazione: $IDfile]

#Se il file si è aperto correttamente, leggere i contenuti.
If [Get ( UltimoErrore ) = 0]
Ottieni dimensioni file ["$file"; Destinazione: $dimensioniFile]

#Se le dimensioni del file superano i 64 KB, leggere 64 MB per volta.
If [$dimensioniFile > $k_64KB]

Loop
#Leggere fino a 64 MB e memorizzarli in una variabile.
Leggi da file dati [ID file: $IDfile; Quantità (byte): $k_64MB; Destinazione: $bloccoDati; Leggi come: UTF-8 ]
Imposta variabile [$erroreLettura; Valore: Get ( UltimoErrore )]

#Se l'operazione di lettura è stata eseguita correttamente o se è stata raggiunta la fine del file, concatenare i dati letti in questo passaggio ($bloccoDati) con i dati letti in precedenza ($contenutiFile).
If [( $erroreLettura = 0 ) or ( $erroreLettura = $k_ErroreFineFile )]
Imposta variabile [$contenutiFile; Valore: $contenutiFile & $bloccoDati]
End If

#Se l'operazione di lettura non è riuscita o se è stata raggiunta la fine del file, uscire dal loop.
Exit Loop If [$erroreLettura]
End Loop

Else
#Se il file non supera i 64 KB, leggerlo tutto in una volta.
Leggi da file dati [ID file: $IDfile; Destinazione: $contenutiFile; Leggi come: UTF-8 ]
End If

#Chiudere il file dati e memorizzare i contenuti in un campo.
Chiudi file dati [ID file: $IDfile]
Imposta campo [Tabella::Dati; $contenutiFile]

End If

Argomenti correlati 

Istruzione di script Apri file dati

Istruzione di script Ottieni esistenza file

Istruzione di script Ottieni dimensioni file

Istruzioni di script (in ordine alfabetico)

Istruzioni di script (per categoria)