Если всегда соблюдается есть пара значений а1:а2(не одно не может біть пропущенно, то можно использовать код
Код | #include <windows.h> #include <tchar.h> #include <list> using namespace std;
list<TCHAR*> buf1, buf2;
BOOL ReadAndSplit(TCHAR* name) //name - имя файла из которого читаются строки { BOOL res = TRUE; HANDLE h = CreateFile(name, GENERIC_READ, FILE_SHARE_READ, 0, OPEN_EXISTING, 0, 0); TCHAR* buf = new TCHAR[]; if(h == INVALID_HANDLE_VALUE) { res = FALSE; } if(res) { DWORD* dwSize = new DWORD; DWORD size = SetFilePointer(h, 0, 0, FILE_END); SetFilePointer(h, 0, 0, FILE_BEGIN); res = ReadFile(h, buf, size, dwSize, 0); delete dwSize; CloseHandle(h); } if(res) { TCHAR* tmp = _tcstok(buf, _T(":")); buf1.push_back(tmp); tmp = _tcstok(NULL, _T("\n")); buf2.push_back(tmp); while(true) { tmp = _tcstok(NULL, _T(":")); if(tmp == NULL) { break; } buf1.push_back(tmp); tmp = _tcstok(NULL, _T("\n")); buf2.push_back(tmp); } } return res; }
|
|