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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.03.2010, 10:45   #1
BARNEY
Участник клуба
 
Регистрация: 23.04.2009
Сообщений: 1,058
По умолчанию Расчёт времени выгрузки данных

Доброго времени суток. Вроде задачка детская...но видимо подход у меня к ней не правильный...

Идёт обработка данных. Нужно показать через сколько она закончиться.
Знаю Количество обрабатываемых данных, побывал в таймере высчитать так , время таймера на 1000
Код:
n:=n+1;
label.caption:=floattostr(n*Gauger.progress/Gauger.maxValue)
но вышла какая то чушь , хотя вроде пропорция и задача для 5 класса.
Если вам человек помог, не стесняйтесь говорить спасибо (весы под аватаром)
BARNEY вне форума Ответить с цитированием
Старый 19.03.2010, 11:21   #2
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

...можно так:
Код:
var t,temp: integer;
      i: integer = 1000; // допустим количество данных =1000
     n: integer;
     gl,gl2: integer;
...
//перед началом операций делаем засечку
gl:= gettickcount;
...

// начинаем цикл
 n:= n+1;
 gauge1.Progress:= n*100 div i; // если gauge1.maxvalue=100 и отображать в процентах
 gauge2.Progress:= n; // если отображать к-во записей, gauge1.maxvalue= i

 label1.Caption:= format('%.1f',[n*100 /i]); // выполнение в процентах

 // осталось времени-
 temp:= gettickcount- gl;
 t:= i* temp; // ориентировочное время на проход всех операций
 label2.Caption:= format('осталось %.1f сек',[(t-gl2)/1000]);
 gl2:= gl2 + temp;  // прошло времени
 gl:= gettickcount; // обновляем засечку
// конец цикла
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 19.03.2010, 11:55   #3
BARNEY
Участник клуба
 
Регистрация: 23.04.2009
Сообщений: 1,058
По умолчанию

написал так

Код:
temp:= gettickcount- gg;
 t:= gauge1.maxValue * temp; // ориентировочное время на проход всех операций
 label1.Caption:= format('осталось %.1f сек',[(t-gg2)/1000]);
 gg2:= gg2 + temp;  // прошло времени
 gg:= gettickcount; // обновляем засечку
показывает время -10000
Если вам человек помог, не стесняйтесь говорить спасибо (весы под аватаром)
BARNEY вне форума Ответить с цитированием
Старый 19.03.2010, 13:32   #4
DeKot
Участник клуба
 
Аватар для DeKot
 
Регистрация: 12.08.2008
Сообщений: 1,977
По умолчанию

Во вложении пример подсчета времени выполнения цикла. Вместо цикла вставте свою обработку данных и считайте.
Вложения
Тип файла: rar TimerCicle.rar (3.3 Кб, 21 просмотров)
И не сомневайся даже ... отдых - кайф, работа - лажа!
DeKot вне форума Ответить с цитированием
Старый 19.03.2010, 13:40   #5
BARNEY
Участник клуба
 
Регистрация: 23.04.2009
Сообщений: 1,058
По умолчанию

ввёл 10 .... время выполнения -46297
толи я дурак.. толи лыжи не едут. delphi 2010
Если вам человек помог, не стесняйтесь говорить спасибо (весы под аватаром)
BARNEY вне форума Ответить с цитированием
Старый 19.03.2010, 13:52   #6
DeKot
Участник клуба
 
Аватар для DeKot
 
Регистрация: 12.08.2008
Сообщений: 1,977
По умолчанию

