Trzeba myśleć co się robi i formatować kod po ludzku (nie umiesz sam to skorzystaj choćby z JEDI Code Formatter, do znalezienia w Googlach). Ewentualnie wspierać się debuggerem. Wtedy wszystko będzie jasne, ale formatowanie przede wszystkim. Ok, to o ile dobrze zrozumiałem zadanie tego programu, to dla przykładowego pliku, jaki podałeś suma powinna wynosić 10. I tyle wynosi. Według mnie kod pod FPC lub Delphi powinien mniej więcej wyglądać tak, jak ten poniżej. Pewnie da się też inaczej, ale ja na szybko wpadłem na takie rozwiązanie.
program na_poczatku_zabawy_ogarnij_podstawy;
{$APPTYPE CONSOLE}
const
Separator = ' - ';
Input_FileName = 'dane.txT';
var
Line, S : string;
InputFile : TextFile;
V, Code, SeparatorPos, Sum : integer;
begin
Assign(InputFile, Input_FileName);
{$I-}
Reset(InputFile);
{$I+}
if IOResult <> 0 then
begin
Writeln('Plik: "', Input_FileName, '" nie istnieje!');
end;
Sum := 0;
while not EOF(InputFile) do
begin
Readln(InputFile, Line);
SeparatorPos := Pos(Separator, Line);
if SeparatorPos > 0 then
begin
S := Copy(Line, SeparatorPos + Length(Separator), MaxInt);
Val(S, V, Code);
if Code = 0 then
begin
Sum := Sum + V;
end;
end;
end;
Close(InputFile);
Writeln('Suma liczb z pliku: "', Input_FileName, '" wynosi: ', Sum, '.');
Readln;
end.