Помощь - Поиск - Пользователи - Календарь
Полная версия: Типизированные файлы в Delphi 7
Форум «Всё о Паскале» > Delphi, Assembler и другие языки. > Delphi
Агри
Обидно будет, если не сдам одну-единственную задачу и не получу автомата.
Помогите, пожалуйста. В упор не доходит, как делать.

Задача: Есть файл, содержащий текст программы на Паскале. Преобразовать его в файл слов. Проверить в нём соответствие begin и end, case и end. Подсчитать кол-во соответствующих операторов.

Вот программка, которую я написала. Работает, но неправильно. Считает кол-во букв почему-то. ?
Код
program Pascal;
{$APPTYPE CONSOLE}

uses
SysUtils;

var  fst: file of shortstring;
   m,n,k, st_l, p,x,y,z,c: Integer;
   s, word_t: shortstring;
begin

k:=0;
m:=0;
n:=0;
p:=1;
assignfile (fst, 'c:\bykva');
rewrite(fst);
Writeln('vvedite stroki');
readln(s);
write(fst,S);
closefile(fst);
assignfile (fst, 'c:\bykva');
reset(fst);
while not eof(fst) do begin
read(fst,s);
x:=pos('begin', s);
y:=pos('end', s);
z:=pos('case', s);

st_l:=length(s);
while p<=st_l do
begin
p:=p+1;
if not (s[p] in [' ', ',', '.']) then
begin

if x>0 then begin
n:=n+1;
end
ELSE if  y>0   then begin
m:=m+1;
end
else if z>0 then begin
k:=k+1;
end;
end;
end;
end;
writeln(n:2, m:2, k:2);
c:=n+k;
If c=m then
Writeln('kol-vo operetorov sootvetstvyushee')
else writeln('Ne pravilno!');

Closefile(fst);

Readln;
end.


Задачу несколько упростила- лишь бы работала. Просто написала, чтобы нужные слова вводились, и они же считались.
Я понимаю, что здесь рассматриваются задачи, написанные в Паскале, но из Паскаля легко можно преобразовать в Делфи, и наоборот.
Ozzя
GetWords
процедура возвращает массив mas, элементами которого являются слова строки s;
http://forum.pascalnet.ru/index.php?showtopic=2361#
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.