Цитата:
Сообщение от Dram
Привет всем форумчанам! вот хотел сделать прогу в паскале. И понял что я в паскале практически 0 . так вот надо чтобы при вводе слова(или ссылки) прога сканила два файла типа .txt и после выдовала, если есть ссылка в первом тексте то прога говорила верно, а если во втором то не верно.
|
То есть если я правильно понял, ссылка или слово ОБЯЗАНЫ быть или в первом, или во втором файле? И если в первом, то TRUE, а во втором, то FALSE?
Попробую. Как-то так:
VAR
S:STRING;
S_L, p1, p2, i:INTEGER;
f1, f2, f3:TEXT;
Ch:Char;
BEGIN
Assign(f1, 'C:\File_1.txt');
Reset(f1);
Assign(f2, 'C:\File_2.txt');
Reset(f2);
WriteLn('Enter search string:');
ReadLn(S);
S_L:=Length(S);
p1:=0;
REPEAT
Read(f1,Ch);
IF (Ch=S[1]) AND (NOT EoF(f1)) THEN
BEGIN
i:=1;
p1:=1;
REPEAT
INC(i);
Read(f1,Ch);
IF (NOT EoF(f1)) THEN
IF S[i]<>Ch THEN p1:=0;
UNTIL (i=S_L) OR (EoF(f1)) OR(p1=0);
END;
UNTIL (p1=1) OR (EoF(f1));
IF p1=1 THEN WriteLn('TRUE');
p2:=0;
REPEAT
Read(f2,Ch);
IF (Ch=S[1]) AND (NOT EoF(f2)) THEN
BEGIN
i:=1;
p2:=1;
REPEAT
INC(i);
Read(f2,Ch);
IF (NOT EoF(f2)) THEN
IF S[i]<>Ch THEN p2:=0;
UNTIL (i=S_L) OR (EoF(f2)) OR(p2=0);
END;
UNTIL (p2=1) OR (EoF(f2));
IF p2=1 THEN WriteLn('FALSE');
IF (p1=0) AND (p2=0) THEN
BEGIN
WriteLn('No string found');
Assign(f3, 'C:\File_3.txt');
ReWrite(f3);
Writeln(f3, S);
Close(f3);
END;
Close(f1);
Close(f2);
ReadLn;
END.
Как-то так. Попробуйте. Естественно, имена файлов и пути прописывайте как Вам надо.