int CreateFormatFile(const char filename[]) { std::fstream file; file.open(filename, std::ios::binary | std::ios::out | std::ofstream::trunc); if (!file) { std::cout << "Не удается открыть файл\n"; return 1; } // Запись пустых данных file.seekg(0, file.beg); for (int i = 0; i < EMPTY_ROWS_COUNT; i++) { contact emptyContact = { "NULL", "NULL", "8( ) - " }; file.write((char*)&emptyContact, sizeof(contact)); } // Запись заполненных данных file.seekg(0, file.end); for (int i = 0; i < TEST_ROWS_COUNT; i++) { contact testContact = {"Nikolai", "Kurilov", ""}; generatePhone(testContact.phone); file.write((char*)&testContact, sizeof(contact)); } printFile(file, filename); // Изменение данных char dataToWrite[NAME_LENGTH] = {}; file.seekg(ROW_LENGTH * 80 + 2 * NAME_LENGTH, file.beg); file.write("8(999)999-9999", PHONE_LENGTH); file.seekg(ROW_LENGTH * 81, file.beg); strcpy_s(dataToWrite, 6, "Aaron"); file.write(dataToWrite, NAME_LENGTH); file.seekg(ROW_LENGTH * 83 + NAME_LENGTH, file.beg); strcpy_s(dataToWrite, 5, "Paul"); file.write(dataToWrite, NAME_LENGTH); file.seekg(ROW_LENGTH * 3 + NAME_LENGTH, file.beg); strcpy_s(dataToWrite, 8, "Johnson"); file.write(dataToWrite, NAME_LENGTH); printFile(file, filename); file.close(); }
bool GenericSkin::init() { const char *dir = getenv("MOSYNCDIR"); if(!dir) return false; if(!sSkinImage) sSkinImage = loadPNGImage((std::string(dir)+"/skins/skinImage.png").c_str()); if(!sSkinImage) return false; if(!sSelectedKeypad) sSelectedKeypad = loadPNGImage((std::string(dir)+"/skins/keypadSelected.png").c_str()); if(!sSelectedKeypad) return false; if(!sUnselectedKeypad) sUnselectedKeypad = loadPNGImage((std::string(dir)+"/skins/keypadUnselected.png").c_str()); if(!sUnselectedKeypad) return false; if(!sMultiTouchImage) sMultiTouchImage = loadPNGImage((std::string(dir)+"/skins/multitouchMarker.png").c_str()); if(!sMultiTouchImage) return false; int w = getWindowWidth(); int h = getWindowHeight(); unselectedPhone = createSurface(w, h); selectedPhone = createSurface(w, h); generatePhone(); int keysX=0, keysY=0; if(mProfile->mKeyboardType == DeviceProfile::DKT_KEYPAD) { keysX = w/2 - sUnselectedKeypad->w/2; keysY = h - sUnselectedKeypad->h - 24; } else if(mProfile->mKeyboardType == DeviceProfile::DKT_JOYSTICK) { keysX = w/2 - sUnselectedKeypad->w/2; keysY = h - 74 - 24; } #define OFFSET_X (27-keysX) #define OFFSET_Y (368-keysY) if(mProfile->mKeyboardType == DeviceProfile::DKT_JOYSTICK || mProfile->mKeyboardType == DeviceProfile::DKT_KEYPAD) { keyRects.push_back(KeyRect(MAK_UP, 132-OFFSET_X, 369-OFFSET_Y, 20, 20)); keyRects.push_back(KeyRect(MAK_RIGHT, 159-OFFSET_X, 399-OFFSET_Y, 10, 20)); keyRects.push_back(KeyRect(MAK_DOWN, 132-OFFSET_X, 426-OFFSET_Y, 12, 10)); keyRects.push_back(KeyRect(MAK_LEFT, 107-OFFSET_X, 399-OFFSET_Y, 10, 20)); keyRects.push_back(KeyRect(MAK_SOFTLEFT, 32-OFFSET_X, 378-OFFSET_Y, 80, 23)); keyRects.push_back(KeyRect(MAK_SOFTRIGHT, 164-OFFSET_X, 378-OFFSET_Y, 80, 23)); keyRects.push_back(KeyRect(MAK_FIRE, 120-OFFSET_X, 387-OFFSET_Y, 36, 36)); keyRects.push_back(KeyRect(MAK_CLEAR, 222-OFFSET_X, 500-OFFSET_Y, 26, 60)); } if(mProfile->mKeyboardType == DeviceProfile::DKT_KEYPAD) { keyRects.push_back(KeyRect(MAK_1, 54-OFFSET_X, 451-OFFSET_Y, 55, 23)); keyRects.push_back(KeyRect(MAK_2, 110-OFFSET_X, 451-OFFSET_Y, 55, 23)); keyRects.push_back(KeyRect(MAK_3, 166-OFFSET_X, 451-OFFSET_Y, 55, 23)); keyRects.push_back(KeyRect(MAK_4, 54-OFFSET_X, 476-OFFSET_Y, 55, 23)); keyRects.push_back(KeyRect(MAK_5, 110-OFFSET_X, 476-OFFSET_Y, 55, 23)); keyRects.push_back(KeyRect(MAK_6, 166-OFFSET_X, 476-OFFSET_Y, 55, 23)); keyRects.push_back(KeyRect(MAK_7, 54-OFFSET_X, 501-OFFSET_Y, 55, 23)); keyRects.push_back(KeyRect(MAK_8, 110-OFFSET_X, 501-OFFSET_Y, 55, 23)); keyRects.push_back(KeyRect(MAK_9, 166-OFFSET_X, 501-OFFSET_Y, 55, 23)); keyRects.push_back(KeyRect(MAK_STAR, 54-OFFSET_X, 526-OFFSET_Y, 55, 23)); keyRects.push_back(KeyRect(MAK_0, 110-OFFSET_X, 526-OFFSET_Y, 55, 23)); keyRects.push_back(KeyRect(MAK_HASH, 166-OFFSET_X, 526-OFFSET_Y, 55, 23)); } screenRect.x = w/2 - mProfile->mScreenWidth/2; screenRect.y = 24; screenRect.w = mProfile->mScreenWidth; screenRect.h = mProfile->mScreenHeight; windowRect.x = 0; windowRect.y = 0; windowRect.w = w; windowRect.h = h; return true; }