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