Lê dados de um arquivo de dados aberto.
Importação de dados no FileMaker Pro Advanced
Automatização de tarefas com scripts
•ID do arquivo é uma expressão numérica que especifica o ID do arquivo de um arquivo de dados aberto. Consulte Etapa de script Abrir arquivo de dados.
•Valor especifica o número de bytes a ser lido caso Ler como seja UTF-8 ou Bytes. Para UTF-16, Valor é o número de unidades do código Unicode a ser lido. Se Valor não for especificado (definido como nada), o arquivo todo será lido.
•Destino é o campo ou a variável para armazenar a leitura de dados do arquivo.
•Ler como especifica a codificação de caracteres do arquivo.
•UTF-16 é uma codificação de caracteres Unicode (UTF-16 little endian) de 16 bits padrão do FileMaker.
•UTF-8 é uma codificação de caracteres Unicode de 8 bits.
•Bytes não presume qualquer codificação de caracteres específica, mas lê um byte por vez. Se o destino for uma variável ou um campo de container, a leitura de dados de um arquivo será armazenada como dados de container com o mesmo nome de arquivo que o arquivo especificado.
Produto | Suportado |
FileMaker Pro Advanced | Sim |
FileMaker Go | Sim |
FileMaker WebDirect | Não |
FileMaker Server | Sim |
Produto FileMaker Cloud | Sim |
FileMaker Data API | Não |
Publicação na Web personalizada | Sim |
Solução runtime | Não |
FileMaker Pro 18.0 Advanced
A etapa de script lê dados especificados por Valor, começando na posição atual de leitura-gravação, ou lê o arquivo inteiro caso Valor não seja especificado. Consulte Definir posição do arquivo de dados.
O valor máximo de dados que esta etapa de script pode ler no momento é 64 MB. Se o arquivo for maior que 64 MB, você poderá realizar esta etapa de script muitas vezes, lendo um valor que não seja maior que 64 MB por vez.
•O desempenho é melhor ao ler não mais que 64 KB.
•Ao ler o texto Unicode de uma porção de um arquivo, somente uma parte de um caractere poderá ser lida caso o caractere consista em várias unidades de código. Se você quiser ler o texto de um arquivo UTF-8 ou UTF-16, pode ser mais seguro ler o arquivo todo de uma vez, a não ser que você tenha certeza do número de pontos de código por caractere.
Lê o conteúdo de um arquivo aberto com um ID de arquivo de 2 e armazena os dados em uma variável.
Ler a partir do arquivo de dados [ ID do arquivo: 2 ; Valor (bytes): ; Destino: $variable ; Ler como: Bytes ]
Verifica se um arquivo chamado change.log existe na pasta Documentos. Se existir, lê as primeiras 100 unidades de código UTF-8 no campo de texto Utilitários::Entrada de log.
Definir variável [ $file ; Valor: Get ( DocumentsPath ) & "change.log" ]
Obter arquivo existente [ "$file" ; Destino: $fileExists ]
If [ not $fileExists ]
Sair do script [Resultado do texto: ]
End If
Abrir arquivo de dados [ "$file" ; Destino: $fileID ]
Ler a partir do arquivo de dados [ ID do arquivo: $fileID ; Quantidade (bytes): 100 ; Destino: Utilitários::Entrada de log ; Ler como: UTF-8 ]
Fechar Arquivo de Dados [ ID do arquivo: $fileID ]
Se o arquivo large.log existir e for grande, lê o arquivo 64 MB por vez em uma variável até que todo o arquivo seja lido. Se o arquivo for menor, lê todo o arquivo em uma operação de leitura. Os dados são lidos em uma variável para melhorar o desempenho e depois armazenados em um campo.
Definir captura de erro [ Ativado ]
Definir variável [ $k_FileMissingError ; Valor: 100 ]
Definir variável [ $k_EndOfFileError ; Valor: 10 ]
Definir variável [ $k_64KB ; Valor: 64 * 1024 ]
Definir variável [ $k_64MB ; Valor: 64 * 1024 * 1024 ]
Definir variável [ $file ; Valor: "large.log" ]
Obter arquivo existente [ "$file" ; Destino : $fileExists ]
If [ $fileExists = 0 ]
Sair do script [ Resultado do texto: $k_FileMissingError ]
End If
Abrir arquivo de dados [ "$file" ; Destino: $fileID ]
#Se o arquivo tiver sido aberto corretamente, lê o conteúdo.
If [ Get ( LastError ) = 0 ]
Obter tamanho de arquivo [ "$file" ; Destino: $fileSize ]
#Se o tamanho do arquivo for maior que 64 KB, lê 64 MB por vez.
If [ $fileSize > $k_64KB ]
Loop
#Lê até 64 MB e armazena-os em uma variável.
Ler a partir do arquivo de dados [ ID do arquivo: $fileID ; Quantidade (bytes): $k_64MB ; Destino: $dataChunk ; Ler como: UTF-8 ]
Definir variável [ $readError; Valor:Get ( LastError ) ]
#Se a operação de leitura tiver sido bem-sucedida ou se o final do arquivo tiver sido atingido, concatene a leitura de dados nessa passagem ($dataChunk) com a leitura de dados anterior ($fileContents).
If [ ( $readError = 0 ) or ( $readError = $k_EndOfFileError ) ]
Definir variável [ $fileContents ; Valor: $fileContents & $dataChunk ]
End If
#Sai do loop se a operação de leitura falhar ou se o final do arquivo tiver sido atingido.
Exit Loop If [ $readError ]
End Loop
Else
#Se o arquivo não for maior que 64 KB, lê todo ele de uma vez.
Ler a partir do arquivo de dados [ ID do arquivo: $fileID ; Destino: $fileContents ; Ler como: UTF-8 ]
End If
#Fecha o arquivo de dados e armazena o conteúdo em um campo.
Fechar Arquivo de Dados [ ID do arquivo: $fileID ]
Definir campo [ Tabela::Dados ; $fileContents ]
End If