Один из вариантов решения, доработка под отдельные строки за тобой:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
f : file of AnsiChar;
CharTmp : AnsiChar;
CountAnsiChar : Integer;
begin
//Запускаем диалог открытия файла.
if not OpenDialog1.Execute then Exit;
//Связываем файловую переменную с именем файла.
AssignFile(f, OpenDialog1.FileName);
//Открываем файл в режиме "только чтение".
Reset(f);
CountAnsiChar := 0;
//До тех пор, пока не достигнут конец файла.
while not Eof(f) do begin
//Читаем очередной Ansi символ.
Read(CharTmp);
//Если прочитанный символ не является пробелом, то подсчитывем его.
if CharTmp = '-' then Inc(CountAnsiChar);
end;
//Закрываем файл.
CloseFile(f);
//Показываем результат.
Edit1.Text := 'Файл содержит ' + IntToStr(CountAnsiChar) + ' отрицательных чисел.';
end;