WRITE
WRITE [ # Stream , ] Expression AS Datatype
WRITE [ # Stream , ] String [ , Length ]
WRITE [ # Stream , ] Pointer , Length
Escrevendo um tipo de dados específico
A primeira sintaxe escreve uma expressão para o fluxo
Stream usando sua representação binária.
Se o stream não for especificado, a saída padrão é usada.
O tipo de dados de
Expression pode ser um dos seguintes :
NULL,
Boolean,
Byte,
Short,
Integer,
Long,
Pointer,
Single,
Float,
Date,
String,
Variant, uma
Array ou
Collection, um estrutura.
Se
Expression é um collection, um array, ou uma estrutura, então o seu conteúdo é escrito de forma recursiva.
Ao escrever uma estrutura, o tipo de estrutura deve especificar o
Datatype.
Se um tipo de dados não suportado é escrito, ou é detectado uma referência circular, será gerado um erro.
Esta instrução usa a ordem de bytes do stream para gravar os dados.
Escrevendo o conteúdo de uma string
A segunda sintaxe escreve
Length em bytes a partir da
String para o stream especificado.
Se o stream não for especificado, a saída padrão é usada.
Se
Length não for especificado, o comprimento da
String é usado.
Escrevendo o conteúdo da memória
O terceiro sintaxe escreve
Length em bytes a partir do endereço de memória
Pointer para o stream especificado.
Se o stream não for especificado, a saída padrão é usada.
Length deve ser especificado, do contrário, nada é feito.
Compatibilidade com Gambas 2
CUIDADO!
WRITE #Stream, Expression
escreve a forma binária de
Expression em Gambas 2.0.
Em 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 Gambas de 2,0 para 3,0, e
especificar
AS Datatype
quando necessário.
Por padrão, o compilador suporta a sintaxe antiga
READ, e a velha syntax WRITE pois é compatível.
Se você deseja detectar onde você deve reescrever a sua syntax
READ / WRITE , você pode
compilar seu projeto à mão com o flag "--no-old-read-write-sintaxe". em seguida
o argumento
Length para WRITE torna-se obrigatório se a segunda sintaxe é usada.
Usar um
Pointer como um stream não é mais possível. Crie um stream de memória com a instrução
MEMORY no lugar.
Veja também