Пример #1
0
void DB::praseModel() {
    fstream rdmodel;
    rdmodel.open((this->tablePath + MODEL_FILE_NAME).data(),
            ios::in | ios::binary);
    rdmodel.seekg(32);
    char temp[4];
    //读属性总数
    rdmodel.read(temp, 4);
    int model_num = ChartoInt(temp);

    Model *p = new Model[model_num + 1];

    p[model_num].no = -1;
    // 读一个元组的大小
    rdmodel.read(temp, 4);
    p[model_num].size = ChartoInt(temp);

    this->model = p;

    for (int i = 0; i < model_num; i++) {
        //读属性名
        rdmodel.seekg(64 + 64 * i);
        rdmodel.read(p[i].name, 32);
        rdmodel.read(temp, 4);
        p[i].type = ChartoInt(temp);
        rdmodel.read(temp, 4);
        p[i].size = ChartoInt(temp);
        p[i].no = i;
    }

    rdmodel.close();
}
Пример #2
0
void Unhexify(
    _Inout_ PBYTE outdata,
    _In_ LPTSTR instr // outdata must be able to receive strlen(instr)/2 bytes
    ) {
    DWORD i = 0;
    size_t len = _tcslen(instr) / 2;
    for (i = 0; i < len; i++) {
        outdata[i] = 16 * ChartoInt(instr[(2 * i) + 0]) + ChartoInt(instr[(2 * i) + 1]);
    }
}