Другие языки программирования и технологии

Жду помощи)))))))))) SOS!!!!

Составьте программу на Турбо Паскале.Описать функцию, которая подсчитывает количество пустых строк в текстовом файле t. Заранее спасибо))))))))))))))))))
program read_file;
{ uses wincrt;}
var nfile:string;
x:integer;
function readf(s:string):integer;
var f:text;
ss:string;
i:integer;
begin
assign(f,s);
reset(f);
i:=0;
while not eof(f) do
begin
readln(f,ss);
if ss='' then i:=i+1;
end;
readf:=i;
end;
begin
{ clrscr;}
write('input name file=');
readln(nfile);
{ nfile:='c:\t.txt';}
x:=readf(nfile);
writeln;
writeln('count free string=',x);
readln;
end.

это именно программа с нужной функцией
последняя заременная строчка для проверки ленивым
можно (для нормальных прог нужно) ещё добавить проверку на
существование файла в котором строчки считать собрались...
ВС
Влад Скляр
6 257
Лучший ответ
Процедура READLN.

Обеспечивает ввод символов, строк и чисел. Эта процедура идентична процедуре READ за исключением того, что после считывания последней переменной оставшаяся часть строки до маркера EOLN пропускается, поэтому следующее обращение к READLN или READ начинается с первого символа новой строки. Кроме того, эту процедуру можно вызвать без параметра <cn.вводa> (см. процедуру READ), что приведет к пропуску всех символов текущей строки вплоть до EOLN.

var

f : text;

s: String;

const

Sum: LongInt = 0; {Здесь будет количество пустых строк}

begin

Write('Имя файла: ');{Запрашиваем... }

Readln(s); {и вводим имя файла. }

assign(f,s);

Reset (f); {Открываем файл}

while not EOF(f) do {Подсчитываем... }

begin {количество. . }

ReadLn(f,s); {символов... }

if Length(s)=0 then
Sum:=Sum+1 {в файле}

end ;

Close(f); {Закрываем файл}

WriteLn('Объем = ', Sum/40000 : 6:2,' уч. изд. л. ')

end.

у меня нет компилятора сейчас, поэтому возможны мелкие ошибки
Например, длина пустой строки может быть равна не 0 а 1 (считается служебный симвло EOL) - хот я врялд ли. Также не уверен, что можно изменять значение констант - если будут проблемы, меняй на переменную
Andrei Belyaev
Andrei Belyaev
25 762