Witam. Mam pewien problem z programem.
Otóż mam do napisania program w którym mam 2 pliki(txt) wejściowe i 1 wyjściowy(txt). W 1 pliku znajduje się jakiś tekst, w 2 pliku wzorzec np(ko,lak,jak itp.). Dany wzorzec jest przypisany do danej linii czyli :
Przykład:
Plik 1
Nazywam sie Stanislaw
W sklepie jest duzo promocji
(Tych linii może być dużo )
Plik2:
zy
le
I w pliku 3 ma być coś takiego:
zy 3
mo 5
Liczby (3,5) są to miejsca w których wystąpił wzorzec.
Linii tekstu ma być tyle ile wzorców.
Prezentuje mój kod który napisałem jednak nie działa poprawnie:
program project1;
{$mode objfpc}{$H+}
uses
{$IFDEF UNIX}{$IFDEF UseCThreads}
cthreads,
{$ENDIF}{$ENDIF}
Classes
{ you can add units after this };
{$IFDEF WINDOWS}{$R project1.rc}{$ENDIF}
var tekst,wzor:string;
var a,i,j,pozycja,n,pomocnicza:integer;
var ftekst,fwzor,wy1:TextFile;
var result:boolean;
begin
assign(ftekst,'we1.txt');
reset(ftekst);
assign(fwzor,'we2.txt');
reset(fwzor);
assign(wy1,'wy1.txt');
rewrite(wy1);
n:=0;
WHILE NOT EOF(ftekst) DO
begin
readln(ftekst,tekst);
readln(fwzor,wzor);
for i:=1 to length(tekst) do
if tekst[i]=wzor[1] then
begin
for j:=1 to length(wzor) do
begin
if wzor[j]=tekst[i+j-1] then write(wy1,wzor,' ',j)
else writeln;
end;
end;
end;
Closefile(ftekst);
Closefile(fwzor);
Closefile(wy1);
end.
Pozdrawiam.