Показать сообщение отдельно
  #5  
Старый 20.12.2008, 14:23
san-46 san-46 вне форума
Активный
 
Регистрация: 25.04.2008
Сообщения: 383
Репутация: 33
По умолчанию

Можно применить типизированный файл. В тексте "SG" - TstringGrid.
Код:
 
type
  MyRec = record
    Dat : string[10];
    Str : string[150];
  end;

var
  F : File of NyRec;
  R : MyRec;
  PathName : string;

//запись
procedure TForm1.Button1Click(Sender: TObject);
var
  I : Integer;
begin
  AssignFile(F, PathName);
  Rewrite(F);
  for I := 1 to SG.RowCount-1 do begin
    R.Dat := SG.Cells[0, I];
    R.Str := SG.Cells[1, I];
    Write(F, R);
  end;
  CloseFile(F);
end;

//чтение из файла
procedure TForm1.Button2Click(Sender: TObject);
var
  Cnt : Integer;
begin
  if not FileExists(PathName) then begin
    ShowMessage('Файл не найден!');
    Exit;
  end;

  SG.RowCount := 2; //при условии, что в таблице есть заголовок
  Cnt := 0;

  AssignFile(F, PathName);
  Reset(F);
  while not EOF(F) do
  begin
    Read(F, R);
    Inc(Cnt);
    if Cnt > SG.RowCount then
      SG.RowCount := SG.RowCount + 1;
    SG.Cells[0, Cnt] := R.Dat;
    SG.Cells[1, Cnt] := R.Str;
  end;
  CloseFile(F);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  //файл с данными там же где и программа
  PathName := ExtractFilePath((Application.ExeName))+'data.dat';
end;

//при изменении даты в DateTimePicker1 в текущую ячейку заносится дата
procedure TForm1.DateTimePicker1Change(Sender: TObject);
begin
  SG.Cells[SG.Col, SG.Row] := DateToStr(DateTimePicker1.Date)
end;
__________________
Не забывайте делать резервные копии
Ответить с цитированием