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


<< Anterior Basic Próxima >>