Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/43: Рейтинг темы: голосов - 43, средняя оценка - 4.86
Эксперт С++
 Аватар для Avazart
8484 / 6151 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30

IdPOP3. Проверка почты на mail.ru. Неверная кодировка текста.

11.04.2012, 22:38. Показов 9114. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Пишу код:
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
//---------------------------------------------------------------------------
void __fastcall TForm2::Button2Click(TObject *Sender)
{
try
{
 IdPOP31->Host= "pop.list.ru";
 IdPOP31->Port= 110;
 IdPOP31->Username= "********@list.ru"; // Логин пользователя
 IdPOP31->Password= "********"; // пароль пользователя
 
// IdMessage2->ContentType = "text/plain; charset=windows-1251";
// IdMessage2->CharSet="windows-1251"; // для корректности русских букв
// IdMessage2->ContentTransferEncoding = "8BITMIME";
 
// IdMessage2->ContentType = "text/plain; charset=koi8-r";
// IdMessage2->CharSet="koi8-r"; // для корректности русских букв
// IdMessage2->ContentTransferEncoding = "8BITMIME";
 
  IdMessage2->Clear();// очистка буфера для сообщения
  RichEdit1->Clear(); // очистка компонента memo для отображения текста письма.
 
  IdPOP31->Connect(); // подключение по протоколу POP3
  IdPOP31->Retrieve(1,IdMessage2); // получение одного сообщения
 
  RichEdit1->Lines->AddStrings(IdMessage2->Body); // передача сообщения из компонента IdMessage в memo
  //IdPOP31->Delete(1); // удаление с сервера, полученного сообщения
  IdPOP31->Disconnect();
 }
catch ( ... ) { ShowMessage("Проблемы"); }
}
//---------------------------------------------------------------------------
Получаю:
Что за транслит?
смотрел Неверная кодировка текста в компонентах формы при получении почты через IdPOP3 но ведь проблема не в кодировке кои8 ( Пробовал не помогло)
Как-то сделать что бы нормально отображалось?
Миниатюры
IdPOP3. Проверка почты на mail.ru. Неверная кодировка текста.  
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.04.2012, 22:38
Ответы с готовыми решениями:

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

Idpop3 - неверная кодировка
Такая проблема. Принимаю сообщения с почты яндекса, тема письма передаётся нормально, а само письмо - набор символов (Вопросы и буква N). ...

Неверная кодировка текста
Уверен, что эта тему уже поднималась ранее. Собственно переписываю прогу с С++ на Си, и тут столкнулся с абракадаброй в сообщениях...

7
Эксперт С++
 Аватар для Avazart
8484 / 6151 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
12.04.2012, 23:39  [ТС]
Пробовал разные варианты. прелопатил сайты,форумы в том числе по делфи нашел только
Delphi
1
2
3
4
5
6
7
  if not POP3.RetrieveHeader(n,IdMessage) then continue;
        if IdMessage.Headers.Values['Content-Transfer-Encoding']='8bit' then
        begin
          POP3.SendCmd('RETR ' + IntToStr(n), '');
          POP3.IOHandler.Capture(IdMessage.Body, '.', True, en8bit);
        end else
          POP3.Retrieve(n,IdMessage);
Утверждают что стоит 7bit, а надо выставить 8bit перенести код на С++ неудалось пока
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
13.04.2012, 01:56
C++
1
2
3
4
5
6
7
8
9
10
11
// возможно, кое-где надо было оставить точку
if (!POP3->RetrieveHeader(n,IdMessage) {
  continue; // return;
}
if (IdMessage->Headers->Values["Content-Transfer-Encoding"]="8bit" {
  POP3->SendCmd("RETR "+IntToStr(n), "");
  POP3->IOHandler->Capture(IdMessage.Body, ".", true, en8bit);
}
else
  POP3->Retrieve(n,IdMessage);
}
Добавлено через 3 минуты
C++
1
2
3
4
5
6
7
8
9
10
// возможно, кое-где надо было оставить точку
if (!POP3->RetrieveHeader(n,IdMessage) {
  if (IdMessage->Headers->Values["Content-Transfer-Encoding"]="8bit" {
    POP3->SendCmd("RETR "+IntToStr(n), "");
    POP3->IOHandler->Capture(IdMessage.Body, ".", true, en8bit);
  }
  else
    POP3->Retrieve(n,IdMessage);
  }
}
0
Эксперт С++
 Аватар для Avazart
8484 / 6151 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
14.04.2012, 06:54  [ТС]
Вот вроде бы как перевел, пробывал результата не дало, я хотя я так и не понял куда это засовывать
C++
1
2
3
4
5
6
7
8
9
  if (!IdPOP31->RetrieveHeader(1,IdMessage2)) {
  if (IdMessage2->Headers->Values["Content-Transfer-Encoding"]=="en8Bit") {
    IdPOP31->SendCmd("RETR "+IntToStr(1), "");
    IdPOP31->IOHandler->Capture(IdMessage2->Body, ".", true, en8Bit);
  }
  else
    IdPOP31->Retrieve(1,IdMessage2);
  }
}
Вот нашел на другом форуме
Рекомендация:
By default, Indy 10 in D2009 reads strings from a socket using 7bit ASCII,
to be compatible with most Internet protocols that are still 7-bit. That
would cause non-ASCII characters to not be received correctly. For
international clients, the server needs to support UTF-8 in order for TIdFTP
to receive Unicode strings correctly. If it does support UTF-8, then TIdFTP
should already be using that correctly. But if the server does not support
UTF-8, then you could try setting the TIdFTP.IOHandler.DefStringEncoding
property to en8bit after connecting to the server. If that still does not
work correctly for you, then you will have to download and install the
latest version of Indy from Indy's SVN server, as it has recently been
updated to support CodeGear's new TEncoding class. You can then set the
TIdFTP.IOHandler.DefStringEncoding property to a more suitable TEncoding
object instance that supports whatever language the server is actually using
(looks like Russian).
Я как я понял требовалось
C++
1
2
3
4
//... 
IdPOP31->Connect(); // подключение по протоколу POP3
IdPOP31->IOHandler->DefStringEncoding= en8Bit;
//...
Но это тоже не дало результата...
По прежнему выдает
Тему сообщения
ðÒÏ×ÅÒËÁ Indy ëÏÍÐÏÎÅÎÔÏ×
Тело сообщения
pISXMO DLQ PROWERKI Indy
Добавлено через 21 час 28 минут
Теперь примерно понимаю как получается транслит
Разработчики КОИ-8 разместили символы русского алфавита таким образом, что если в тексте, написанном в КОИ-8, убирать восьмой бит каждого символа, то получается "читабельный" текст, хотя он и написан латинскими символами.
http://www.script-coding.com/CodePages.html
Но как сделать что бы он хотябы не транслитил а давал изначальный код?

Добавлено через 6 часов 1 минуту
Проверял по умолчанию стоит en7Bit, вот решил вопрос с транслитом.
Осталось понять как правильно ковертировать результат из KOI8
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
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
  IdPOP31->Host= "pop.list.ru";
  IdPOP31->Port= 110;
  IdPOP31->Username= "**********.ru"; // Логин пользователя
  IdPOP31->Password= "**********"; // пароль пользователя
 
  IdMessage2->Clear();// очистка буфера для сообщения
  RichEdit1->Clear(); // очистка компонента memo для отображения текста письма.
 
  IdMessage2->NoDecode = true;
  IdPOP31->IOHandler= TIdIOHandler::MakeDefaultIOHandler(IdPOP31);
  IdPOP31->IOHandler->DefStringEncoding= en8Bit;
  IdPOP31->Connect();
 
  IdPOP31->Retrieve(1,IdMessage2); // получение одного сообщения
 
  RichEdit1->Lines->Add( IdMessage2->Subject);
  RichEdit1->Lines->AddStrings(IdMessage2->Body);
 
  IdPOP31->Disconnect();
}
//----------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{
RichEdit1->Text=  KoiToUnicode(  RichEdit1->Text); // Моя ф-ция преобразования
}
//---------------------------------------------------------------------------
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
14.04.2012, 07:07
KOI8-R (RFC1489) to Unicode
Русские идут!
0
Эксперт С++
 Аватар для Avazart
8484 / 6151 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
14.04.2012, 17:25  [ТС]
Что то я не вижу тут решения
По конкретней

Добавлено через 10 часов 11 минут
Не верится что приходится делать все вручную, должно быть боллее простое решение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
//---------------------------------------------------------------------------
String KoiToUnicode(const String St)
{
 int Koi_UnicodeChars[] = {
0x044E, 0x0430, 0x0431, 0x0446, 0x0434, 0x0435, 0x0444, 0x0433, 0x0445, 0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E,
0x043F, 0x044F, 0x0440, 0x0441, 0x0442, 0x0443, 0x0436, 0x0432, 0x044C, 0x044B, 0x0437, 0x0448, 0x044D, 0x0449, 0x0447, 0x044A,
0x042E, 0x0410, 0x0411, 0x0426, 0x0414, 0x0415, 0x0424, 0x0413, 0x0425, 0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E,
0x041F, 0x042F, 0x0420, 0x0421, 0x0422, 0x0423, 0x0416, 0x0412, 0x042C, 0x042B, 0x0417, 0x0428, 0x042D, 0x0429, 0x0427, 0x042A
 };
 String Result="";
 for (int i = 1; i <= St.Length(); i++)
 {
  if (int(St[i])>= 0x00C0 && int(St[i])<= 0x00FF)
    Result += String((wchar_t)Koi_UnicodeChars[St[i]-0x00C0]);
  else Result += St[i];
 }
 return Result;
}
//---------------------------------------------------------------------------
0
Эксперт С++
 Аватар для Avazart
8484 / 6151 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
27.06.2012, 00:24  [ТС]
Решил попробывать на яндексе и получил опять проблему с кодировками
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
//---------------------------------------------------------------------------
void __fastcall TForm1::Button4Click(TObject *Sender)
{
try
{
 IdPOP31->Host= "pop.yandex.ua";
 IdPOP31->Port= 110;
 IdPOP31->Username= "*******@yandex.ua"; // Логин пользователя
 IdPOP31->Password= "********"; // пароль пользователя
 
 IdMessage1->Clear();// очистка буфера для сообщения
 RichEdit1->Clear(); // очистка компонента memo для отображения текста письма.
 
 //IdMessage1->ContentType = "text/plain; charset=windows-1251";
 //IdMessage1->CharSet = "windows-1251";
 //IdMessage1->ContentTransferEncoding = "8BITMIME";
 
  //IdMessage1->NoDecode = true;
  //IdPOP31->IOHandler= TIdIOHandler::MakeDefaultIOHandler(IdPOP31);
  //IdPOP31->IOHandler->DefStringEncoding= en8Bit;
 IdPOP31->Connect();
 
 IdPOP31->Retrieve(1,IdMessage1); // получение одного сообщения
 
 RichEdit1->Lines->Add( IdMessage1->Subject );
 RichEdit1->Lines->AddStrings( IdMessage1->Body );
 
 IdPOP31->Disconnect();
 }
catch ( ... ) { ShowMessage("Проблемы"); }
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Button5Click(TObject *Sender)
{
RichEdit1->Text= my::KoiToUnicode(RichEdit1->Text); // Моя ф-ция преобразования
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Button6Click(TObject *Sender)
{
RichEdit1->Text= my::utf8_to_unicode(AnsiString(RichEdit1->Text).c_str());
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Button7Click(TObject *Sender)
{
RichEdit1->Text= my::unicode_to_1251(RichEdit1->Text.w_str());
}
//---------------------------------------------------------------------------
Попытки декодировать ф-циями:
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
90
91
92
93
94
95
96
97
98
99
namespace my{
//---------------------------------------------------------------------------
String KoiToUnicode(const String St)
{
 int Koi_UnicodeChars[] = {
0x044E, 0x0430, 0x0431, 0x0446, 0x0434, 0x0435, 0x0444, 0x0433, 0x0445, 0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E,
0x043F, 0x044F, 0x0440, 0x0441, 0x0442, 0x0443, 0x0436, 0x0432, 0x044C, 0x044B, 0x0437, 0x0448, 0x044D, 0x0449, 0x0447, 0x044A,
0x042E, 0x0410, 0x0411, 0x0426, 0x0414, 0x0415, 0x0424, 0x0413, 0x0425, 0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E,
0x041F, 0x042F, 0x0420, 0x0421, 0x0422, 0x0423, 0x0416, 0x0412, 0x042C, 0x042B, 0x0417, 0x0428, 0x042D, 0x0429, 0x0427, 0x042A
 };
 String Result="";
 for (int i = 1; i <= St.Length(); i++)
 {
  if (int(St[i])>= 0x00C0 && int(St[i])<= 0x00FF)
    Result += String((wchar_t)Koi_UnicodeChars[St[i]-0x00C0]);
  else Result += St[i];
 }
 return Result;
}
//------------------------------------------------------------------------------
wchar_t * utf8_to_unicode(char *utf8_string)
{
    int err;
    wchar_t * res;
    int res_len = MultiByteToWideChar(
        CP_UTF8,            // Code page
        0,                  // No flags
        utf8_string,        // Multibyte characters string
        -1,                 // The string is NULL terminated
        NULL,               // No buffer yet, allocate it later
        0                   // No buffer
        );
    if (res_len == 0)
    {
        return NULL;
    }
    res = (wchar_t*)calloc(sizeof(wchar_t), res_len);
    if (res == NULL)
    {
        return NULL;
    }
    err = MultiByteToWideChar(
        CP_UTF8,            // Code page
        0,                  // No flags
        utf8_string,        // Multibyte characters string
        -1,                 // The string is NULL terminated
        res,                // Output buffer
        res_len             // buffer size
        );
    if (err == 0)
    {
        free(res);
        return NULL;
    }
    return res;
}
//---------------------------------------------------------------------------------
char * unicode_to_1251(wchar_t *unicode_string)
{
    int err;
    char * res;
    int res_len = WideCharToMultiByte(
        1251,               // Code page
        0,                  // Default replacement of illegal chars
        unicode_string,     // Multibyte characters string
        -1,                 // Number of unicode chars is not known
        NULL,               // No buffer yet, allocate it later
        0,                  // No buffer
        NULL,               // Use system default
        NULL                // We are not interested whether the default char was used
        );
    if (res_len == 0)
    {
        return NULL;
    }
    res = (char*)calloc(sizeof(char), res_len);
    if (res == NULL)
    {
        return NULL;
    }
    err = WideCharToMultiByte(
        1251,               // Code page
        0,                  // Default replacement of illegal chars
        unicode_string,     // Multibyte characters string
        -1,                 // Number of unicode chars is not known
        res,                // Output buffer
        res_len,            // buffer size
        NULL,               // Use system default
        NULL                // We are not interested whether the default char was used
        );
    if (err == 0)
    {
        free(res);
        return NULL;
    }
    return res;
}
//---------------------------------------------------------------------------
}
На выходе получаю: ( письмо- уведомление с этого форума )
Îòâåò â òåìå 'Post Çàïðîñ àâòîðèçàöèè íà ñàéòå + êóêè'
Sb`f`el{i(`) Avazart,

Maximbl4 rnk|jn wrn nrberhk b rele, m` jnrnps~ B{ ondohq`khq|, - Post G`opnq `brnphg`vhh m` q`ire + jsjh - b p`gdeke C++ Builder Tnpsl opncp`llhqrnb h qhq`dlhmnb CyberForum.ru.

]r` rel` p`qonknfem` on `dpeqs:
https://www.cyberforum.ru/cpp-... -post.html

R`jfe lncsr a{r| h dpsche qnnayemh, mn B{ me asdere onksw`r| sbednlkemh, onj` qmnb` me onqerhre tnpsl.

Q m`hkswxhlh onfek`mhlh,
Tnpsl opncp`llhqrnb h qhq`dlhmnb CyberForum.ru

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Nrj`g nr ondohqjh:

Wrna{ nrj`g`r|q nr onkswemh p`qq{kjh on }rni rele, onf`ksiqr`, oepeidhre m` qrp`mhvs:
https://www.cyberforum.ru/subs... 1448b3637c

Wrna{ nrj`g`r|q nr onkswemh p`qq{knj on BQEL rel`l, onf`ksiqr`, oepeidhre m` qrp`mhvs:
https://www.cyberforum.ru/subs... lderid=all


__________ Information from ESET NOD32 Antivirus, version of virus signature database 7249 (20120626) __________

The message was checked by ESET NOD32 Antivirus.

http://www.esetnod32.ru/.ml
При проверке декодером http://www.artlebedev.ru/tools/decoder/
Тело определяется как 7-bit ASCII → CP1251 и получается частична конвертация ( кириллица нормально, латиница искажается)
Тема нормально декодируется CP1252 → CP1251

Добавлено через 7 минут
На яндексе можно просматривать код письма "свойства страницы" так там можно увидить
Code
1
2
3
4
5
6
7
Subject: =?windows-1251?q?=CE=F2=E2=E5=F2_=E2_=F2=E5=EC=E5_=27Post_=C7=E0=EF=F0=EE=F1_=E0=E2=F2=EE=F0=E8=E7=E0=F6=E8=E8_=ED=E0_=F1=E0=E9=F2=E5_+_=EA=F3=EA=E8=27?=
From: =?windows-1251?q?=D4=EE=F0=F3=EC_=EF=F0=EE=E3=F0=E0=EC=EC=E8=F1=F2=EE=E2_=E8_=F1=E8=F1=E0=E4=EC=E8=ED=EE=E2_CyberForum=2Eru?= <admin@cyberforum.ru>
Auto-Submitted: auto-generated
Message-ID: <20120626183418.8fadb7ed7f80@www.cyberforum.ru>
MIME-Version: 1.0
Content-Type: text/plain; charset="windows-1251"
Content-Transfer-Encoding: 8bit
Вчём проблема не могу понять откуда появилась CP1252 и 7-битка не пойму
0
Эксперт С++
 Аватар для Avazart
8484 / 6151 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
29.06.2012, 17:41  [ТС]
Нашел решение https://www.cyberforum.ru/blog... og513.html ( см. исходник )
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
29.06.2012, 17:41
Помогаю со студенческими работами здесь

Неверная кодировка текста
Получаю сообщение с сайта. Оно в кракозяблах Умный декодер подсказывает, что он в 1251 кодировке. Как ее декодировать, чтобы...

Неверная кодировка текста
Доброго дня! Сделал вывод русского текста из таблицы phpmyadmin, но на выходе получились знаки вопроса. Подскажите, в чем может быть дело,...

Неверная кодировка при отображении текста в магазине приложений
Вообщем вот:

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

Программа по поиску текста в папках - неверная кодировка на Windows 8
Вот пользовался когда то давно вот такой вот прогой Folder Find Text, на вин7 работает норм и с кодировкой проблем нет, на вин8 не читаемый...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru