Fórum Mapeamento de arquivo txt #164981
05/06/2003
0
Caros colegas
Estou desenvolvendo um programa que mapeia um arquivo texto. Quando o programa encontra alguma palavra da lista de palavras, ele copia a linha onde se encontra essa palavra para um componente Memo, porém quando executo o procedimento o compilador acusa erro em tempo de execução, aí vai o código:
var
ArqTxt : TextFile;
A_Const : array of string;
Linha : string;
I : integer;
Boo : boolean;
begin
SetLength(A_Const, Memo1.Lines.Count);
for I := 0 to Memo1.Lines.Count - 1 do
begin
A_Const[I] := Memo1.Lines.Strings[I];
end;
PRod := TRod.Create;
AssignFile(ArqTxt, ´C:\Util\BL022003.txt´);
Reset(ArqTxt);
while not Eof(ArqTxt) do
begin
Readln(ArqTxt, Linha);
Boo := PRod.ComparaTXT(Linha, A_Const);
if (Boo = True) then
begin
Memo2.Lines.Add(Linha);
end;
end;
CloseFile(Arqtxt);
PRod.Free;
end;
Procedimeno ComparaTXT
Classe TRod
TRod = class
public
function ComparaTXT(Line : string; A : array of string) : boolean;
end;
var
Form1: TForm1;
PRod : TRod;
function TRod.ComparaTXT(Line: string; A: array of string): boolean;
var
I, J, Tam : integer;
Word_Map : string;
Boo : boolean;
begin
Tam := Length(Line);
J := 0;
I := 1;
Boo := True;
while I <= Tam do
begin
Word_Map := Copy(Line, I, Length(A[J]));
if (Word_Map = A[J]) then
begin
Boo := True;
end
else begin
Boo := False;
end;
I := I + 1;
J := J + 1;
end;
Result := Boo;
end;
Desde já agradecido
Rodrigo
rod_ms@ig.com.br
Estou desenvolvendo um programa que mapeia um arquivo texto. Quando o programa encontra alguma palavra da lista de palavras, ele copia a linha onde se encontra essa palavra para um componente Memo, porém quando executo o procedimento o compilador acusa erro em tempo de execução, aí vai o código:
var
ArqTxt : TextFile;
A_Const : array of string;
Linha : string;
I : integer;
Boo : boolean;
begin
SetLength(A_Const, Memo1.Lines.Count);
for I := 0 to Memo1.Lines.Count - 1 do
begin
A_Const[I] := Memo1.Lines.Strings[I];
end;
PRod := TRod.Create;
AssignFile(ArqTxt, ´C:\Util\BL022003.txt´);
Reset(ArqTxt);
while not Eof(ArqTxt) do
begin
Readln(ArqTxt, Linha);
Boo := PRod.ComparaTXT(Linha, A_Const);
if (Boo = True) then
begin
Memo2.Lines.Add(Linha);
end;
end;
CloseFile(Arqtxt);
PRod.Free;
end;
Procedimeno ComparaTXT
Classe TRod
TRod = class
public
function ComparaTXT(Line : string; A : array of string) : boolean;
end;
var
Form1: TForm1;
PRod : TRod;
function TRod.ComparaTXT(Line: string; A: array of string): boolean;
var
I, J, Tam : integer;
Word_Map : string;
Boo : boolean;
begin
Tam := Length(Line);
J := 0;
I := 1;
Boo := True;
while I <= Tam do
begin
Word_Map := Copy(Line, I, Length(A[J]));
if (Word_Map = A[J]) then
begin
Boo := True;
end
else begin
Boo := False;
end;
I := I + 1;
J := J + 1;
end;
Result := Boo;
end;
Desde já agradecido
Rodrigo
rod_ms@ig.com.br
Rod_ms
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)