lang • write

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.

Ao escrever um texto, o comprimento da string é enviado antes do conteúdo da string.

Veja Representação de Dados Binários para mais informações.

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