Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.03.2011, 00:12   #1
MOMOTOCHEK
 
Регистрация: 26.02.2011
Сообщений: 7
По умолчанию вывод данных типа ttime на график

есть текстовый файл с данными:
19:19 119 78 94
19:34 114 79 90
19:49 139 85 96
20:34 115 76 88
21:19 123 90 87
21:49 115 77 80
22:00 115 77 87
22:30 106 64 70
23:00 105 67 71
23:30 97 59 77
0:00 98 68 78
0:30 105 68 76
я его считываю и вывожу на график.нужно что бы выводило по оси Х время так как оно записано в файлике от 19:19 до 00:30, а мне автоматически выводит от 00:00 до 19:19
вот код
Код:
procedure TForm1.Button1Click(Sender: TObject);

var s,s1,s2,s0:string; c:char;  j,i:integer;
  tt:TTime; r1,r2,r3,r4,r5:real;

begin
series5.Clear;
series8.clear;
series9.clear;
series1.Clear;
series2.Clear;
series3.Clear;
series4.Clear;
series7.Clear;
j:=0;
setlength(time,100);
setlength(ttimes,100);
setlength(SAD,100);
setlength(DAD,100);
setlength(HCC,100);
setlength(nSAD,100);
setlength(NDAD,100);
StringGrid1.ColCount:=6;
  StringGrid1.RowCount:=100;

  StringGrid1.Cells[0,0]:='Time';
  StringGrid1.Cells[1,0]:='SAD';
  StringGrid1.Cells[2,0]:='DAD';
  StringGrid1.Cells[3,0]:='Pyls';
  StringGrid1.Cells[4,0]:='norma SAD';
  StringGrid1.Cells[5,0]:='norma DAD';
if OpenDialog1.Execute then
begin
   AssignFile(f,OpenDialog1.FileName);
   Reset(f);
   while  not eof(f) do
   begin

    readln(f,s);
    i:=1;  s0:='';
    repeat c:=s[i]; s0:=s0+c; inc(i)
    until c=' ';
    time[j]:=strtotime(s0);

    StringGrid1.Cells[0,j+1]:=timeToStr(time[j]);

    s0:='';
    repeat c:=s[i]; s0:=s0+c; inc(i)
    until c=' ';
    SAD[j]:=strtofloat(s0);
    StringGrid1.Cells[1,j+1]:=floatToStr(SAD[j]);

    s0:='';
    repeat c:=s[i]; s0:=s0+c; inc(i)
    until c=' ';
    DAD[j]:=strtofloat(s0);
    StringGrid1.Cells[2,j+1]:=floatToStr(DAD[j]);

    s0:='';
    repeat c:=s[i]; s0:=s0+c; inc(i)
   until i>length(s);
    HCC[j]:=strtofloat(s0);
    StringGrid1.Cells[3,j+1]:=floatToStr(HCC[j]);

    if ( time[j]>strtotime('6:00:00')) and (Time[j]<strtotime('22:00:00')) then
    begin
    nSAD[j]:=90;
    nDAD[j]:=130;
    end
    else
    begin
    nSAD[j]:=80;
    nDAD[j]:=120;
    end;
    StringGrid1.Cells[4,j+1]:=floatToStr(nSAD[j]);
    StringGrid1.Cells[5,j+1]:=floatToStr(nDAD[j]);
    inc(j);
   end;
   kilkist:=j;
setlength(time,kilkist);
setlength(ttimes,kilkist-1);
setlength(SAD,kilkist);
setlength(DAD,kilkist);
setlength(HCC,kilkist);
setlength(nSAD,kilkist);
setlength(NDAD,kilkist);
 StringGrid1.RowCount:=kilkist+1;
end;
for j:=0 to kilkist-1 do
begin
series1.AddXY(time[j],SAD[j],'',clTeeColor);
series2.AddXY(time[j],DAD[j],'',clTeeColor);
series3.AddXY(time[j],HCC[j],'',clTeeColor);
if j+1<kilkist then
begin
ttimes[j]:=time[j+1]-time[j];
memo1.Lines.Add(timetostr(ttimes[j]));
end;
end;
if (time[0]<strtotime('06:00:00')) and (time[kilkist-1]<strtotime('23:59:59')) then
begin
series7.AddArrow(time[0],80,strtotime('06:00:00'),80);
series4.AddArrow(time[0],120,strtotime('06:00:00'),120);
series7.AddArrow(strtotime('06:00:00'),90,strtotime('22:00:00'),90);
series7.AddArrow(strtotime('22:00:00'),80,time[kilkist-1],80);
series4.AddArrow(strtotime('06:00:00'),130,strtotime('22:00:00'),130);
series4.AddArrow(strtotime('22:00:00'),120,time[kilkist-1],120);
end
else
if (time[0]>strtotime('06:00:00')) and (time[kilkist-1]<strtotime('23:59:59')) then
begin
series7.AddArrow(time[0],90,strtotime('22:00:00'),90);
series7.AddArrow(strtotime('22:00:00'),80,time[kilkist-1],80);
series4.AddArrow(time[0],130,strtotime('22:00:00'),130);
series4.AddArrow(strtotime('22:00:00'),120,time[kilkist-1],120);
end;
label1.Caption:='Кількість замірів за добу   '+inttostr(kilkist);
end;
MOMOTOCHEK вне форума Ответить с цитированием
Старый 25.03.2011, 00:27   #2
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

ты используешь For to do
а можно и на оборот:
For downto do

Код:
var
  i,l:integer;
begin
j:=31;
//От 0 до 31
for i:=1 to j do
end;
Код:
var
  i,l:integer;
begin
j:=31;
//От 31 до 1
for j downto i:=1 do
end;
Человек_Борща вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывод числа типа Extended Ilya_L Общие вопросы Delphi 5 03.08.2010 09:00
вывод элементов из массивов смешанного типа kirosin PHP 2 17.01.2010 17:04
Добавить тип TTime:TDateTime Nikitin Помощь студентам 2 18.02.2008 08:31
работа с временем TTime; Рустам Общие вопросы Delphi 4 04.02.2008 13:46