Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.63/48: Рейтинг темы: голосов - 48, средняя оценка - 4.63
 Аватар для AnonymC
1183 / 468 / 87
Регистрация: 23.06.2009
Сообщений: 6,390

что то вроде программки,которая проверяет Hosts и лечит

29.10.2009, 19:14. Показов 12095. Ответов 99
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
void main (){
 
int c=0;
FILE *f=fopen("C:\WINDOWS\system32\drivers\etc\hosts", "a");
 
while((c=getc(f))!=EOF){
 
    if(c!="127.0.0.1 localhost"){
        cout<<"File hosts is infected";
f = fopen("C:\WINDOWS\system32\drivers\etc\hosts", "w");
fputs("127.0.0.1 localhost", f);
    }
}
 
fclose(f);
 
}
это мой код,вот на этом месте
if(c!="127.0.0.1 localhost")
я на этом месте не знаю как поступить
надо написать код,ктороый если находит другие строки кроме заводских строк-должен удалять их...как сделать?

Добавлено через 4 минуты
вопрос некорректно задал
в файле есть некий текст,определить,если кроме этого текста есть и другие слова,то удалить весь текст и добавить
127.0.0.1 loaclhost
это мой алгоритмн
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
29.10.2009, 19:14
Ответы с готовыми решениями:

Напишите программу, которая проверяет что строка состоит из чисел и букв вперемешку, используя только эти две команды
На вход какая-то строка, гарантируется что она содержит только буквы и/или цифры (без всяких &quot;-&quot;, &quot;+&quot; и т.д.) На...

Написать функцию, которая проверяет что в строке содержится один пробел после знака препинания, и если нет - вставляет.
Написать функцию, которая проверяет что в строке, переданной в качестве аргумента, содержится один пробел после знака препинания, и если...

Защитник видновс вечно что то лечит. Диск очень греется (до 100Мб/с) 100% загрузка
Вот такое уже 7 дней._. Диск буквально горит Что он ищет? Что там он так удаляет долго, что он делает? Если что то хочу...

99
Эксперт JavaЭксперт С++
 Аватар для M128K145
8384 / 3618 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
30.10.2009, 23:16
Студворк — интернет-сервис помощи студентам
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# (C) Корпорация Майкрософт (Microsoft Corp.), 1993-1999
#
# Это образец файла HOSTS, используемый Microsoft TCP/IP для Windows.
#
# Этот файл содержит сопоставления IP-адресов именам узлов.
# Каждый элемент должен располагаться в отдельной строке. IP-адрес должен
# находиться в первом столбце, за ним должно следовать соответствующее имя.
# IP-адрес и имя узла должны разделяться хотя бы одним пробелом.
#
# Кроме того, в некоторых строках могут быть вставлены комментарии 
# (такие, как эта строка), они должны следовать за именем узла и отделяться
# от него символом '#'.
#
# Например:
#
#      102.54.94.97     rhino.acme.com          # исходный сервер
#       38.25.63.10     x.acme.com              # узел клиента x
 
127.0.0.1       localhost
Вот нормальный текст, в С не силен, но если делать на С++, то считываешь все в string и сравниваешь текст с каким-нибудь эталоном string hosts = "тексту чистого хостса". Если они не совпадают, то выдаешь соответствующее сообщение и перезаписываешь файл
0
 Аватар для AnonymC
1183 / 468 / 87
Регистрация: 23.06.2009
Сообщений: 6,390
30.10.2009, 23:19  [ТС]
M128K145, дык вроде мой код это и делает?...или нет...я просто код не понял до конца..

Добавлено через 40 секунд
>>>
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include <windows.h>
#include <string.h>
#include <string>
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <iostream> 
using namespace std;
 
void main (){
 
FILE * f;
int c=0;
   char mystring [1000]; 
   f = fopen ("D:\\ALEX RESERF\\ALEX\\111.txt" , "r");
 
   if (f == NULL) perror ("Cant open file");
   else {
 
           while((c=getc(f))!=EOF){
 
     fgets (mystring , 200 , f);
     puts (mystring);
         }
 
   }
   cout<<"\nMy\n"<<mystring;
 
fclose (f);
 
system("pause");
 
}
вот этот код
0
 Аватар для Даемоник
42 / 42 / 8
Регистрация: 22.05.2009
Сообщений: 97
30.10.2009, 23:44
Ну фактически программа делает только открытие и вывод файла, но проверки-то нет!

Получается надо создать файл идентичный чистому хосту прочитать его, открыть и прочитать файл хоста, который используется системой( или чем там, я не до конца уловил) и проверить, или жесделать как предложил
M128K145, т.е. добавить проверку на эталон чистого хоста.
0
Эксперт JavaЭксперт С++
 Аватар для M128K145
8384 / 3618 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
31.10.2009, 00:07
МедведЪ,
вот
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#include <string>
#include <iostream> 
#include <fstream>
int main()
{
    setlocale (LC_ALL, "Russian");
    std::string bufStr, curHosts = "", iHosts = "# (C) Корпорация Майкрософт (Microsoft Corp.), 1993-1999\n\
#\n\
# Это образец файла HOSTS, используемый Microsoft TCP/IP для Windows.\n\
#\n\
# Этот файл содержит сопоставления IP-адресов именам узлов.\n\
# Каждый элемент должен располагаться в отдельной строке. IP-адрес должен\n\
# находиться в первом столбце, за ним должно следовать соответствующее имя.\n\
# IP-адрес и имя узла должны разделяться хотя бы одним пробелом.\n\
#\n\
# Кроме того, в некоторых строках могут быть вставлены комментарии \n\
# (такие, как эта строка), они должны следовать за именем узла и отделяться\n\
# от него символом '#'.\n\
#\n\
# Например:\n\
#\n\
#      102.54.94.97     rhino.acme.com          # исходный сервер\n\
#       38.25.63.10     x.acme.com              # узел клиента x\n\
\n\
127.0.0.1       localhost";
    std::ifstream inp("C:\\WINDOWS\\system32\\drivers\\etc\\hosts", std::ios::in);
    
    inp.seekg(0);
    if(!inp)
    {
        std::cout<<"Файла нет\n";
        system("pause");
        return 0;
    }
    while(!inp.eof())
    {
        getline(inp, bufStr, '\n');
        curHosts += bufStr + '\n';
    }   
    inp.close();
    std::cout<<curHosts.replace(0, iHosts.length(), "");
    std::ofstream out("C:\\WINDOWS\\system32\\drivers\\etc\\hosts", std::ios::out);
    out<<iHosts;
    system("pause");
    return 0;
}
то что я говорил, только на C++
0
Эксперт С++
 Аватар для CyBOSSeR
2348 / 1721 / 149
Регистрация: 06.03.2009
Сообщений: 3,675
31.10.2009, 02:50
А что мешает просто без всяких проверок заменить файл hosts на эталонный?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#include <windows.h>
#include <iostream>
#include <locale>
 
