Estou fazendo um programa q ele tem q pegar um arquivo texto e separar ele por letras (a ponto de separar palavra por palavra num array), então o que foi q eu fiz quando o programa encontrar um espaço ou um tab ele bota a sentença como falsa, e não joga o espaço vazio dentro do array.
Mas estou caindo num problema , não consigo fazer o programa pular de linha , ou seja ele repete a 1ª linha até o fim , apesar de ler todas!eu leio todas as linhas mas só imprimo a 1ª repetidas vezes, até o fim do arquivo!
vou colocar o codigo aqui.
var
Form1: TForm1;
Reg,j:String;
ArquivoE, ArquivoS:text;
Campos:Array[1..7] of String;
k,i,l :integer;
implementation
{$R *.DFM}
procedure TForm1.SepararClick(Sender: TObject);
var
c: byte;
temp:String;
begin
c:=1;
K:=1;
l:=Length(Reg); //aki ele pega o tamanho da linha
While i < l do
begin
j:= copy(Reg,c,1); //aki ele copia a letra e joga dentro de J
//Readln(J);
if j <> #9 then //se J for Diferente de tab
begin
if j <> ' ' then //se J for diferente de espaço
begin
Campos[k]:=Campos[k]+j; //guarda a letra(No caso J)
Pergunta
Dedao
Ola a todos!
tenho um problema q não consigo resolver!
Estou fazendo um programa q ele tem q pegar um arquivo texto e separar ele por letras (a ponto de separar palavra por palavra num array), então o que foi q eu fiz quando o programa encontrar um espaço ou um tab ele bota a sentença como falsa, e não joga o espaço vazio dentro do array.
Mas estou caindo num problema , não consigo fazer o programa pular de linha , ou seja ele repete a 1ª linha até o fim , apesar de ler todas!eu leio todas as linhas mas só imprimo a 1ª repetidas vezes, até o fim do arquivo!
vou colocar o codigo aqui.
var
Form1: TForm1;
Reg,j:String;
ArquivoE, ArquivoS:text;
Campos:Array[1..7] of String;
k,i,l :integer;
implementation
{$R *.DFM}
procedure TForm1.SepararClick(Sender: TObject);
var
c: byte;
temp:String;
begin
c:=1;
K:=1;
l:=Length(Reg); //aki ele pega o tamanho da linha
While i < l do
begin
j:= copy(Reg,c,1); //aki ele copia a letra e joga dentro de J
//Readln(J);
if j <> #9 then //se J for Diferente de tab
begin
if j <> ' ' then //se J for diferente de espaço
begin
Campos[k]:=Campos[k]+j; //guarda a letra(No caso J)
//no campos K, k só vai variar quando
end; //for = a espaço ou tab
end
else
begin
if Campos[k] <> '' then
k:=k+1;
end;
Inc©;
Inc(i);
end;
end;
procedure TForm1.AbrirClick(Sender: TObject);
begin
If OpenDialog1.Execute Then
begin
AssignFile(ArquivoE, OpenDialog1.FileName); //aqui é o botao pra abrir o arq.
Reset(ArquivoE);
Readln(ArquivoE, Reg);
end;
end;
procedure TForm1.SalvarClick(Sender: TObject);
begin
K:=1;
If saveDialog1.Execute then
begin
AssignFile(ArquivoS, SaveDialog1.FileName); //aqui ele salva o arquivo
Rewrite(ArquivoS);
While not EOF(ArquivoE) do //essa parte estou com duvida nela!
begin //como pego o array q eu fiz e ...
//coloco num arquivo texto novo?
Readln(ArquivoE, Reg);
end;
end;
//CloseFile(ArquivoS);
CloseFile(ArquivoE);
end;
end.
Se alguém peloamor de deus poder me ajudar eu ficarei muito grato
Link para o comentário
Compartilhar em outros sites
4 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.