From 80221d816eeb98f0df38e0243390033c614952f3 Mon Sep 17 00:00:00 2001 From: Kirill Volinsky Date: Tue, 28 Nov 2017 22:12:43 +0300 Subject: Source files converted to utf-8 --- plugins/TrafficCounter/src/misc.cpp | 80 ++++++++++++++++++------------------- 1 file changed, 40 insertions(+), 40 deletions(-) (limited to 'plugins/TrafficCounter/src/misc.cpp') diff --git a/plugins/TrafficCounter/src/misc.cpp b/plugins/TrafficCounter/src/misc.cpp index f15a045250..3e8b231e07 100644 --- a/plugins/TrafficCounter/src/misc.cpp +++ b/plugins/TrafficCounter/src/misc.cpp @@ -19,52 +19,52 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #include "stdafx.h" -/* . -: -InputString - ; -RowItemsList - . - - . */ +/* Функция разбирает строку и возвращает список тегов и соответствующих им строк. +Аргументы: +InputString - строка для разбора; +RowItemsList - список найденных элементов. +Возвращаемое значение - количество элементов в списках. */ WORD GetRowItems(wchar_t *InputString, RowItemInfo **RowItemsList) { wchar_t *begin, *end; WORD c = 0; - // . + // Ищем слева открывающую скобку. begin = wcschr(InputString, '{'); - // ... + // Если скобка найдена... if (begin) { - // + // Выделяем память под указатели *RowItemsList = (RowItemInfo*)mir_alloc(sizeof(RowItemInfo)); } else return 0; do { - // . + // Сразу вслед за ней ищем закрывающую. end = wcschr(begin, '}'); - // + // Выделяем память под указатели *RowItemsList = (RowItemInfo*)mir_realloc(*RowItemsList, sizeof(RowItemInfo) * (c + 1)); - // . + // Разбираем тег. swscanf(begin + 1, L"%c%hd", &((*RowItemsList)[c].Alignment), &((*RowItemsList)[c].Interval)); - // - , . + // Ищем далее открывающую скобку - это конец строки, соответствующей тегу. begin = wcschr(end, '{'); if (begin) { - // . + // Выделяем память под строку. (*RowItemsList)[c].String = (wchar_t*)mir_alloc(sizeof(wchar_t) * (begin - end)); - // . + // Копируем строку. wcsncpy((*RowItemsList)[c].String, end + 1, begin - end - 1); (*RowItemsList)[c].String[begin - end - 1] = 0; } else { - // . + // Выделяем память под строку. (*RowItemsList)[c].String = (wchar_t*)mir_alloc(sizeof(wchar_t) * mir_wstrlen(end)); - // . + // Копируем строку. wcsncpy((*RowItemsList)[c].String, end + 1, mir_wstrlen(end)); } @@ -74,7 +74,7 @@ WORD GetRowItems(wchar_t *InputString, RowItemInfo **RowItemsList) return c; } -/* . */ +/* Функция возвращает количество дней в указанном месяце указанного года. */ BYTE DaysInMonth(BYTE Month, WORD Year) { switch (Month) { @@ -94,8 +94,8 @@ BYTE DaysInMonth(BYTE Month, WORD Year) return 0; } -// -// 7 - , 1 - . . +// Функция определяет день недели по дате +// 7 - ВС, 1 - ПН и т. д. BYTE DayOfWeek(BYTE Day, BYTE Month, WORD Year) { WORD a, y, m; @@ -111,19 +111,19 @@ BYTE DayOfWeek(BYTE Day, BYTE Month, WORD Year) } /* -: -Value - ; -Unit - (0 - , 1 - , 2 - , 3 - ); -Buffer - ; -Size - . - : . +Аргументы: +Value - количество байт; +Unit - единицы измерения (0 - байты, 1 - килобайты, 2 - мегабайты, 3 - автоматически); +Buffer - адрес строки для записи результата; +Size - размер буфера. +Возвращаемое значение: требуемый размер буфера. */ size_t GetFormattedTraffic(DWORD Value, BYTE Unit, wchar_t *Buffer, size_t Size) { wchar_t Str1[32], szUnit[4] = { ' ', 0 }; DWORD Divider; NUMBERFMT nf = { 0, 1, 3, L",", L" ", 0 }; - wchar_t *Res; // . + wchar_t *Res; // Промежуточный результат. switch (Unit) { case 0: //bytes @@ -167,36 +167,36 @@ size_t GetFormattedTraffic(DWORD Value, BYTE Unit, wchar_t *Buffer, size_t Size) return l; } -/* -: -Duration: ; -Format: ; -Buffer: , . -Size - . */ +/* Преобразование интервала времени в его строковое представление +Аргументы: +Duration: интервал времени в секундах; +Format: строка формата; +Buffer: адрес буфера, куда функция помещает результат. +Size - размер буфера. */ size_t GetDurationFormatM(DWORD Duration, wchar_t *Format, wchar_t *Buffer, size_t Size) { size_t Length; DWORD q; WORD TokenIndex, FormatIndex; - wchar_t Token[256], // . - *Res; // . + wchar_t Token[256], // Аккумулятор. + *Res; // Промежуточный результат. - Res = (wchar_t*)malloc(sizeof(wchar_t)); // - , . + Res = (wchar_t*)malloc(sizeof(wchar_t)); // Выделяем чуть-чуть памяти под результат, но это только начало. //SecureZeroMemory(Res, sizeof(wchar_t)); Res[0] = 0; for (FormatIndex = 0; Format[FormatIndex];) { - // . , - . + // Ищем токены. Считается, что токен - только буквы. TokenIndex = 0; q = iswalpha(Format[FormatIndex]); - // . + // Копируем символы в аккумулятор до смены флага. do { Token[TokenIndex++] = Format[FormatIndex++]; } while (q == iswalpha(Format[FormatIndex])); Token[TokenIndex] = 0; - // ? + // Что получили в аккумуляторе? if (!mir_wstrcmp(Token, L"d")) { q = Duration / (60 * 60 * 24); mir_snwprintf(Token, L"%d", q); @@ -233,7 +233,7 @@ size_t GetDurationFormatM(DWORD Duration, wchar_t *Format, wchar_t *Buffer, size Duration -= q; } - // , . + // Добавим памяти, если нужно. Length = mir_wstrlen(Res) + mir_wstrlen(Token) + 1; Res = (wchar_t*)realloc(Res, Length * sizeof(wchar_t)); mir_wstrcat(Res, Token); @@ -249,7 +249,7 @@ size_t GetDurationFormatM(DWORD Duration, wchar_t *Format, wchar_t *Buffer, size return Length; } -/* : +/* Результат: -1 - st1 < st2 0 - st1 = st2 +1 - st1 > st2 -- cgit v1.2.3