int main()
{
  // Устанавливаем русскую кодовую страницу
  setlocale(LC_ALL, "Russian");
 
  // Путь к эталонному файлу hosts
  char hosts_standart_path[MAX_PATH];
 
  // Записываем в hosts_standart_path путь к текущей папке 
  GetCurrentDirectory(MAX_PATH, hosts_standart_path);
 
  // Добавляем к hosts_standart_path имя эталонного файла
  strcat_s(hosts_standart_path, MAX_PATH, "\\hosts_standart");
 
  // Структура для поиска файлов
  WIN32_FIND_DATA wfd;
 
  // Проверяем присутсвует ли эталонный файл в текущей папке, если нет - завершаем программу
  if(FindFirstFile(hosts_standart_path, &wfd) == INVALID_HANDLE_VALUE){
    std::cout << "Эталонный файл hosts не найден. Выполнение программы прекращено." << std::endl;
    
    system("pause");
 
    return 0;
  }
 
  // Путь к файлу hosts
  char hosts_path[MAX_PATH];
 
  // Записываем в hosts_path путь к папке Windows
  GetWindowsDirectory(hosts_path, MAX_PATH);
 
  // Добавляем к hosts_path путь к файлу hosts
  strcat_s(hosts_path, MAX_PATH, "\\System32\\drivers\\etc\\hosts");
 
  // Путь к резервной копии файла hosts
  char hosts_reserve_path[MAX_PATH];
 
  // Записываем в hosts_reserve_path путь к папке Windows
  GetWindowsDirectory(hosts_reserve_path, MAX_PATH);
 
  // Добавляем к hosts_reserve_path путь к резервному файлу hosts
  strcat_s(hosts_reserve_path, MAX_PATH, "\\System32\\drivers\\etc\\hosts_reserve");
 
  // Создаем резервную копию
  CopyFile(hosts_path, hosts_reserve_path, FALSE);
 
  // Заменяем файл hosts на эталонный
  CopyFile(hosts_standart_path, hosts_path, FALSE);
 
  std::cout << "Замена файла hosts успешна произведена." << std::endl
    << "Путь к резервной копии: " << hosts_reserve_path << std::endl;
 
  system("pause");
 
  return 0;
};
Ложим эталонный файл в папку с exe-ником под именем hosts_standart и все работает.

Описание использованных функций (MSDN):
GetCurrentDirectory Function
GetSystemDirectory Function
FindFirstFile Function
strcat, wcscat, _mbscat
0
Эксперт JavaЭксперт С++
 Аватар для M128K145
8384 / 3618 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
31.10.2009, 08:45
CyBOSSeR, а тебе никогда не было интересно было ли дописано там что-нибудь или нет?
0
 Аватар для AnonymC
1183 / 468 / 87
Регистрация: 23.06.2009
Сообщений: 6,390
31.10.2009, 10:02  [ТС]
Цитата Сообщение от CyBOSSeR Посмотреть сообщение
А что мешает просто без всяких проверок заменить файл hosts на эталонный?
дело не в замене,я это уже решил надо просто ПРОВЕРИТЬ!
0
Эксперт С++
 Аватар для CyBOSSeR
2348 / 1721 / 149
Регистрация: 06.03.2009
Сообщений: 3,675
31.10.2009, 14:36
Цитата Сообщение от M128K145 Посмотреть сообщение
CyBOSSeR, а тебе никогда не было интересно было ли дописано там что-нибудь или нет?
Опытный пользователь сам откроет и посмотрит, что там изменилось.
А вот обычному пользователю, который этот hosts ни разу не видел и не знает зачем он нужен, скорее всего, будет не важно были ли внесены изменения или нет, главное чтобы там было только то, что нужно (изначально).
0
 Аватар для AnonymC
1183 / 468 / 87
Регистрация: 23.06.2009
Сообщений: 6,390
31.10.2009, 15:08  [ТС]
Цитата Сообщение от CyBOSSeR Посмотреть сообщение
А вот обычному пользователю, который этот hosts ни разу не видел и не знает зачем он нужен, скорее всего, будет не важно были ли внесены изменения или нет, главное чтобы там было только то, что нужно (изначально).
не знаю к кому адрессовано это,сам я разбираюсь в этом файле,
0
Эксперт С++
 Аватар для CyBOSSeR
2348 / 1721 / 149
Регистрация: 06.03.2009
Сообщений: 3,675
31.10.2009, 16:00
Я же не о тебе говорю, а о потенциальных пользователях программы.
Я так вообще можно проверять не по строкам и по символам.
1. Открываем эталонный файл.
2. Открываем hosts.
3. Пока не достигнем конца первого или второго файла считываем следующий символ из обоих файлов и сравниваем. Если достигнут конец одного из файлов переходим к пункту 6.
4. Если символы идентичны - возвращаемся к пункту 3. Если нет переходим к следующему пункту.
5. Говорим, что hosts инфицирован и заменяем hosts на эталонный файл. Завершаем программу.
6. Поздравляем пользователя - его файл не инфицирован. Завершаем программу.
Вот тебе готовый алгоритм.

