lang • read

READ

Variable = READ [ # Stream ] AS Datatype Variable = READ [ # Stream , ] Length

Ler de um tipo de dados específico

A primeira sintaxe lê o fluxo Stream como dados binários cujo tipo é especificado pelo argumento Datatype.A representação binária é o utilizada pela instrução WRITE.

Se o stream não for especificado, a entrada padrão é usada.

O tipo de dados retornado pode ser um dos seguintes: NULL, Boolean, Byte, Short, Integer, Long, Pointer, Single, Float, Date, String, Variant, qualquer Array, Collection ou estrutura.

Ao ler uma string, o comprimento da string deve preceder o conteúdo da string nos dados do stream, conforme especificado no Representação de Dados Binários.

Se o conteúdo do stream não pode ser interpretado, um erro é gerado.

Esta instrução usa a ordem de bytes do stream para ler os dados.

Lendo o conteúdo de uma string

A segunda sintaxe lê a partir do fluxo Stream um número de bytes especificado pelo argumento Length, e retorna como uma string.

Se Length é negativo, então, o máximo de bytes (- Length) são lidos até o fim do stream.

Se o stream não for especificado, a entrada padrão é usada.

Compatibilidade com Gambas 2

WRITE #Stream, Expression escreve a forma binária de Expression in Gambas 2.0. In Gambas 3.0 ele escreve Expression como uma string.

Então você TEM que verificar todas as suas instruções WRITE ao converter um projeto do Gambas 2,0 para 3,0, e especificar AS Datatype quando necessário.

Por padrão, o compilador suporta a velha sintaxe READ, e WRITE antiga desde que seja compatível.

Se você deseja detectar onde você deve reescrever sua sintaxe READ / WRITE, você pode compilar seu projeto à mão com o flag "--no-old-read-write-syntax". Então o argumento Length de ESCRITA torna-se obrigatória se a segunda sintaxe é usada.

Não é mais possível usar um Pointer como um stream. Crie um stream de memória com a instrução MEMORY em vez disso.

Veja também