Головна сторінка
Top.Mail.Ru Яндекс.Метрика
Форум: "пошарпану";
Поточний архів: 2002.12.23;
Завантажити: [xml.tar.bz2];

Вниз

Читання груп новин Знайти схожі гілки


Дмитрий К.К.   (2002-11-29 09:31) [0]

Порадьте, плиз, прогу по сабжу - зручну і багатофункціональну.



AL2002   (2002-11-29 10:12) [1]

Пара прог у мене є. Нічого про них не знаю, тому що НЕ юзал, але можу зафутболив.



Дмитрий К.К.   (2002-11-29 11:49) [2]

Пасиб, Ал. Тока що знайшов Agent "а. Напевно, буду юзати її.



AL2002   (2002-11-29 12:54) [3]


> Дмитро К.К. © (29.11.02 11: 49)

Посилання, плиз.



Дмитрий К.К.   (2002-11-29 12:58) [4]

Тримай http://www.forteinc.com/agent/



Вадим   (2002-11-29 15:07) [5]

А як у цій проги KOI8-R налаштувати?



Дмитрий К.К.   (2002-11-29 20:18) [6]

Не знаю, я читаю в основному західні новинні групи.



Oleg_Gashev   (2002-11-29 21:01) [7]

Дивно. Всі ми тут програмісти і зробити більш-менш робочу програму можуть багато. Я за дві години набрав наступне:

#include <iostream.h> #include <winsock.h> #include <string.h> #include <stdio.h> #define MAXBLOCKSIZE 80 void main (void) { WSADATA wsaData; int wsaErrorCode = WSAStartup (MAKEWORD (1, 0), & wsaData); cout << wsaErrorCode << endl; SOCKET sockfd = socket (AF_INET, SOCK_STREAM, 0); // do some error checking! HOSTENT * h; h = gethostbyname ( "news.microsoft.com"); sockaddr_in dest_addr; dest_addr.sin_family = AF_INET; // host byte order dest_addr.sin_port = htons (119); // short, network byte order dest_addr.sin_addr.s_addr = inet_addr (inet_ntoa (* ((struct in_addr *) h-> h_addr))); memset (& (dest_addr.sin_zero), "\ 0", 8); // zero the rest of the struct int Timeout = 1000; setsockopt (sockfd, SOL_SOCKET, SO_RCVTIMEO, (const char *) & Timeout, sizeof (Timeout)); setsockopt (sockfd, SOL_SOCKET, SO_SNDTIMEO, (const char *) & Timeout, sizeof (Timeout)); ULONG ulB = FALSE; // Set socket to non-blocking mode struct timeval Time; fd_set FdSet; ioctlsocket (sockfd, FIONBIO, & ulB); // don "t forget to error check the connect ()! int c = connect (sockfd, (struct sockaddr *) & dest_addr, sizeof (struct sockaddr)); if (c == SOCKET_ERROR) { if (WSAGetLastError () == WSAEWOULDBLOCK) { // now wait for the specified time FD_ZERO (& FdSet); FD_SET (sockfd, & FdSet); Time.tv_sec = Timeout / 1000L; Time.tv_usec = (Timeout% 1000) * 1000; int rc = select (0, NULL, & FdSet, NULL, & Time); } } ulB = FALSE; // Restore socket to blocking mode ioctlsocket (sockfd, FIONBIO, & ulB); cout << c << endl; char a [100]; strcpy (a, "group microsoft.public.vc.language \ r \ n"); send (sockfd, a, strlen (a), 0); int i = 30000; while (i <32000) { // cout << "Enter string:" << endl; // gets (a); i ++; strcpy (a, "next \ r \ nbody \ r \ n"); send (sockfd, a, strlen (a), 0); // strncat (a, "\ r \ n", 100); // strcpy (a, "article \ r \ n"); // send (sockfd, a, strlen (a), 0); char tmpBuffer [MAXBLOCKSIZE] = {0}; int curSize = 1; int totalReceived = 0; char FileName [100]; char ic [6]; strcpy (FileName, "D: \\ News \\ microsoft \\"); itoa (i, ic, 10); strncat (FileName, ic, 100); strncat (FileName, ". txt", 100); FILE * f; f = fopen (FileName, "wt"); // receive loop while ((curSize! = SOCKET_ERROR) && (curSize! = 0)) { try { memset (tmpBuffer, "\ 0", MAXBLOCKSIZE); curSize = recv (sockfd, (char *) tmpBuffer, (MAXBLOCKSIZE - 1), 0); fprintf (f, (char *) tmpBuffer); cout << tmpBuffer; } catch (...) { break; } } fclose (f); } WSACleanup (); }

