Você usa a instrução DATA para incluir DADOS (informações,
valores de variáveis, números, etc.) em seu programa.
Quando precisamos trabalhar com poucas variaveis, é fácil,
nós podemos fazer um programa do tipo:
a = 3
b = 4
c$ = "Alo Mundo"
Mas vamos supor que nós precisamos trabalhar com muitas informações. Imagine que você tem uma array/matriz (veja tutorial sobre DIM) com os nomes dos seus vizinhos:
DIM nome$(1 TO 50)
Voce tem uma lista com os nomes de todos os vizinhos, basta entao informar isso ao programa. Você poderia fazer algo do tipo:
nome$(1) = "Maria"
nome$(2) = "Joao"
nome$(3) = "Joaquim"
.
.
.
Mas isso seria meio trabalhoso, e dá a impressão de que
você nao sabe programar direito.
Uma saída melhor é usando o DATA. Com ele, você
faz uma lista dos nomes dos vizinhos, e com 3 linhas de programação
você carrega tudo para as variáveis. Bem fácil.
A sintaxe do DATA (maneira de usar) seria algo do tipo:
DATA dado1,dado2,dado3,...
Ou seja, você coloca DATA e depois os dados, separados por vírgulas. Algo do tipo:
DATA "Maria","Joao","Joaquim"
Ou ainda:
DATA "Maria"
DATA "Joao"
DATA "Joaquim"
Legal, mas isso ainda não faz nada. Você vai precisar do
comando READ para ler isso e passar para as variaveis.
A sintaxe seria:
READ variavel-que-vai-receber-o-dado
Cada vez que você executa o READ, ele lê o próximo dado da lista.
Vamos para o primeiro exemplo:
READ x$ 'isso vai ler o primeiro dado e colocar
'na variavel x$. Nesse momento,
'x$ = "Primeiro"
PRINT x$ 'escreve
READ y$ 'isso vai ler o dado seguinte (2o)
e colocar
'na variavel y$. Nesse momento,
'y$ = "Segundo"
PRINT y$ 'escreve
READ z$ 'isso vai ler o dado seguinte (3o)
e colocar
'na variavel z$. Nesse momento,
'z$ = "Terceiro"
PRINT z$ 'escreve
DATA "Primeiro","Segundo","Terceiro"
Na verdade você pode também fazer o READ ler vários dados de uma só vez. Basta especificar várias variáveis. Sendo que ele vai ler um dado para cada variável. O nosso exemplo acima ficaria bem mais simples assim:
READ x$, y$, z$
PRINT x$
PRINT y$
PRINT z$
DATA "Primeiro","Segundo","Terceiro"
Eu falei que é possível carregar toda a lista de nomes de vizinhos com apenas 3 linhas de programação, certo? Abaixo vai um exemplo:
'So 6 dessa vez :-)
DIM nome$(1 TO 6)
'As 3 linhas vao agora:
FOR i = 1 TO 6
READ nome$(i)
NEXT i
DATA "Maria","Joao","Joaquim","Janete","Paulo","Ana"
É, nada que um bom FOR não resolva. Para finalizar, vamos ver o RESTORE. Lembre-se que o READ vai lendo os dados progressivamente. Mas pode acontecer de você já ter lido todos os dados e querer voltar para alguma parte da lista. RESTORE resolve o problema.
Usando o RESTORE sem parametro nenhum, a lista vai voltar para o início.
Mas você pode colocar um label (aqueles nomes que voce coloca e usa o GOTO para se deslocar) ou um número de linha entre as instruções DATA. Algo do tipo:
cidades:
DATA "Salvador","Belo Horizonte"
DATA "São Paulo","Curitiba"
estados:
DATA "Bahia","Minas Gerais"
DATA "São Paulo","Paraná"
E aí você pode usar o RESTORE para voltar para uma dessas partes. A sintaxe fica:
RESTORE label
(Lembrando, usando apenas RESTORE, sem o label, a leitura retorna para o começo da lista)
Exemplo:
READ $
RESTORE estados
READ estado$
cidades:
DATA "Salvador","Belo Horizonte"
DATA "São Paulo","Curitiba"
estados:
DATA "Bahia","Minas Gerais"
DATA "São Paulo","Paraná"