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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.11.2007, 11:30   #1
Cantana
форвард
Форумчанин
 
Аватар для Cantana
 
Регистрация: 03.08.2007
Сообщений: 130
По умолчанию время в Delphi

Привет ВСЕМ

в программа чтобы ввести время я ползуюс с MaskEdit
Код:
  st:=ed_time.Text+'/'+DateToStr(DateTimePicker1.Date);
  if vremya[b2]=st then da:=true;
  st:=MaskEdit1.Text+'/'+DateToStr(DateTimePicker1.Date);
  if vremya[b2]=st then da:=false;
тут два проблема
1. когда в другом компе запускаеш и там дата к примеру 11.12.2007 а у меня 12.11.2007
2. не могу с MaskEdit а время в секунды перевести
dela ne v dengax a v yego kolichestve
Cantana вне форума Ответить с цитированием
Старый 12.11.2007, 15:12   #2
Cantana
форвард
Форумчанин
 
Аватар для Cantana
 
Регистрация: 03.08.2007
Сообщений: 130
По умолчанию

ладно постовлю вопрос по другому
тут структура файла
и вот код где я с него беру значение
Код:
procedure TTM_RET.bb_okClick(Sender: TObject);
var
i,k,k8,b2,b,e:integer;
mas:array[1..2160]of integer;
s,st:string;
da:boolean;
//qator:integer;
begin
  Cursor:=crHourglass;
     try
    da:=false;
    dm2.ADOQuery1.Active:=false;
    dm2.ADOQuery1.Parameters.ParamByName('linkkey2').Value:=dm2.surov2.Fields[0].Value;
    dm2.ADOQuery1.Parameters.ParamByName('block').Value:=strtoint(Edit1.Text);
    dm2.ADOQuery1.ExecSQL;
    dm2.ADOQuery1.Active:=true;
    dm2.ad_q.Active:=false;
    dm2.ad_q.Parameters.ParamByName('nom').Value:=dm2.ADOQuery1.Fields[3].AsString;
    dm2.ad_q.Parameters.ParamByName('znak').Value:=dm2.ADOQuery1.Fields[2].AsString;
    dm2.ad_q.ExecSQL;
    dm2.ad_q.Active:=true;

 if strtoint(ComboBox1.Text)<=strtoint(ComboBox2.Text) then
 if ComboBox1.ItemIndex<>ComboBox2.ItemIndex then
 begin
 b:=ComboBox1.ItemIndex;
 e:=ComboBox2.ItemIndex;
 for k:=b to e do
  begin
  ComboBox1.ItemIndex:=k;
  s:=ComboBox1.Text;
  AssignFile(UntypedFile, 'TM_RET'+s+'.DAT');
  Reset(UntypedFile,1);

  TotalRead:=0;
  FSize:=filesize(UntypedFile);
  b2:=0;
  k8:=StrToInt(Edit1.Text);
  SetLength(dmas,FSize div 1407);
  SetLength(mas2,FSize div 1407);
  setlength(vremya,2*FSize div 1407);
 repeat
 Seek(UntypedFile,b2*1407);
 BlockRead(UntypedFile,dBuffer,7,BytesRead);
 i:=0;
 if  dbuffer[i+5]<>0 then
 begin
        // время опроса присваеваеться в массив
 dmas[b2]:=dbuffer[i]*360+dbuffer[i+1]*60+dbuffer[i+2]+(dbuffer[i+3]-1)*360*24;//+DaysInAYear(dbuffer[i+4]-1)*24*360;


 if dbuffer[i]<10 then vremya[b2]:='0'+floattostr(dbuffer[i]) //+':'+FloatToStr(dbuffer[i+1])+':'+floattostr(dbuffer[i+2])+'/'+floattostr(dbuffer[i+3])+'.'+floattostr(dbuffer[i+4])+'.'+floattostr(-15)+FloatToStr(dbuffer[i+6]);
 else vremya[b2]:=floattostr(dbuffer[i]);
 if dbuffer[i+1]<10 then vremya[b2]:=vremya[b2]+':0'+FloatToStr(dbuffer[i+1])//+':'+floattostr()+'/'+floattostr()+'.'+floattostr(dbuffer[i+4])+'.'+floattostr(dbuffer[i+5]-15)+FloatToStr(dbuffer[i+6]);
 else  vremya[b2]:=vremya[b2]+':'+FloatToStr(dbuffer[i+1]);
 if   dbuffer[i+2]<10 then vremya[b2]:=vremya[b2]+':0'+FloatToStr(dbuffer[i+2])
 else vremya[b2]:=vremya[b2]+':'+FloatToStr(dbuffer[i+2]);
 if dbuffer[i+3]<10 then vremya[b2]:=vremya[b2]+'/'+'0'+FloatToStr(dbuffer[i+3])
 else vremya[b2]:=vremya[b2]+'/'+FloatToStr(dbuffer[i+3]);
 if dbuffer[i+3]<10 then vremya[b2]:=vremya[b2]+'.'+'0'+FloatToStr(dbuffer[i+4])
 else vremya[b2]:=vremya[b2]+'.'+FloatToStr(dbuffer[i+4]);

 vremya[b2]:=vremya[b2]+'.'+floattostr(dbuffer[i+5]-15)+FloatToStr(dbuffer[i+6]);
 end;
  Seek(UntypedFile,k8*7+b2*1407);
  BlockRead(UntypedFile,Buffer,sizeof(buffer),BytesRead);

  mas2[b2]:=buffer[i];
  Cursor:=crsqlwait;
 st:=ed_time.Text+'/'+DateToStr(DateTimePicker1.Date);
  if vremya[b2]=st then da:=true;
  st:=MaskEdit1.Text+'/'+DateToStr(DateTimePicker1.Date);
  if vremya[b2]=st then da:=false;


  if da then begin
       if dmas[b2]<>0 then begin
                             dm2.insert.Parameters.ParamByName('data').Value:=dmas[b2];
                             dm2.insert.Parameters.ParamByName('energobyekt').Value:=dm2.ad_q.Fields[0].AsInteger;
                             dm2.insert.Parameters.ParamByName('znach').Value:=mas2[b2];
                             dm2.insert.ExecSQL;
                           end;


         if mas2[b2]<>mas2[b2-1] then
                          begin
                             mas[b2]:=dmas[b2];
                             dm2.ins_jimm.Parameters.ParamByName('data').Value:=dmas[b2];
                             dm2.ins_jimm.Parameters.ParamByName('energobyekt').Value:=dm2.ad_q.Fields[0].AsInteger;
                             dm2.ins_jimm.Parameters.ParamByName('znach').Value:=mas2[b2];
                             dm2.ins_jimm.ExecSQL;
                          end;


             end;
     b2:=b2+1;
    until b2=2160;
   end;
  end
и тут у меня проблема
программа работает вопросов нет. просто не знаю оптимизировать чтоли надо помогите люди добрые
Вложения
Тип файла: pdf структура файла tm_retxx.dat.pdf (32.4 Кб, 14 просмотров)
dela ne v dengax a v yego kolichestve
Cantana вне форума Ответить с цитированием
Старый 12.11.2007, 15:20   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
1. когда в другом компе запускаеш и там дата к примеру 11.12.2007 а у меня 12.11.2007
Это другие настройки времени, как по мне не особо страшно
Цитата:
2. не могу с MaskEdit а время в секунды перевести
Как переводишь, и что там у тебя в МаскЭдит пишется?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 12.11.2007, 15:28   #4
Cantana
форвард
Форумчанин
 
Аватар для Cantana
 
Регистрация: 03.08.2007
Сообщений: 130
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Это другие настройки времени, как по мне не особо страшно

Как переводишь, и что там у тебя в МаскЭдит пишется?
в MaskEdit у меня 00:00:00
dela ne v dengax a v yego kolichestve
Cantana вне форума Ответить с цитированием
Старый 12.11.2007, 16:07   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну дык, как переводишь?
Можно перевести в минуты и умножить на 60
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 13.11.2007, 06:38   #6
Cantana
форвард
Форумчанин
 
Аватар для Cantana
 
Регистрация: 03.08.2007
Сообщений: 130
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Ну дык, как переводишь?
Можно перевести в минуты и умножить на 60
а подсказать как
p.s:дык это не Асвтсралийская собака нет ?
dela ne v dengax a v yego kolichestve
Cantana вне форума Ответить с цитированием
Старый 13.11.2007, 09:03   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
а подсказать как
Причем тут собака...
Вот смотри например так:
Код:
procedure TForm1.MaskEdit1Change(Sender: TObject);
var secs:integer;
begin
 if s=nil then s:=TStringList.Create;
 s.Delimiter:=':';
 s.DelimitedText:=MaskEdit1.Text;
 if s.Count=3 then
 secs:=StrToIntDef(s[0],0)*3600+StrToIntDef(s[1],0)*60+StrToIntDef(s[2],0);
   caption:=inttostr(secs);
end;
Здесь s - глобальная TStringList
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 13.11.2007, 13:43   #8
Cantana
форвард
Форумчанин
 
Аватар для Cantana
 
Регистрация: 03.08.2007
Сообщений: 130
По умолчанию

Stilet спасибо это было именно то что надо !!!
dela ne v dengax a v yego kolichestve
Cantana вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Системное время???Помогите???(Delphi) Dinarochka Помощь студентам 5 28.05.2008 12:11
Время |{ot Паскаль, Turbo Pascal, PascalABC.NET 4 14.05.2008 17:32
время Женька Помощь студентам 4 21.04.2008 17:07
Время ben95 Общие вопросы Delphi 3 06.01.2008 16:02
Время.. ZhekON Общие вопросы Delphi 6 18.06.2007 16:59