Добавлено через 10 минут
Предыдущий мой вариант, но еще и с проверкой:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
#include <windows.h>
#include <iostream>
#include <fstream>
#include <locale>
#include <algorithm>
 
int main()
{
  // Устанавливаем русскую кодовую страницу
  setlocale(LC_ALL, "Russian");
 
  // Путь к эталонному файлу hosts
  char hosts_standart_path[MAX_PATH];
 
  // Записываем в hosts_standart_path путь к текущей папке 
  GetCurrentDirectory(MAX_PATH, hosts_standart_path);
 
  // Добавляем к hosts_standart_path имя эталонного файла
  strcat_s(hosts_standart_path, MAX_PATH, "\\hosts_standart");
 
  std::ifstream hosts_standart(hosts_standart_path);
 
  // Проверяем удалось ли открыть эталонный файл, если нет - завершаем программу
  if(!hosts_standart){
    std::cout << "Эталонный файл hosts не найден. Выполнение программы завершено." << std::endl;
    
    system("pause");
 
    return 0;
  }
 
  // Путь к файлу hosts
  char hosts_path[MAX_PATH];
 
  // Записываем в hosts_path путь к папке Windows
  GetWindowsDirectory(hosts_path, MAX_PATH);
 
  // Добавляем к hosts_path путь к файлу hosts
  strcat_s(hosts_path, MAX_PATH, "\\System32\\drivers\\etc\\hosts");
 
  // Файл hosts
  std::ifstream hosts(hosts_path);
 
  // Если не удалось открыть hosts - завершаем программу
  if(!hosts){
    std::cout << "Файл hosts не найден. Выполнение программы завершено." << std::endl;
 
    system("pause");
 
    return 0;
  }
 
  // Сравниваем содержание файлов, если эквивалентны - завершаем программу
  if(std::equal(std::istream_iterator<char>(hosts_standart), 
    std::istream_iterator<char>(), 
    std::istream_iterator<char>(hosts)))
  {
    std::cout << "Файл hosts не модифицирован. Выполнение прораммы завершено." << std::endl;
    
    system("pause");
 
    return 0;
  }
  else
    std::cout << "Файл hosts модифицирован. Будет произведена замена на эталонный с сохранением резервной копии." << std::endl;
 
 
  // Путь к резервной копии файла hosts
  char hosts_reserve_path[MAX_PATH];
 
  // Записываем в hosts_reserve_path путь к папке Windows
  GetWindowsDirectory(hosts_reserve_path, MAX_PATH);
 
  // Добавляем к hosts_reserve_path путь к резервному файлу hosts
  strcat_s(hosts_reserve_path, MAX_PATH, "\\System32\\drivers\\etc\\hosts_reserve");
 
  // Создаем резервную копию
  CopyFile(hosts_path, hosts_reserve_path, FALSE);
 
  // Заменяем файл hosts на эталонный
  CopyFile(hosts_standart_path, hosts_path, FALSE);
 
  std::cout << "Замена файла hosts успешна произведена." << std::endl
    << "Путь к резервной копии: " << hosts_reserve_path << std::endl;
 
  system("pause");
 
  return 0;
};
0
 Аватар для AnonymC
1183 / 468 / 87
Регистрация: 23.06.2009
Сообщений: 6,390
31.10.2009, 20:55  [ТС]
CyBOSSeR, аа понял для чего эталонныйА нельзя ли содержания этого файла поместить вЧАР?
0
Эксперт С++
 Аватар для CyBOSSeR
