void StoredData::Do(HWND h) { SaveData o(h); if(o()) { FILE *f = _wfopen(o.sFile, L"wb+"); close_file c_f(f); if(NULL != f) { HeadStoredData head; head.countZones = primaryData.countZones; dprint("head.countZones = primaryData.countZones; %d", head.countZones); head.countSensors = count_sensors; head.frameStartTime = primaryData.frameStartTime; // head.trimOffset = primaryData.trimOffset; if(1 == fwrite(&head, sizeof(head), 1, f)) { if(1 == fwrite(primaryData.realOffsetTime, sizeof(primaryData.realOffsetTime), 1, f)) if(1 == fwrite(primaryData.indexOffsetZone, sizeof(primaryData.indexOffsetZone), 1, f)) { char buf[1024]; int k = 0; const int count = primaryData.Filling(); for(int i = 0; i < int(count / dimention_of(buf)); ++i) { for(int j = 0; j < dimention_of(buf); ++j) { buf[j] = (char)primaryData.buffer[k++]; } fwrite(buf, 1, sizeof(buf), f); } int z = 0; for(; k < count; ++z, ++k) { buf[z] = (char)primaryData.buffer[k]; } if(z > 0) fwrite(buf, 1, z, f); return; } } MessageBox(0, L"‘айл не сохранЄн", L"ќшибка !!!", MB_ICONERROR); } } }
bool LoadData::Do(HWND h) { OpenData o(h); if(o()) { FILE *f = _wfopen(o.sFile, L"rb"); close_file c_f(f); if(NULL != f) { HeadStoredData head; if(1 == fread(&head, sizeof(head), 1, f)) { primaryData.countZones = head.countZones; int count = fread(primaryData.offsetOfZones, sizeof(primaryData.offsetOfZones[0]), dimention_of(primaryData.offsetOfZones), f); char buf[1024]; //int &k = const_cast<int &>(primaryData.currentOffset); int k = 0;//primaryData.GetCurrentOffset(); for(;;) { int count = fread(buf, 1, sizeof(buf), f); if(0 == count) break; { for(int i = 0; i < count; ++i) { primaryData.buffer[k++] = buf[i]; } } } /* primaryData.SetCurrentOffset(k / ( count_sensors * Singleton<LanParametersTable>::Instance().items.get<NumberPackets>().value * Singleton<LanParametersTable>::Instance().items.get<PacketSize>().value ) ); */ primaryData.SetCurrentOffset(k); if(k)return true; } } } MessageBox(0, L"‘айл не загружен", L"ќшибка !!!", MB_ICONERROR); return false; }
void LoadData::Do(HWND h) { OpenData o(h); if(o()) { FILE *f = _wfopen(o.sFile, L"rb"); close_file c_f(f); if(NULL != f) { HeadStoredData head; if(1 == fread(&head, sizeof(head), 1, f)) { primaryData.countZones = head.countZones; fread(primaryData.realOffsetTime, sizeof(primaryData.realOffsetTime), 1, f); int count = fread(primaryData.indexOffsetZone, sizeof(primaryData.indexOffsetZone), 1, f); primaryData.frameStartTime = head.frameStartTime; char buf[1024 * 16]; int k = 0; for(;;) { int count = fread(buf, 1, sizeof(buf), f); if(0 == count) break; { for(int i = 0; i < count; ++i) { primaryData.buffer[k++] = buf[i]; } } } primaryData.SetCurrentOffset(k); if(k) { Recalculation::Do(NULL); return; } } } MessageBox(0, L"‘айл не загружен", L"ќшибка !!!", MB_ICONERROR); } }
int evaluate(int t) { int err = 0; /* switch on lookup */ switch(t) { case '+': case '-': case '*': case '/': /* binaere rechenoperation */ /* wenn fehlerwert zurueckgegeben wird wird die fehlerroutine aufgerufen */ if((err = binop_f(t))) error(err); break; /* stack metafunctionen */ case 'p': if((err = p_f())) error(err); break; case 'f': if((err = f_f())) error(err); break; case 'c': if((err = c_f())) error(err); break; case 'd': if((err = d_f())) error(err); break; case 'r': if((err = r_f())) error(err); break; /* EOS fuer stdin oder 'q' -> quit */ case EOF: printf("Reached end of input.\n"); case 'q': printf("Goodbye.\n"); return FALSE; default: /* wenn lookup whitespace ist, ignorieren */ if(isws(t)) ; /* andernfalls wenn lookup eine ziffer ist zahl einlesen und auf den stack legen */ else if(isnum(t)) { uint v = 0; if((err = read_int(&v)) || (err = stack_push(v))) { error(err); } /* recursion damit der lookup nach einlesen der zahl nicht in main ueberschrieben wird. */ return evaluate(lookup(NULL)); } /* andernfalls ist ein unbekannter befehl eingelesen worden */ else { error(ERR_MAIN_UNKNOWN); } } return TRUE; }