Ir ao conteúdo
  • Cadastre-se

erro no codigo pascal


Willian Faria

Posts recomendados

Faça um programa em Pascal que leia duas strings, uma contendo o nome de um arquivo texto e a outra contendo uma palavra, e que retire do arquivo todas as ocorrências dessa palavra. Por simplicidade, suponha que todas as palavras iniciam e terminam em uma mesma linha do arquivo.

Após a eliminação das ocorrências da palavra, escreva o conteúdo do arquivo no vídeo.

Program quest ;

procedure ProcuraPalavra(NomeArq, Palavra :string);
var
ArqTxt :Text;

begin
assign(arqTxt,'C:\Users\Willian\Desktop\teste\teste\ArqNome.txt');
rewrite(ArqTxt);
while not EOF(ArqTxt) do
begin
Linha:=Readln(ArqFile);
// aqui vamos procurar a Palavra enquanto ela estiver presente na Linha
PosPalavra:=Pos(Linha,Palavra);
while PosPalavra > 0 do
begin
// já que encontramos, a gente remove como solicitado e procura novamente...
Delete(Linha,PosPalavra,Length(Palavra));
PosPalavra:=Pos(Linha,Palavra);
end;
if linha <> '' then // se sobrou algo, imprimimos na tela
writeln(Linha);
end;
Close(ArqTxt);
end;

Begin

End.

Me a judem por favor a resolver este código.

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Olá,

Willian Faria, peguei seu código e fiz algumas alterações. Espero que ajude.

procedure ProcuraPalavra(NomeArq, Palavra :string);
var
ArqTxt :Text;
Linha :string;
PosPalavra :byte;

begin

{assinala o arquivo ao caminho especificado}
assign(arqTxt,'C:\Users\Willian\Desktop\teste\teste\'+NomeArq+'.txt');

(*
{recria o arquivo!!!}
rewrite(ArqTxt);

//nesse caso, não serve, já que vai apagar o conteúdo
*)

{abre o arquivo no inicio}
reset(ArqTxt);

{enquanto não for o fim do arquivo}
while not EOF(ArqTxt) do
begin
{ler a próxima linha}
{Linha:=Readln(ArqFile);} //file?????
{Linha:=Readln(ArqTxt);} //readln é uma procedure, não uma fuction
readln(arqTxt,Linha); {a forma correta seria assim. "(local,variavel,varialve,variavel...)
quando não coloca o local, ele ler do teclado}

// aqui vamos procurar a Palavra enquanto ela estiver presente na Linha
PosPalavra:=Pos(Linha,Palavra);
while PosPalavra > 0 do
begin
// já que encontramos, a gente remove como solicitado e procura novamente...
Delete(Linha,PosPalavra,Length(Palavra));
PosPalavra:=Pos(Linha,Palavra);
end;
if linha <> '' then // se sobrou algo, imprimimos na tela
writeln(Linha);
end;
Close(ArqTxt);
end;

BEGIN

END.

Eu basicamente tornei o código compilável, ou seja, corrigindo uns comando e declarações de variável... veja ai...

No aguardo

Abraços

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!