Transforma string em caracter....
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;
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
Curtidas 0
Respostas
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
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:
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?
[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