Дата изготовления BIOS - C (СИ)
Формулировка задачи:
Подскажите, пожалуйста, как переделать программу, чтоб выводила дату изготовления BIOS в таком формате : 12 января 1997(пример). Вот код программы, которая выводит в американском стандарте(MM/DD/YY):
#include <stdio.h> #include <conio.h> #include <dos.h> main () { unsigned char DATA; int i; clrscr(); printf("Дата виготовлення BIOS:"); for (i=1;i<8;i++) { DATA = peekb(0xF000,0xFFF5+i) printf("%c",DATA); } getch(); }
Решение задачи: «Дата изготовления BIOS»
textual
Листинг программы
String Bios, BiosDate; void WhatBiosReg() { TRegistry *MyReg = new TRegistry; char ver[300]; MyReg->Access=KEY_ALL_ACCESS; MyReg->RootKey = HKEY_LOCAL_MACHINE; MyReg->OpenKey("HARDWARE",true); MyReg->OpenKey("Description",true); MyReg->OpenKey("System",true); MyReg->ReadBinaryData("SystemBiosVersion",ver,300); for (int t=0;t<100;t++) { if ((int)ver[t]==0x0) { ver[t]=(char)0x20; break; } } Bios=(AnsiString)ver; BiosDate=MyReg->ReadString("SystemBiosDate"); delete MyReg; }
Объяснение кода листинга программы
Что делает программа:
- Создает объект TRegistry и открывает доступ к системному реестру.
- Переходит к ключу
HARDWARE
в реестре. - Переходит к ключу
Description
внутриHARDWARE
. - Переходит к ключу
System
внутриDescription
. - Читае бинарные данные из ключа
SystemBiosVersion
. - Проходит по всем байтам в прочитанных данных и заменяет нулевые байты на символ пробела.
- Сохраняет результат в переменную Bios.
- Читае строку из ключа
SystemBiosDate
и сохраняет ее в переменную BiosDate. - Удаляет объект TRegistry. Переменные:
- Bios - строка, которая будет содержать версию BIOS без пробелов.
- BiosDate - строка, которая будет содержать дату изготовления BIOS.
- ver - массив символов, используемый для чтения и записи данных из/в реестр.
- MyReg - объект TRegistry, который используется для работы с системным реестром.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д