TrackBar1->Position += 1;
TChartSeries * S1 = Chart1->Series[0];
S1->AddXY(TrackBar1->Position,cos(TrackBar1->Position)/2, "|", clTeeColor);
// Пишем одно значение в файл.
if (TrackBar1->Position==TrackBar1->Max)
{ Timer1->Enabled=false;
// Закрываем файл
}
Сохранение значений функции в файл
Ситуация такая: наваял программку , которая в течении 1 минуты плавно строит график функции (например cos(x)...хотя это неважно)...гарфик строится на компоненте Сhart...так вот...нужно ежесекундно снимать показания графика по оси Y и заносить эти показания в текстовый файл, который создаётся динамически и впоследствии автоматом сохраняется......может кто нить знает как сделать?....заранее благодарен
привожу исходник проги:
Код
#include <vcl.h>
#pragma hdrstop
#include <math.h>
#include "grfik.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Timer1->Enabled = true;
TrackBar1->Min = 0;
TrackBar1->Max = 60;
TrackBar1->Position = 0;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
TrackBar1->Position += 1;
for (int x= TrackBar1->Position;x<=60;x+=1)
{
TChartSeries * S1 = Chart1->Series[0];
S1->AddXY(TrackBar1->Position,cos(TrackBar1->Position)/2, "|", clTeeColor);
}
}
В TTimer:
Код:
Для работы с файлами надо определится с его форматом и использовать TFileStream или fopen/fprintf/fclose
"Пишем одно значение в файл".....ещё бы вот хотелось узнать как его выдрать из графика значение то(((
:) прогу-то поди не сам писал?
а вот это что такое????
Код:
S1->AddXY(TrackBar1->Position,cos(TrackBar1->Position)/2, "|", clTeeColor);
пытаюсь пояснить:
Код:
TrackBar1->Position
это X
Код:
cos(TrackBar1->Position)/2
это Y
да в курсе я где Х а где Y.....видно ты не понял сути.....нужно снимать значения Y ПО_СЕ_КУН_ДНО!!!!
Если у тебя итервал таймера TTimer1 10ms, то пиши значение каждый 100 вызов. Если 100, то каждый 10 и т.п.
не понял....это как?....ваще запутался(((
Если кому интересно- сделал так:
Цитата:
#include <vcl.h>
#pragma hdrstop
#include <math.h>
#include <windows.h>
#include "grfik.h"
#include <string.h>
#include <ctype.h>
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
float t,d;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Timer1->Enabled = true;
TrackBar1->Min = 0;
TrackBar1->Max = 60;
TrackBar1->Position = 0;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
TChartSeries * S1 = Chart1-> Series[0];
S1->AddXY(TrackBar1->Position,cos(TrackBar1->Position)/2, "", clTeeColor);
t= S1-> YValues->Count();
d = S1-> YValues->Value[TrackBar1->Position] ;
TrackBar1->Position += 1;
AnsiString znachX = FloatToStr(t) ;
AnsiString znachY = FloatToStr(d) ;
Memo1->Lines->Add(" "+znachX+" ----> "+znachY+" ");
if (TrackBar1->Position==TrackBar1->Max)
{
Timer1->Enabled=false;
SaveDialog1->Execute();
Memo1->Lines->SaveToFile(SaveDialog1->FileName);
Memo1->Lines->Clear();
Chart1-> Series[0]->Clear();
TrackBar1->Position = 0;
}
}
Всем огромное СПАСИБО!!!! Всё работает на УРА!
Тема закрыта....