Тема: Chart Save/Load
Показать сообщение отдельно
  #5  
Старый 11.02.2010, 20:11
Ama Ama вне форума
Активный
 
Регистрация: 15.07.2008
Сообщения: 260
Репутация: 23
По умолчанию

Я думаю что те не координаты точек нужны будут, а значения к примеру значения Y при последовательных значениях X.
Код:
...
var  CooX, CooY: array of real;
...
procedure TForm1.SaveGraph(FileName: string);
 var Ch: Byte;
     F: File of real;
     i: integer;
     XX: real;
begin
 AssignFile(F, FileName);
 {+I}
 Rewrite(F);
 {-I}
 {Записываем строку графика - формулу}
 XX:= Length(FormulEd.Text);
 Write(F, XX);
 for i:= 1 to Length(FormulEd.Text) do
  begin
   Ch:= Byte(FormulEd.Text[i]);
   XX:= Integer(Ch);
   Write(F, XX);
  end;
 {точка начала графика}
 XX:= StrToFloat(FromXEd.Text);
 Write(F, XX);
 {точка конца графика}
 XX:= StrToFloat(ToXEd.Text);
 Write(F, XX);
 {шаг изменения переменно X}
 XX:= StrToFloat(dXEd.Text);
 Write(F, XX);
{записываем значения X}
 for i := 0 to High(CooX) do
  Write(F, CooX[i]);
{Записываем значения Y при X}
 for i := 0 to High(CooY) do
  Write(F, CooY[i]);
 CloseFile(F);
end;

procedure TForm1.LoadGraph(Displ: TCanvas; FileName: string);
 var Ch: Byte;
     F: File of real;
     i: integer;
     XX: real;
     s: Char;
begin
 AssignFile(F, FileName);
 {+I}
 Reset(F);
 {-I}

{Читаем строку графика - формулу} 
FormulEd.Text:= '';
 Read(F, XX);
 Ch:= Round(XX);
 for i:= 1 to Ch do
  begin
   Read(F, XX);
   s:= Char(Round(XX));
   FormulEd.Text:= FormulEd.Text + s;
  end;
 Read(F, XX);
 FromXEd.Text:= FloatToStr(XX);
 Read(F, XX);
 ToXEd.Text:= FloatToStr(XX);
 Read(F, XX);
 dXEd.Text:= FloatToStr(XX);

 i:= Trunc((StrToFloat(ToXEd.Text) - StrToFloat(FromXEd.Text))
           / StrToFloat(dXEd.Text)) + 1;
 SetLength(CooX, i);
 SetLength(CooY, i);
 for i := 0 to High(CooX) do
  Read(F, CooX[i]);
 for i := 0 to High(CooY) do
  Read(F, CooY[i]);
 CloseFile(F);
end;
Ответить с цитированием