Fórum O que esta errado que esta dando erro de violação #530228
29/08/2015
0
raramente programo alguma coisa no delphi , uso mais para integração com microcontroladores , porem estou tendo erro de violação de acesso
o programa é bem simples aperto um botão e executa o codigo :P , porem estou tendo erro de violação de acesso
o erro esta ocorrendo aqui >>>>>>>>>>>>>>>>>>numeros[1] := ord(rx_data[1]);
------------------------------------------------------------------------------------------------------------------------------------------
unit Unit1;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
// ComPort1: TComPort;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
rx_data : string;
i : byte ;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
numeros: Array [1..128] of byte; // variaveis
begin
numeros[1] := ord(rx_data[1]);
end;
end.
Rodrigo Hernandes
Curtir tópico
+ 0Post mais votado
31/08/2015
Logo: rx_data[1] -> posição 1 da string vazia vai dar erro.
Valquiria Silva
Gostei + 1
Mais Posts
31/08/2015
Raimundo Pereira
Gostei + 0
31/08/2015
Rodrigo Hernandes
Na verdade esse é só um pedaço da aplicação , é que vai vi uma string pela porta serial e esse trecho era para passar a string para uma array pela tabela ascii
Porem domingo a noite já tinha visto uma solução , e descobri que não poderia o valor esta vazio .........
procedure TForm1.Button1Click(Sender: TObject);
var
Dados : string;
numeros : array [1..52] of byte;
i : byte;
// CLICK NO BOTÃO
begin
memo1.Lines.Clear;
memo2.Lines.Clear;
memo3.Lines.Clear;
memo4.Lines.Clear;
memo5.Lines.Clear;
memo6.Lines.Clear; // debug
dados := (edit6.Text);
comport1.ShowSetupDialog; //abre janela serial
comport1.close; // fecha porta serial
comport1.Open; // abre porta serial
comport1.Connected:= true; // conecta porta serail
ComPort1.WriteStr(char(2)+ char(4)+ char(3));
// envia caracteres
//ComPort1.ReadStr(Dados,50); /// posteriormente habilitar
for i := 1 to 50 do //contagem de 1 a 50
begin
numeros[i] := ord(Dados[i]);
memo6.Lines.Add(inttostr((numeros[i]))); // debug
end;
Gostei + 0
31/08/2015
Rodrigo Hernandes
Obrigado Pela Atenção ;)
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)