Добавил:
PaniKati
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:лабораторные / лаб3 / Lab
.c#include <windows.h>
#include <stdio.h>
#include <winerror.h.>
#include <locale.h>
void main()
{char buffer[100]="";
DWORD len, actlen, dwFileSize;
HANDLE hstdout, fhandle;
char fname[ ]="test.txt";
BOOL rc, open;
COORD cd_1;
cd_1.X=50;
cd_1.Y=0;
const DWORD size = 100+1;
WCHAR lpszBuffer[size];
len = strlen(buffer); // вычисляет длину текста в буфере
hstdout = GetStdHandle(STD_OUTPUT_HANDLE);
if (hstdout == INVALID_HANDLE_VALUE) return;
do
{ fhandle=CreateFile(fname, GENERIC_READ, 0, NULL,OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
if (fhandle ==INVALID_HANDLE_VALUE)
{
//русский язык
setlocale(LC_ALL, "Rus");
system("cls");
DWORD Err= GetLastError();
//ДОБАВИТЬ ОБРАБОТКУ СОБЫТИЯ ЕСЛИ ФАЙЛА ТЕКСТОВОГО НЕТ
SetConsoleCursorPosition(hstdout,cd_1);
SetConsoleTextAttribute(hstdout,FOREGROUND_INTENSITY|FOREGROUND_RED);
// тут я это и добавляю, на русском языке будет
FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, NULL, Err, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPTSTR)&lpszBuffer, size, NULL);
printf("Error Code: %d\nError Name: %s", Err, lpszBuffer);
Sleep(2000);
open=FALSE;
}
else open =TRUE;
} while (open == FALSE);
system("cls");
SetConsoleCursorPosition(hstdout,cd_1);
SetConsoleTextAttribute(hstdout, FOREGROUND_INTENSITY|FOREGROUND_BLUE);
rc=ReadFile(fhandle, buffer+len, 80, &actlen, NULL);
if (!rc) return;
WriteFile(hstdout, buffer, len+actlen, &actlen, NULL);
getchar();
CloseHandle(fhandle);
}