Привет всем программистом и тем кто хочет им стат!!! у меня вопрос такого рода в прикрепленним файле структура нетипизированного файла я попробовал и получилос вот такой код Код | 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
|
код в принципе рабочий, но если у вас будеть мнение по этому поводу я был би рад их услишать а в данном случаи почитат
Присоединённый файл ( Кол-во скачиваний: 2 )
________________tm_retxx.dat.pdf 32,39 Kb
|