
11.02.2010, 20:11
|
Активный
|
|
Регистрация: 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;
|