2348 / 1721 / 149
Регистрация: 06.03.2009
Сообщений: 3,675
31.10.2009, 21:01
Цитата Сообщение от МедведЪ Посмотреть сообщение
А нельзя ли содержания этого файла поместить вЧАР?
Ты имеешь ввиду открыть эталонный файл и записать его содержание в строку типа char*?
Или просто в коде программы в char* записать эталонное содержание файла (как предлагал M128K145), типа этого:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
char* standart_hosts = "# (C) Корпорация Майкрософт (Microsoft Corp.), 1993-1999\n
#\n
# Это образец файла HOSTS, используемый Microsoft TCP/IP для Windows.\n
#\n
# Этот файл содержит сопоставления IP-адресов именам узлов.\n
# Каждый элемент должен располагаться в отдельной строке. IP-адрес должен\n
# находиться в первом столбце, за ним должно следовать соответствующее имя.\n
# IP-адрес и имя узла должны разделяться хотя бы одним пробелом.\n
#\n
# Кроме того, в некоторых строках могут быть вставлены комментарии \n
# (такие, как эта строка), они должны следовать за именем узла и отделяться\n
# от него символом '#'.\n
#\n
# Например:\n
#\n
#      102.54.94.97     rhino.acme.com          # исходный сервер\n
#       38.25.63.10     x.acme.com              # узел клиента x\n
\n
127.0.0.1       localhost";
Какой из вариантов тебя интересует?
1
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12848 / 7597 / 1766
Регистрация: 25.07.2009
Сообщений: 13,985
31.10.2009, 21:50
МедведЪ, Если нужно следить за тем, не изменился ли файл, можно хранить MD5 хеш "эталонного" файла и сравнивать с MD5 хешем существующего - это проще, чем весь файл лопатить...
0
 Аватар для AnonymC
1183 / 468 / 87
Регистрация: 23.06.2009
Сообщений: 6,390
31.10.2009, 22:30  [ТС]
CyBOSSeR, во во воооо то что нужно!теперь,какое условие поставить компилятору,что бы он сравнивал этот текст и файл?Ну каким образом?fgets?

Добавлено через 44 секунды
CyBOSSeR, кстати не указал какой,2ой вариант
0
Эксперт С++
 Аватар для CyBOSSeR
2348 / 1721 / 149
Регистрация: 06.03.2009
Сообщений: 3,675
01.11.2009, 04:45
Считываешь очередной символ из файла с помощью fgetc и сравниваешь его с очередным символом из строки и т.д. пока не достигнешь конца файла или конца строки.
0
 Аватар для AnonymC
1183 / 468 / 87
Регистрация: 23.06.2009
Сообщений: 6,390
01.11.2009, 10:26  [ТС]
CyBOSSeR, можно код?и объясни синтакс этой функции
0
 Аватар для Monte-Cristo
2816 / 1408 / 107
Регистрация: 07.03.2009
Сообщений: 4,446
01.11.2009, 12:04
МедведЪ, сранивать - это глуппо. Так как действительный файл может немного отличаться от эталонного (с коим ты будешь сравнивать в программе).

Я бы поступил так:
1. Чистые (рабочие, из свежеустановленной системы) hosts хранил бы в ресурсах.
2. Программно определял бы версию Windows.
3. В зависимости от версии Windows, перезаписывал бы hosts из находящегося в ресурсах.

Добавлено через 2 минуты
Иначе у тебя получится следующее: ты тратишь время на сравнение, и если он идентичен - ты не трогаешь его, а если отличен - перезаписываешь. Но, идентичным он будет если точно такая же копия его будет храниться в программе. То есть, на выходе мы все равно получаем ту копию hosts, которая эталонная и храниться в программе. Поэтому тратить время на сравнение - это глуппо. Лучше сразу перезаписывать.
1
 Аватар для selevit
91 / 77 / 6
Регистрация: 08.10.2008
Сообщений: 296
01.11.2009, 12:15
я не пойму, для чего тебе нужно написать эту "утилиту" - она по сути своей бесполезна, какой может быть эталонный хостс, если по сути там всего 1 строчка 127.0.0.1 localhost - все остальное комментарии, отмеченные впереди #, или ты хочешь просто улучшить свои знания в языке, тогда - поощрительно
0
 Аватар для Monte-Cristo
