Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Сохранение значений функции в файл

16K
18 октября 2006 года
demon74
20 / / 18.10.2006
Уважаемые...подскажите плизз чайнику!!!)))
Ситуация такая: наваял программку , которая в течении 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);
}
}
547
19 октября 2006 года
Hydra
488 / / 20.06.2006
Создаешь файл в Button1Click()
В TTimer:
 
Код:
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;
  // Закрываем файл
}

Для работы с файлами надо определится с его форматом и использовать TFileStream или fopen/fprintf/fclose
16K
19 октября 2006 года
demon74
20 / / 18.10.2006
"Пишем одно значение в файл".....ещё бы вот хотелось узнать как его выдрать из графика значение то(((
1.9K
20 октября 2006 года
Anton Chik
175 / / 26.09.2005
[quote=demon74]"Пишем одно значение в файл".....ещё бы вот хотелось узнать как его выдрать из графика значение то((([/quote]
:) прогу-то поди не сам писал?
а вот это что такое????
 
Код:
S1->AddXY(TrackBar1->Position,cos(TrackBar1->Position)/2, "|", clTeeColor);

пытаюсь пояснить:
 
Код:
TrackBar1->Position

это X
 
Код:
cos(TrackBar1->Position)/2

это Y
16K
20 октября 2006 года
demon74
20 / / 18.10.2006
да в курсе я где Х а где Y.....видно ты не понял сути.....нужно снимать значения Y ПО_СЕ_КУН_ДНО!!!!
547
20 октября 2006 года
Hydra
488 / / 20.06.2006
Если у тебя итервал таймера TTimer1 10ms, то пиши значение каждый 100 вызов. Если 100, то каждый 10 и т.п.
16K
20 октября 2006 года
demon74
20 / / 18.10.2006
[QUOTE=Hydra]Если у тебя итервал таймера TTimer1 10ms, то пиши значение каждый 100 вызов. Если 100, то каждый 10 и т.п.[/QUOTE]


не понял....это как?....ваще запутался(((
16K
20 октября 2006 года
demon74
20 / / 18.10.2006
УУУУРРРРААААААААААААААА!!!!ЗАРАБОТАЛА!!!!!!!!!
Если кому интересно- сделал так:

Цитата:


#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;
}
}



Всем огромное СПАСИБО!!!! Всё работает на УРА!
Тема закрыта....

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог