Curso de Basic
Operações em String
Você está em: MarMSX >> Cursos >> BASIC
As seguintes funções realizam operações em string:
ASC(string)
Fornece o código ASCII do primeiro caractere de um string.
Exemplo:
PRINT ASC("A") ↵
65
Ok
CHR$(código ascii)
Retorna o caractere correspondente ao código ASCII fornecido.
Exemplo:
PRINT CHR$(65) ↵
A
Ok
INSTR([n,] string, string_a_buscar)
Localiza um string dentro de outra string. Quando n é fornecido, avança n caracteres na string.
O valor retornado é a posição dentro da string.
Exemplo: procurar a string "de" dentro de "Rio de Janeiro".
P=INSTR("Rio de Janeiro","de") ↵
PRINT"Posição encontrada:";P ↵
Posição encontrada: 5
Ok
LEFT$(string, n)
Retorna n caracteres de uma string, começando pela esquerda.
Exemplo:
PRINT LEFT$("MarMSX", 3) ↵
Mar
Ok
LEN(string)
Retorna o comprimento de uma string.
Exemplo:
PRINT LEN("MarMSX") ↵
6
Ok
MID$(string, m[, n])
Retorna uma parte da string. O valor m indica a posição de inicio, enquanto que n indica o comprimento. Se n for omitido, retorna de m até o final.
Exemplo:
PRINT MID$("MarMSX", 4, 2) ↵
MS
Ok
MID$(string, m[, n]) = string_nova
Substitui uma parte da string pela string_nova.
Exemplo:
A$="MarMSX" ↵
MID$(A$, 4, 2)="AA" ↵
PRINT A$ ↵
MarAAX
Ok
RIGHT$(string, n)
Retorna n caracteres de uma string, começando pela direita.
Exemplo:
PRINT RIGHT$("MarMSX", 3) ↵
MSX
Ok
SPACE$(n)
Obtém uma string com o número de espaços em branco definido por n.
Exemplo:
A$ = SPACE$(10) ↵
Ok
SPC(n) e TAB(n)
Preenchem espaços em branco no texto. Entretanto, há uma diferença entre eles:
O SPC preenche n espaços em branco à frente da posição atual. Exemplo:
PRINT "Mar";SPC(5);"MSX" ↵
Mar MSX
Ok
O TAB se baseia no conceito de tabulação de texto. A partir da coluna 0, o espaço de texto é dividido em tabulações de tamanho igual a n.
Normalmente, a tabulação no MSX e no PC divide o texto em colunas de 8 caracteres. Veja a ilustração a seguir.
ABCDEFGH01234567
↑ Tab1 ↑ Tab2 ↑ ...
Para entender melhor esse conceito, façamos o seguinte teste: imprima o texto "ABCDEFGH01234567" na tela, a partir da coluna 0 de qualquer linha. Posicione o cursor abaixo dessa linha em qualquer coluna dentro da tabulação 1 (A-H). Pressione a tecla TAB. O cursor sempre vai para o inicio da tabulação 2, exatamente embaixo do caractere "0".
Entretanto, a função TAB(n) do MSX avança o texto n caracteres, sempre a partir da primeira coluna de texto. Veja os exemplos a seguir.
PRINT "Mar";TAB(5);"MSX" ↵
Mar MSX
Ok
LOCATE 2,10:PRINT "Mar";TAB(5);"MSX" ↵
MarMSX
Ok
PRINT "Mar";TAB(5);"MSX";TAB(5);"Basic" ↵
Mar MSXBasic
Ok
Há uma maneira de realizar o TAB no MSX igual fazemos na linguagem C com o uso do "\t". Utilizamos o caractere com código ASCII igual a 9, que corresponde à tecla TAB. Veja o exemplo a seguir.
PRINT "Mar";CHR$(9);"MSX";CHR$(9);"Basic" ↵
Mar MSX Basic
Ok
STR$(n)
Converte um número em string.
Exemplo:
PRINT STR$(25) ↵
25
Ok
STRING$(n, caractere)
Repete o caractere n vezes. O caractere pode ser no formato string ou o código ASCII do caractere.
Exemplo:
PRINT STRING$(5,"F") ↵
FFFFF
Ok
PRINT STRING$(5,65) ↵
AAAAA
Ok
VAL(string)
Converte uma string em número.
Exemplo:
PRINT VAL("25") ↵
25
Ok
VARPTR(variável)
Obtém o endereço de memória que está localizado o dado de uma variável.
Exemplo:
10 DEFINT A
20 A=5
30 E=VARPTR(A)
40 PRINT "Valor da variável:";A
50 PRINT "Endereço do dado: &H";HEX$(E)
60 PRINT "Valor contido na memória:";PEEK(E)
70 POKE E,15
80 PRINT "Novo valor da variável A, após modificar memória:";A
run ↵
Valor da variável: 5
Endereço do dado: &H80D7
Valor contido na memória: 5
Novo valor da variável A, após modificar memória: 15
Ok
Um exemplo de letreiro corrido
o exemplo a seguir, simula no MSX aqueles letreiros eletrônicos utilizados em propaganda, onde a mensagem é passada da direita para a esquerda.
10 SCREEN 0:WIDTH 40:COLOR 15,1,1:KEY OFF
20 A$=SPACE$(20)+"O MSX possui 16 cores simultâneas "
30 FOR F=1 TO LEN(A$)
40 LOCATE 10,10
50 PRINT MID$(A$,1,20)
60 A$ = MID$(A$,2) + LEFT$(A$,1)
70 FOR T=1 TO 50 : NEXT T
80 NEXT F