Цитата:
ввёл 10 .... время выполнения -46297
Есть такая фича. Происходит, если интервал измерения попадает на конец минуты и начало следующей минуты (засечки времени берутся в формате "сек + мсек" . Можно изменить на "мин + сек + мсек".
Прога не для практической работы, а отработка метода.
Попробуйте несколько попыток.
И не сомневайся даже ... отдых - кайф, работа - лажа!
DeKot вне форума Ответить с цитированием
Старый 19.03.2010, 14:40   #7
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

Цитата:
BARNEY
написал так...
а кто будет...
Цитата:
//перед началом операций делаем засечку
gl:= gettickcount;
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 19.03.2010, 14:43   #8
BARNEY
Участник клуба
 
Регистрация: 23.04.2009
Сообщений: 1,058
По умолчанию

raxp
Это само собой написал Но всё равно -10000 время
Если вам человек помог, не стесняйтесь говорить спасибо (весы под аватаром)
BARNEY вне форума Ответить с цитированием
Старый 19.03.2010, 14:51   #9
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

покажите всю процедуру где нужно мерять...
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 19.03.2010, 16:20   #10
BARNEY
Участник клуба
 
Регистрация: 23.04.2009
Сообщений: 1,058
По умолчанию

Код:
fdm.Qtest.SQL.Text := 'select * from REESTR where OGRN='''+OGRN+''' and NUM_S='''+ComboBox2.Text+''' ';
fdm.Qtest.Active := True;

ErrForm.Gauge1.MinValue := 0;
fdm.Qtest.Last;
ErrForm.Gauge1.MaxValue := fdm.Qtest.RecordCount;
ErrForm.Gauge1.Progress := 0;
fdm.Qtest.First;
ErrForm.Show;
// нужно узнать сколько ещё времени будет выполняться цикл
while (not fdm.Qtest.Eof) do
begin
 try
  begin
  if  (Err.dat)        then
  if  (Err.Check14)    then
  if  (Err.Check13)    then
  if  (Err.Check12)    then
  if  (Err.Udovletv)   then
  if  (err.otcPeriud)  then
  if  (Err.extrpom)    then
  if  (err.CodObr)     then
  if  (err.nevCodObr)  then
  if  (Err.SEX)        then
  if  (Err.MKB)        then
  if  (Err.Check1)     then
  if  (Err.Check15)     then
  if  (Err.Check16)     then
  if  (Err.Check17)     then
  if  (Err.Check18)     then
  if  (Err.Check19)     then
  if  (Err.Check20)     then
  if  (Err.Check21)     then
  if  (Err.Check22)     then
  if  (Err.Check23)     then
  if  (Err.Check24)     then
  if  (Err.Check2)     then
  if  (Err.Check3)     then
  if  (Err.sex_g)      then
  if  (Err.sex_m)      then
  if  (Err.Check4)     then
  if  (Err.Check5)     then
  if  (Err.Check6)     then
  if  (Err.Check7)     then
  if  (Err.Check8)     then
  if  (Err.Check9)     then
  if  (Err.sex_g1)     then
  if  (Err.SeriesNeRab)then
  if  (Err.Check10)    then
  if  (Err.Check11)    then
  if  (Err.Check25)     then
  if  (Err.Check26)     then
  if  (Err.Check27)     then
  if  (Err.Check28)     then
  if  (Err.Check28)     then
  if  (Err.Check29)     then
  if  (Err.Check30)     then
  if  (Err.Check31)     then
  if  (Err.Check32)     then
  if  (Err.Check33)     then
  if  (Err.Check34)     then
  if  (Err.Check35)     then
  if  (Err.Check36)     then
  if  (Err.Check37)     then
  if  (Err.Check38)     then
  if  (Err.Check39)     then
  if  (Err.Check40)     then
  if  (Err.Check41)     then
  if  (Err.Check42)     then
  if  (Err.Check43)     then
  if  (Err.Check44)     then
  if  (Err.Check45)     then
  if  (Err.Check46)     then
  if  (Err.Check47)     then
  if  (Err.Check48)     then
  if  (Err.Check49)     then
  if  (Err.Check50)     then
  if  (Err.Check51)     then
  if  (Err.Check52)     then
  if  (Err.Check53)     then
  if  (Err.Check54)     then
  if  (Err.Check55)     then
  if  (Err.Check56)     then
  if (Err.Duble)       then
  if (Err.Duble1)      then
  if (Err.Duble2)      then
      Err.Duble3;


  fdm.Qtest.Next;
  end;
  except
  ShowMessage(IntToStr(ErrForm.Gauge1.Progress)+' Ошибка 0_О');
  ErrForm.Hide;
 end;
ErrForm.Gauge1.Progress:=ErrForm.Gauge1.Progress+1;
end;
ну что есть идеи?
как посчитать сколько будет делаться while
Если вам человек помог, не стесняйтесь говорить спасибо (весы под аватаром)

Последний раз редактировалось Stilet; 22.03.2010 в 09:04.
BARNEY вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Расчёт времени и денег Wirm Microsoft Office Excel 1 27.07.2009 00:31
смена данных по времени на форме Girl Общие вопросы Delphi 23 15.05.2009 05:48
Помогите с фиксацией времени вывода данных zander Microsoft Office Excel 2 03.03.2009 19:58
Програмка выгрузки данных из Веб gleby4 Фриланс 4 27.02.2009 13:31
Импорт внешних данных, синхронизация по времени slba Microsoft Office Excel 3 15.07.2008 13:05