Transforma string em caracter....

Delphi

22/05/2005

galera tenho o codigo abaixo onde quero transforma itens do
stringlist em caracter como faço... estou fazendo uma analisador léxico e sintático.

procedure TFrmCompilador.ToolButton2Click(Sender: TObject);
var
tam , // tamanho da string
i : integer;
msg : string;
caracter : char;
ch : array of char;
begin
// cria stringlist
//ch := TStringList.Create;
// retorna tamanho da string;
tam := length(RichEdit1.Text);
for i := 0 to tam - 1 do
begin

[b:18cf150c6a] o erro esta apartir dessa linha[/b:18cf150c6a]

// armazena caracter no vetor
ch[i]:= copy(pchar(RichEdit1.Text),i,1);
end;
{
for i := 0 to tam - 1 do
begin

end;
showMessage(pchar(msg));
ch.Free; // destroy stringlist
}
end;


Jonasaf

Jonasaf

Curtidas 0

Respostas

Jonasaf

Jonasaf

22/05/2005

galera tenho o codigo abaixo onde quero transforma itens do stringlist em caracter como faço... estou fazendo uma analisador léxico e sintático. procedure TFrmCompilador.ToolButton2Click(Sender: TObject); var tam , // tamanho da string i : integer; msg : string; caracter : char; ch : array of char; begin // cria stringlist //ch := TStringList.Create; // retorna tamanho da string; tam := length(RichEdit1.Text); for i := 0 to tam - 1 do begin [b:2f5e546173] o erro esta apartir dessa linha[/b:2f5e546173] // armazena caracter no vetor ch[i]:= copy(pchar(RichEdit1.Text),i,1); end; { for i := 0 to tam - 1 do begin end; showMessage(pchar(msg)); ch.Free; // destroy stringlist } end;


Pessoal estou fazendo um analisador léxico e sintático para faculdade.

Se alguem tiver um exemplo, por gentileza envie...


GOSTEI 0
Marcelo Saviski

Marcelo Saviski

22/05/2005

Strings já são um vetor de caracteres, vc nem precisaria do
[i:3535b191ad][color=green:3535b191ad]ch : array of char; [/color:3535b191ad][/i:3535b191ad]

poderia fazer:

var
(...)
 s: string;
begin
(...)
s := RichEdit.Text;
for I:= 1 to Length(s) do
begin
  //s[I] contém o caracter
end;


ou respondendo a sua pergunta, para converter uma string num caracter, ao invés de usar o copy, que retorna uma string com 1 caracter no seu exemplo, use
[i:3535b191ad][color=green:3535b191ad] Caracter := RichEdit1.Text[I];[/color:3535b191ad][/i:3535b191ad]

Outra coisa, não entendi pq vc converte as strings para PChar antes?


GOSTEI 0
POSTAR