Legge i dati da un file dati aperto.
Importazione dei dati in FileMaker Pro Advanced
Automatizzazione delle attività con gli script
•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.
Prodotto | Supportata |
FileMaker Pro Advanced | Sì |
FileMaker Go | Sì |
FileMaker WebDirect | No |
FileMaker Server | Sì |
Prodotto FileMaker Cloud | Sì |
FileMaker Data API | No |
Pubblicazione Web personalizzata | Sì |
Soluzione runtime | No |
FileMaker Pro 18.0 Advanced
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.
•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.
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]
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]
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