试试这样:unit Unit1;interfaceuses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls;type
  TForm1 = class(TForm)
    readbutton: TButton;
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure readbuttonClick(Sender: TObject);
  private
    { Private declarations }
    FReadText:Tstrings;
  public
    { Public declarations }
  end;var
  Form1: TForm1;implementation{$R *.DFM}procedure TForm1.FormCreate(Sender: TObject);
begin
  FReadText := TStringList.Create;
end;procedure TForm1.FormDestroy(Sender: TObject);
begin
  FreeAndNil(FReadText);
end;procedure TForm1.readbuttonClick(Sender: TObject);
var
  c:char;
  n,m:integer;
begin
  FReadText.LoadFromFile('atext.txt');  //atext.txt是你要读的文本文件名
  n := 1; //n行
  m := 2; //m列  try
    c := FReadText[n][m];
  except
  end;end;end.

解决方案 »

  1.   

    任意个字符,比如有个nanze.txt的文本文件,我要读取第2行第3个字母!
      

  2.   

    万一这个 nanze.txt 的第2行只有一个字母怎么办。或者这个 nanze.txt 只有一行?
      

  3.   

    用函数readln()将文本读到一个MEMO中,再用:
    MEMO.LINES[I]属性可读出第几行,将其赋给一个字符串变量再进一步判断, 不就可以实现了吗!
      

  4.   

    补充一句:可将MEMO的VISIBLE属性设为FALSE,使它不可见。
      

  5.   

    function GetLnColChar(AText: String; n, m: Integer): Char;
    var
      Lines: TStringList;
    begin
      Lines := TStringList.Create;
      Lines.Text := AText;
      Result := Lines.Strings[n - 1][m];
      Lines.Free;
    end;