Код потребує доопрацювання (ставлю собі 2 за реалізацію). Але цілком працездатний.



Дмитрий К.К.   (2002-11-29 21:26) [8]


> Oleg_Gashev © (29.11.02 21: 01)


Подивися програму по посиланню (Agent). Її писали явно не за дві години.



Oleg_Gashev   (2002-11-29 21:33) [9]

> Її писали явно не за дві години.

Естаственно, просто питання у мене такого не виникало. Просто коли потрібна особлива функціональність, реалізовую сам. Вибачте, але я використовую Outlook Express. Велика функціональність? Так, потрібна. Але в інших продуктах я її не знайшов.



Дмитрий К.К.   (2002-11-29 21:37) [10]

Швидше за все, погано дивився.



Oleg_Gashev   (2002-11-29 21:39) [11]

Вам перерахувати?
Будь ласка.

Основні можливості

Можливість завдання різних установок для різних newsgroups і news серверів;
Можливість використання псевдонімів для серверів і newsgroups;
Можливість подання ієрархії груп у вигляді дерева;
Селективна завантаження списку груп, тобто робота тільки зі списком підписаних груп і окремо список груп на сервер, на даний момент вся інформація про групи, серверах;
Робота з proxy. (Ще не знаю як, може хтось підкаже?);
Моніторинг груп. Тобто періодична перевірка на нові повідомлення в групі і на сервері через заданий проміжок часу;
Фільтрація повідомлень. Чорний і білий списки;
Використання templates для читання повідомлень;
Import / export;
можливість отримання списку newsgroups як tree. Тобто, наприклад, все групи fido7. * Лежать в одній гілці.



Oleg_Gashev   (2002-11-29 21:41) [12]

Це не весь список. Можу продовжити. Близько 50 пунктів.



Oleg_Gashev   (2002-11-29 21:42) [13]

Ваша програма не реалізовує навіть пловіни з перерахованого.



Дмитрий К.К.   (2002-11-29 21:44) [14]

Лан, переконали :)
Але програма Agent теж володіє чималою кількістю функцій ... а ідеалу, думається, не досягти нікому.



Oleg_Gashev   (2002-11-29 21:49) [15]

> Дмитро К.К.
> а ідеалу, думається, не досягти нікому.

Реалізовується все це без проблем. Алгоритмика і функціональність не дуже складна. Роботи з нею багато. Одному- зробити важко. Якщо є бажання все це реалізовать- пишіть на email.



Дмитрий К.К.   (2002-11-29 21:51) [16]

А Ви Паскаль, напевно, не визнаєте ...



Oleg_Gashev   (2002-11-29 21:53) [17]

C ++, STL. І є на це чимало причин.



Oleg_Gashev   (2002-11-30 21:55) [18]

> Дмитро К.К.

Зробив online client для читання newsgroups.
Подивитися можна на http://gashev.com/news/news.html



Дмитрий К.К.   (2002-11-30 22:40) [19]

Спасибі, обов'язково подивлюся і заценю!



сторінки: 1 вся гілка

Форум: "пошарпану";
Поточний архів: 2002.12.23;
Завантажити: [xml.tar.bz2];

Вгору





Пам'ять: 0.61 MB
Час: 0.049 c
1-74841
don_dampster
2002-12-11 16:37
2002.12.23
unrar.dll


4-75034
вигнутий
2002-11-09 09:22
2002.12.23
Як дізнатися кодування файлу?


14-74885
DanIQ
2002-11-30 07:30
2002.12.23
Scroll Lock


1-74765
Kibitzer
2002-12-09 22:53
2002.12.23
TWebApplication & TThread


4-75031
Sergadm
2002-11-09 09:04
2002.12.23
отримати значення з процесу





африкаанс албанський арабська вірменин азербайджанець баскський білоруський болгарська каталонський Китайська (спрощене письмо) Китайський традиційний) хорватський чеська данську мову нідерландський Ukranian естонець Філіппінська фінську мову французький
галісійська грузинський німецький грецький гаїтянський креольський давньоєврейську хінді угорський ісландський індонезієць ірландський італійський японський корейський латиська литовець македонець малайський мальтійський норвежець
перс полірування португальська румунський російська сербський словацький словенський іспанська суахілі шведську мову тайський турецька український урду в'єтнамський валлійський ідиш бенгальський боснійський
кебуано есперанто гуджараті хауса хмонг ігбо яванський каннада кхмерская Лао латинь маорі маратхі монгольський непальська панджабі сомалійський тамільська телугу йоруба
зулуський
Англійська Французький Німецький Італійський Португальська Русский Іспанська