Показать сообщение отдельно
  #10  
Старый 28.11.2008, 22:21
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,029
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

OK. вот код, который читает файл в через callback возвращает выреанные подстроки (с 5 по 8 позиции включительно). Если будут проблемы с подключением, то пиши.

Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TDataCallBack = procedure (AData : String) of object;
  TForm1 = class(TForm)
    Button1: TButton;
    Memo1: TMemo;
    OpenDialog1: TOpenDialog;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
    procedure DataCallBack(AData : String);
  public
    { Public declarations }
    procedure ReadDataFromFile(AFileName : String; ACallBack : TDataCallBack = Nil);
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

{ TForm1 }

procedure TForm1.DataCallBack(AData: String);
begin
  Memo1.Lines.Add(AData);
end;

procedure TForm1.ReadDataFromFile(AFileName: String;
  ACallBack: TDataCallBack);
var
  F : TextFile;
  Buf : String;
begin
  If (@ACallBack = Nil) Or (Not FileExists(AFileName)) Then Exit;
  AssignFile(F,AFileName);
  Reset(F);
  While Not Eof(F) Do
    Begin
      ReadLn(F,Buf);
      If Length(Buf) >= 8 Then
        ACallBack(Copy(Buf,5,4));
    End;
  CloseFile(F);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  If OpenDialog1.Execute Then
    Begin
       Memo1.Lines.Clear;
       ReadDataFromFile(OpenDialog1.FileName,DataCallBack);
    End;
end;

end.
Ответить с цитированием