2816 / 1408 / 107
Регистрация: 07.03.2009
Сообщений: 4,446
01.11.2009, 12:20
selevit, на Win7 закомментированы все строки


МедведЪ, вообще, если брать по уму. Тогда нужно сделать парсер hosts'а. То есть считывать построчно, и смотреть какие там прописаны сайты с какими айпишниками. Но для этого, твоя программа должна облдать базой с плохими айпишниками, чтоб при нахождении такового, она строчку с ним удаляла.

Просто, например, у меня стоит Денвер. Когда я его запускаю, у меня в hosts'е пропиываются мои вирутальные хосты. То есть, в hosts помимо плохой информации, может содержатсья и вполне безобидная и нужная информация.
0
 Аватар для Даемоник
42 / 42 / 8
Регистрация: 22.05.2009
Сообщений: 97
01.11.2009, 14:10
Я вот подумал, а может сделать как вариант.
1) Пишется программа, которая добавляет себя в автозагрузку в реестр, и допустим каждый раз при запуске она смотрит что сейчас находится в хосте, при этом сравнивая с файлом, который был при предыдущем запуске системы.
2) Если у нас, допустим найдено несоответсвие, то мы выводим об этом сообщение, а пользователь программы уже решает, нужно ли ему что-то удалять или нет.
3) При завершении работы системы программа сохраняет файл хоста(то бишь копирует его куда-нибудь в другое место).
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
01.11.2009, 14:10

Перепишите, пжл, 3 программки в 3 программки в CSS
1файл &lt;html&gt; &lt;head&gt; &lt;title&gt;Laba_2&lt;/title&gt; &lt;/head&gt; &lt;body bgcolor=grey WIDTH=&quot;50%&quot; height=50%&gt; &lt;table CELLpadding=&quot;10&quot;...

C:\Windows\system32\drivers\etc\hosts нет файла Hosts
1) Была активация на пакет adobe, она слетела - пошел искать хост что б посмотреть как так он пропустил конект, а его нет ))) 2)...

Функция, которая проверяет нажата ли клавиша?
Здравствуйте всем. Функция принимающая строку в качестве аргумента. Должна проверить нажата ли клавиша, которую мы передаем в функцию в...

Напишите функцию, которая проверяет год
Напишите функцию, которая проверяет год выпуска автомобиля с значением, введенным пользователем. Если он совпадает, то вывести на экран...

Функция, которая проверяет соседние элементы
Дан массив a Функция, которая проверяет, что в каждой строке есть 2 соседних элемента, сумма которых &gt; суммы предыдущей строки


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Книги по геймдизайну, левел-дизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version 1. 2003 - 06 - Designing Virtual Worlds (1st Edition) Автор: Richard A. Bartle | Объем: 768 стр. Ссылки: Amazon . . .
Родители токсичные абьюзеры по отношению к своим детям ругают их оскорбляют не любят
zorxor 08.11.2026
Жить в атмосфере постоянных оскорблений, критики и холодности со стороны родителей — это тяжелое и болезненное испытание, которое оставляет глубокие эмоциональные раны. Токсичное и абьюзивное. . .
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
Проверка полного ФИО в типовом справочнике
Maks 07.11.2026
Решение реализовано в конфигурации КА2, на примере справочника "КонтактныеЛицаПартнеров". Задача: Запрет инициалов. Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . . Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
Красочные поля с номером страницы svg+background-image
russiannick 04.11.2026
Красочные поля с номером страницы не менее важны чем в эпоху бумажных книг. Посему спешу представить почтеннейшей публике этот важный инструмент который эти поля и формирует. В процессе разработки. . .
Вступаем в новую фазу генерации favicons, векторную.
russiannick 02.11.2026
Теперь нет нужды скрывать что используется простой svg. Исходный код изображения помещаем в поле и жмем кнопку. Исходник преобразуется в вид корректный для помещения в favicon или в url(). Нажатие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru