{
tmp = data[(i-1)*cols + j];
data[(i-1)*cols + j] = data[i*cols + j];
data[i*cols + j] = tmp;
}
exchange = true;
}
for (i=0; i<cnt; i++)
for (j=0; j<cols; j++)
{
lvi.iItem = i;
lvi.iSubItem = j;
lvi.pszText = (TCHAR*)data[i*cols + j];
ListView_SetItem(hWnd, &lvi);
free(data[i*cols + j]);
}
free(data);
}
// сохранение результатов поиска в файл
void save_result(TCHAR * name, HWND hWnd, int cols)
{
HANDLE hFile;
DWORD bytes_write;
// открытие файла; при его отсутствии он будет создан
hFile = CreateFile(name, // create MYFILE.TXT
GENERIC_WRITE, // open for writing
0, // do not share
NULL, // no security
CREATE_ALWAYS, // overwrite existing
FILE_ATTRIBUTE_NORMAL | // normal file
FILE_FLAG_SEQUENTIAL_SCAN, // asynchronous I/O
NULL); // no attr. template
if (hFile == INVALID_HANDLE_VALUE)
error_msg("Ошибка при открытии файла !");
else
{
TCHAR buf[256];
TCHAR line[1024];
LV_ITEM lvi;
lvi.mask = LVIF_TEXT;
lvi.pszText = buf;
lvi.cchTextMax = sizeof(buf);
// получение количества рядов в списке
int items = ListView_GetItemCount(hWnd);
for (lvi.iItem=0; lvi.iItem < items; lvi.iItem++)
{
line[0] = '\0';
for (lvi.iSubItem = 0; lvi.iSubItem < cols; lvi.iSubItem++)
{
// получение элемента списка
ListView_GetItem(hWnd, &lvi);
lstrcat(line, "\t");
lstrcat(line, buf);
}
lstrcat(line, "\n");
// запись ряда в файл
WriteFile(hFile, line, lstrlen(line), &bytes_write, NULL);
}
}
// закрытие файла
CloseHandle(hFile);
}
Файл gui\main_wnd.c :
#include "..\CORE\main.h"
/* Обработчик сообщений главного окна приложения */
LRESULT CALLBACK MainWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
int wmId, wmEvent;
wmId = LOWORD(wParam);
wmEvent = HIWORD(wParam);
switch (message)
{
case WM_CREATE:
break;
case WM_COMMAND:
/* обработка сообщений от меню */
switch (wmId)
{
case IDM_EXIT:
PostQuitMessage(0);
break;
case IDM_ABOUT:
DialogBox (hInstance, (LPCTSTR)IDD_ABOUT, hWnd, (DLGPROC)AboutWndProc);
break;
case IDM_SEARCH:
DialogBox (hInstance, (LPCTSTR)IDD_SEARCH, hWnd, (DLGPROC)SearchWndProc);
break;
case IDM_SQL_CMD:
DialogBox(hInstance, (LPCTSTR)IDD_SQL_CMD, hWnd, (DLGPROC)SQLWndProc);
break;
case IDM_VIEW_RESULT:
if (hResultsWnd == 0)
{
column_t table1[] =
{
{"ID", CT_CONST, 30, 0, 0},
{"Название", CT_TEXT, 100, 0, 0},
{"Потр. мощность", CT_TEXT, 120, 0, 0},
{"Макс. температура",CT_TEXT, 120, 0, 0},
{"Макс. влажность", CT_TEXT, 120, 0, 0},
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.