erro ao ler e gravar txt
08/12/2003
0
Nesta procedure abaixo dá erro no findkey.. vcs poderiam me ajudar a ver o que há de errado
procedure TfrmAtualiza.btnlerClick(Sender: TObject);
var S:textfile;
Valor,AITTEMP: string;
i:integer;
begin
i:=0;
// preenchimento do Memo
ASSIGNFILE(S,FILEBOX.FileName);
RESET(S);
MEMO.Clear;
MEMO.Lines.Add(´********************Captura de dados - Indaiatuba.*******************´);
MEMO.Lines.Add(´---------------------------------------------------------------------------------------------´);
MEMO.Lines.Add(´´);
MEMO.Lines.Add(´Data da Importação: ´+datetostr(date));
MEMO.Lines.Add(´Nome do arquivo importado: ´+ExtractFileName( FileBox.FileName ));
lbldata.Caption:= datetostr(date);
WHILE NOT Eof(S) DO
begin
READLN(S,Valor);
inc(i);
end;
CLOSEFILE(S);
// preenche os campos da tabela temp com o txt
//GAUGE.MaxValue:=I;
Reset(S); { Abre o arquivo }
//GAUGE.Progress:=0;
WHILE NOT Eof(S) DO
begin
READLN(S,Valor);
if (trim(Valor)<>´´)then
begin
AITTEMP:= COPY(VALOR,6,11);
If NOT DTMDB.RETORNO.FindKey([´AIT´,AITTEMP]) THEN
BEGIN
DTMDB.RETORNO.append;
DTMDB.RETORNO.FieldByName(´MUN_AUTUADOR´).ASINTEGER := STRTOINT(COPY(VALOR,1,4));
DTMDB.RETORNO.FieldByName(´STATUS´).ASSTRING := COPY(VALOR,5,1);
DTMDB.RETORNO.FieldByName(´AIT´).ASSTRING := COPY(VALOR,6,11);
o erro é ´out of range´
não tenho nem noção o que pode ser.. o que queria fazer era verificar se o registro já existe.. em caso negativo inclui em caso de já existir abre no modo edição..
valeu dinovo
procedure TfrmAtualiza.btnlerClick(Sender: TObject);
var S:textfile;
Valor,AITTEMP: string;
i:integer;
begin
i:=0;
// preenchimento do Memo
ASSIGNFILE(S,FILEBOX.FileName);
RESET(S);
MEMO.Clear;
MEMO.Lines.Add(´********************Captura de dados - Indaiatuba.*******************´);
MEMO.Lines.Add(´---------------------------------------------------------------------------------------------´);
MEMO.Lines.Add(´´);
MEMO.Lines.Add(´Data da Importação: ´+datetostr(date));
MEMO.Lines.Add(´Nome do arquivo importado: ´+ExtractFileName( FileBox.FileName ));
lbldata.Caption:= datetostr(date);
WHILE NOT Eof(S) DO
begin
READLN(S,Valor);
inc(i);
end;
CLOSEFILE(S);
// preenche os campos da tabela temp com o txt
//GAUGE.MaxValue:=I;
Reset(S); { Abre o arquivo }
//GAUGE.Progress:=0;
WHILE NOT Eof(S) DO
begin
READLN(S,Valor);
if (trim(Valor)<>´´)then
begin
AITTEMP:= COPY(VALOR,6,11);
If NOT DTMDB.RETORNO.FindKey([´AIT´,AITTEMP]) THEN
BEGIN
DTMDB.RETORNO.append;
DTMDB.RETORNO.FieldByName(´MUN_AUTUADOR´).ASINTEGER := STRTOINT(COPY(VALOR,1,4));
DTMDB.RETORNO.FieldByName(´STATUS´).ASSTRING := COPY(VALOR,5,1);
DTMDB.RETORNO.FieldByName(´AIT´).ASSTRING := COPY(VALOR,6,11);
o erro é ´out of range´
não tenho nem noção o que pode ser.. o que queria fazer era verificar se o registro já existe.. em caso negativo inclui em caso de já existir abre no modo edição..
valeu dinovo
Eric.miranda
Curtir tópico
+ 0
Responder
Posts
08/12/2003
Renaldo
O arquivo componente MEMO possui dois metodos, LoadFromFile e SaveToFile. De uma olhada e veja se isso pode ajudar.
Em relacao a seu codigo, nao ví onde vc grava no arquivo.
Um abraço.
Em relacao a seu codigo, nao ví onde vc grava no arquivo.
Um abraço.
Responder
Clique aqui para fazer login e interagir na Comunidade :)