Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 | 2 |

 

  Вопрос: Из Делфи в VB Добавлено: 24.03.10 17:26  

Автор вопроса:  Jus | ICQ: 398783562 

Ответить

  Ответы Всего ответов: 23  

Номер ответа: 16
Автор ответа:
 



Администратор

ICQ: 278109632 

Вопросов: 42
Ответов: 3949
 Web-сайт: domkratt.com
 Профиль | | #16
Добавлено: 13.04.10 23:46
Если бы сейчас был 2003 год и я бы не был такой меркантильной скотиной, которой я стал за последние семь лет, то я бы с радостью это сделал бесплатно)

Ответить

Номер ответа: 17
Автор ответа:
 Jus



ICQ: 398783562 

Вопросов: 7
Ответов: 47
 Профиль | | #17 Добавлено: 14.04.10 20:08
Executioner хех, конечно спасибо..но я лучше тогда обойдусь, ибо через годик сам может сделаю, зато бесплатно :)

Ответить

Номер ответа: 18
Автор ответа:
 VbStarter



ICQ: 357911808 

Вопросов: 118
Ответов: 1340
 Web-сайт: moscowdevils.ru
 Профиль | | #18
Добавлено: 17.04.10 20:36
нет, посл сообщ 09.04.10

Ответить

Номер ответа: 19
Автор ответа:
 Jus



ICQ: 398783562 

Вопросов: 7
Ответов: 47
 Профиль | | #19 Добавлено: 19.04.10 14:32
Вот код бота на делфи

  1. unit Unit1;
  2.  
  3. interface
  4.  
  5. uses
  6.   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  7.   Dialogs, udp, StdCtrls;
  8.  
  9. type
  10.   TForm1 = class(TForm)
  11.     Memo1: TMemo;
  12.     Edit1: TEdit;
  13.     Edit2: TEdit;
  14.     Button1: TButton;
  15.     procedure FormCreate(Sender: TObject);
  16.     procedure FormClose(Sender: TObject; var Action: TCloseAction);
  17.     procedure DatReceived(Sender: TComponent; const Data: String;  FromIP: String; Port: Integer);
  18.     procedure Button1Click(Sender: TObject);
  19.   private
  20.     { Private declarations }
  21.   public
  22.     { Public declarations }
  23.   end;
  24.  
  25. var
  26.   Form1: TForm1;
  27.   UDP1: TUDP;                // компонент для отправки/приема пакетов
  28.   BActive: boolean = false;  // состояние готовности к отправке пакетов клиенту
  29. implementation
  30.  
  31. {$R *.dfm}
  32.  
  33. procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
  34. begin
  35. UDP1.Destroy;
  36. end;
  37.  
  38. procedure TForm1.FormCreate(Sender: TObject);
  39. begin
  40. with UDP1 do
  41.     begin
  42.       UDP1:=TUDP.Create(Form1);     // создаем экземпляр класса
  43.       OnDataReceived:=DatReceived;  // процедура обработки приходящих сообщений
  44.       LocalPort:=9750;             // порт
  45.       Activate;                     // активируем компонент
  46.     end;
  47. end;
  48.  
  49. /////////////////////////////////////////// Функция получения числа из 4-байтовой последовательности
  50. function ln(s: string): integer;
  51. var k: cardinal;
  52. hex: string;
  53. begin
  54.   hex:='';
  55.     for k:=length(s) downto 1 do
  56.       hex:=hex+IntToHex(ord(s[k]),2);
  57.   Result:=StrToInt('$'+hex);
  58. end;
  59. ////////////////////////////////////////Функция получения числа из 4-байтовой последовательности}
  60. function Nm(dec: integer): string;
  61.   var s: string;
  62.       i: byte;
  63.   begin
  64.     Result:='';
  65.     s:=inttohex(dec,8);
  66.     for i:=8 downto 1 do
  67.       if i mod 2 <> 0 then
  68.         Result:=Result+chr(StrToInt('$'+(copy(s,i,2))));
  69.   end;
  70. ///////////////////////////////////////формирование строки для отправки клиенту
  71. function SMessage(ch,text: string; f9: boolean = false): string;
  72.  
  73. begin
  74.   if f9 then Result:=Nm(51) else
  75.              Result:=Nm(50);
  76. Result:=Result+Nm(Length(ch))+ch+Nm(Length(text))+text;
  77. end;
  78.  
  79. procedure TForm1.Button1Click(Sender: TObject);
  80. begin
  81. UDP1.SendText(SMessage(edit2.text,edit1.Text,true));
  82. memo1.lines.add(SMessage(edit2.text,edit1.Text,true)); //фиксируем это событие в мемо
  83. end;
  84.  
  85. procedure TForm1.DatReceived(Sender: TComponent; const Data: String;
  86.   FromIP: String; Port: Integer);
  87. var
  88. LMsg: string;
  89.   p,l: integer;  // p - позиция, с которой будем копировать, l - длина
  90.   ut,chan, user, ip: string;
  91.  
  92. begin
  93.   if not BActive then          // когда приходит первый пакет
  94.     begin
  95.       UDP1.RemoteHost:=FromIP;   // определяем куда будем отправлять
  96.       UDP1.RemotePort:=Port;     // и на какой порт
  97.       BActive:=true;             // и больше сюда не заходим
  98.       memo1.lines.add('Готов к работе!'+UDP1.RemoteHost); //фиксируем это событие в мемо
  99.     end;
  100.  
  101.  
  102. if ln(copy(Data,1,4))=5 then // если первое число 5, значит это сообщение в чате
  103.   begin
  104.      memo1.lines.add('lol');
  105.     p:=5;                      // переходим вперед на 4 байта (32-разрядные числа представлены 4 байтовым кодом)
  106.     l:=ln(copy(Data,p,4));     // узаем длину поля Ника
  107.     p:=p+4;                    // переходим на начало ника пользователя
  108.     user:=copy(Data,p,l);      // узнаем ник
  109.     p:=p+l;                    // переходим на начало указателя длины поля ip-адреса
  110.     l:=ln(copy(Data,p,4));     // узнаем длину ip
  111.     p:=p+4;                    // вперед на 4 байта
  112.     ip:=copy(Data,p,l);        // узнаем ip
  113.     p:=p+l;                    // переходим на начало указателя длины названия канала
  114.     l:=ln(copy(Data,p,4));     // длина названия канала
  115.     p:=p+4;                    // пропускаем число
  116.     chan:=copy(Data,p,l);      // узнаем название канала
  117.     p:=p+l;                    // переходим на начало указателя длины текста сообщения в канале
  118.     l:=ln(copy(Data,p,4));     // узнаем длину текста
  119.     p:=p+4;                    // переходим к началу текста
  120.     ut:=copy(Data,p,l);        // узнаем текст
  121.  
  122.     memo1.lines.add(user+' '+ip+'> '+ut);
  123.     if ut='проверка' then   /// если было слово ПРОВЕРКА
  124.      begin
  125.        UDP1.SendText(SMessage(chan,'работает',true));
  126.        //         в том же канале - 'работает' - как статус
  127.      end;  /// если было слово ПРОВЕРКА
  128.   end;  /// сообщение в чате
  129. end;  ///DatReceived
  130. end.


Кто сможет на VB переделать...тут Edit2 - название канала, Edit1 - текст отправляемый, Memo1 - окно чата
У меня ничего невыходит..

Ответить

Номер ответа: 20
Автор ответа:
 Jus



ICQ: 398783562 

Вопросов: 7
Ответов: 47
 Профиль | | #20 Добавлено: 19.04.10 14:35
Вот скрин http://www.imagepost.ru/images/104/2gVgOUEzEQxfApeRs050.bmp

Ответить

Номер ответа: 21
Автор ответа:
 Jus



ICQ: 398783562 

Вопросов: 7
Ответов: 47
 Профиль | | #21 Добавлено: 19.04.10 14:38
Правда этот бот собирает информацию со всех каналах чата, получаеться каша..а отправляет текст в один (в данном случае в "main";)
Ребят, кто что подскажит?:)

Ответить

Номер ответа: 22
Автор ответа:
 



Администратор

ICQ: 278109632 

Вопросов: 42
Ответов: 3949
 Web-сайт: domkratt.com
 Профиль | | #22
Добавлено: 19.04.10 15:59
С каким таким чатом вообще работает?

Ответить

Номер ответа: 23
Автор ответа:
 Jus



ICQ: 398783562 

Вопросов: 7
Ответов: 47
 Профиль | | #23 Добавлено: 19.04.10 19:40
Executioner чат комфорт http://www.commfort.com

Ответить

Страница: 1 | 2 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам