Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> нужна помощ с нетипизированном файлом 
:(
    Опции темы
Cantana
Дата 12.11.2007, 15:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 12.11.2007

Репутация: нет
Всего: нет



Привет всем программистом и тем кто хочет им стат!!! smile 

 у меня вопрос такого рода в прикрепленним файле структура нетипизированного файла
я попробовал и получилос вот такой код
Код
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



код в принципе рабочий, но если у вас будеть мнение по этому поводу я был би рад их услишать а в данном случаи почитат smile 

Присоединённый файл ( Кол-во скачиваний: 2 )
Присоединённый файл  ________________tm_retxx.dat.pdf 32,39 Kb
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0902 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.