Показать сообщение отдельно
  #5  
Старый 12.09.2009, 09:55
nisolmer nisolmer вне форума
Прохожий
 
Регистрация: 10.09.2009
Сообщения: 11
Репутация: 10
По умолчанию

Немного не так. Там не номер строки, там просто поиск по файлу, например там два Editа фамилия и телефон и две кнопки поиска по фамилии и телефону, чтобы он ирскал по фамилии в тексте. Задание вообще звучало так:

Создается файл, в него записываются данные – фамилия, имя, номер телефона.
Предусмотрите возможность добавления данных или внесения новой информации с удалением содержимого файла, вывод содержимого файла, вывод данных по запрашиваемому номеру телефона, вывод данных по введенной фамилии (если в файле есть одинаковые фамилии – выводится список всех, имеющих эти фамилии).
Отсортируйте файл по «фамилия».

Пока вот что написал:
Код:
unit Unit3;

interface

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

type
  TForm3 = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    Button1: TButton;
    Button5: TButton;
    Button6: TButton;
    Memo1: TMemo;
    Button7: TButton;
    procedure Button5Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure Button6Click(Sender: TObject);
    procedure Edit1KeyPress(Sender: TObject; var Key: Char);
    procedure Edit2KeyPress(Sender: TObject; var Key: Char);
    procedure Edit3KeyPress(Sender: TObject; var Key: Char);
    procedure FormKeyPress(Sender: TObject; var Key: Char);
    procedure Label2Click(Sender: TObject);
    procedure Label1Click(Sender: TObject);
    procedure Label3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button7Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Button2Click(Sender: TObject);



  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form3: TForm3;

implementation

uses Unit1;

{$R *.dfm}

procedure TForm3.Button5Click(Sender: TObject);
begin
Form3.Close;
Form1.Show;
end;

procedure TForm3.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Form1.Show;
end;

procedure TForm3.Button6Click(Sender: TObject);
begin
Edit1.Clear;
Edit2.Clear;
Edit3.Clear;
end;

procedure TForm3.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  case key of
    '0'..'9': key:=#0;
    end;
end;

procedure TForm3.Edit2KeyPress(Sender: TObject; var Key: Char);
begin
case key of
    '0'..'9': key:=#0;
    end;
end;

procedure TForm3.Edit3KeyPress(Sender: TObject; var Key: Char);
begin
 case key of
    'А'..'Я','а'..'я','A'..'Z','a'..'z': key:=#0;
    end;

end;

procedure TForm3.FormKeyPress(Sender: TObject; var Key: Char);
begin
  if (Key = #13) then begin
  Key:=#0;
  Perform(WM_NEXTDLGCTL,0,0);
end;
 end;


procedure TForm3.Label2Click(Sender: TObject);
begin
if Edit1.CanFocus then Edit1.SetFocus
end;

procedure TForm3.Label1Click(Sender: TObject);
begin
if Edit2.CanFocus then Edit2.SetFocus
end;

procedure TForm3.Label3Click(Sender: TObject);
begin
if Edit3.CanFocus then Edit3.SetFocus
end;

procedure TForm3.Button4Click(Sender: TObject);
var list:TextFile;
     txt:string;
begin
  txt:=  'ИМЯ: '+Edit1.Text+ #13#10 + 'Фамилия: ' +Edit2.Text+ #13#10
+ 'Номер телефона ' + Edit3.Text;

 AssignFile(list,'memo.txt');//регистрация файла
  Rewrite(list);
  Writeln(list,txt);
  CloseFile(list);
  ShowMessage('Данные записаны в файл');
 end;

procedure TForm3.Button1Click(Sender: TObject);
begin
Memo1.Lines.LoadFromFile('memo.txt'); // загрузка
end;

procedure TForm3.Button7Click(Sender: TObject);
begin
Memo1.Lines.SaveToFile('memo.txt'); // сохранение
ShowMessage('Содержимое файла изменено');
end;

procedure TForm3.FormCreate(Sender: TObject);
begin
memo1.Clear;
end;

procedure TForm3.Button2Click(Sender: TObject);
var
   F:TStrings;
  n2: Integer;
begin
 f:=TStringList.Create;
 F.LoadFromFile('memo.txt');
 for n2:=0 to f.Count - 1 do
 if pos(Edit2.Text,f.Strings[n2]) > 0 then ShowMessage(IntToStr(n2));
   end;


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