1- Любой код нужно заключать в тэги 
[code ][/code]2. - Я все конечно понимаю, школа, задания, но лично для себя же можно код хоть как то отформатировать.
3. Могли бы и файл приложить, это как мол думайте сами? Это вообще кому надо?
4. Вы даже файл забываете закрыть.. мой совет прочитать книгу по сабжу.
хз че вы там делаете вот переписал, программа не вылетает, при содержании файла типа:
- Код: Выделить всё
- 1 2 3 
 2 12 123
 3 123 1232
 4 435 5
 
Выдает результат 1.
Вот код консольного приложения:
- Код: Выделить всё
- program project1;
 
 {$mode objfpc}{$H+}
 
 uses
 {$IFDEF UNIX}{$IFDEF UseCThreads}
 cthreads,
 {$ENDIF}{$ENDIF}
 Classes, SysUtils, CustApp
 { you can add units after this };
 
 type
 
 { TMyApplication }
 
 TMyApplication = class(TCustomApplication)
 protected
 procedure DoRun; override;
 procedure Fignya;
 public
 end;
 
 { TMyApplication }
 
 procedure TMyApplication.DoRun;
 var
 ErrorMsg: String;
 begin
 
 { add your program here }
 Fignya;
 Writeln('bla bla bla');
 Readln();
 // stop program loop
 Terminate;
 end;
 
 procedure TMyApplication.Fignya;
 var
 dovoid : boolean;
 i, i1, maxprint : integer;
 f1 : textfile;
 T, N : integer;
 D, Ai, Bi, Ci, max : Real;
 Begin
 AssignFile(f1,'1.txt');
 Reset(f1);
 ReadLn(f1, T);
 i := 1;
 
 while (i<(T+1)) do
 Begin
 i := i + 1;
 ReadLn(f1, N, D);
 i1 := 0;
 max := 0;
 while (i1<N) do
 Begin
 i1 := i1 + 1;
 ReadLn(f1, Ai, Bi, Ci);
 
 if (((Ai<=D) or (Bi<=D)) or (Ci<=D)) Then
 dovoid := true;
 
 if ((Ai*Ai)+(Bi*Bi)-((Ai*Ai)+(Bi*Bi))/(Ci*Ci))<(D*D) Then
 dovoid :=true;
 
 if ((Ci*Ci)+(Bi*Bi)-((Ci*Ci)+(Bi*Bi))/(Ai*Ai))<(D*D) Then
 dovoid :=true;
 
 if ((Ai*Ai)+(Ci*Ci)-((Ai*Ai)+(Ci*Ci))/(Bi*Bi))<(D*D) Then
 dovoid :=true;
 
 if (dovoid and (max<(Ai*Bi*Ci))) Then
 Begin
 max := Ai*Bi*Ci;
 maxprint := i1;
 end;
 end;
 WriteLn(maxprint);
 end;
 
 CloseFile(f1);
 end;
 
 var
 Application: TMyApplication;
 
 {$R *.res}
 
 begin
 Application:=TMyApplication.Create(nil);
 Application.Title:='My Application';
 Application.Run;
 Application.Free;
 end.