Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > Помогите переписать код с Паскаля на С++


Автор: Sergio 24.11.2006, 19:50
Здраствуйте помогите "переконвертировать" код с Паскаля на С++. Спасибо зарание. Вот код:

Код
procedure TForm1.Button1Click(Sender: TObject);
begin
 IdUDPClient1.Send(Edit1.Text);
end;


и вот ещё:

Код
procedure TForm1.IdUDPServer1UDPRead(Sender: TObject; AData: 
TStream; ABinding: TIdSocketHandle);

var
 StringFormatedStream: TStringStream;
   s: String;

begin

StringFormatedStream := TStringStream.Create('');         //Инициализация

 StringFormatedStream.CopyFrom(AData, AData.Size);   //Копирование из простого потока в строковый.

Memo1.Lines.Add(ABinding.PeerIP+' '+StringFormatedStream.DataString);  //Вывод полученного сообщения



ABinding.SendTo(ABinding.PeerIP, ABinding.PeerPort, s[1], Length(s)); //Перенаправление сообщения дальше

StringFormatedStream.Free;    //Освобождение строкового потока. 

end;

Автор: dumb 24.11.2006, 20:47
Код

//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  IdUDPClient1->Send(Edit1->Text);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::IdUDPServer1UDPRead(TObject *Sender,
      TStream *AData, TIdSocketHandle *ABinding)
{
  AnsiString s;
  TStringStream *StringFormatedStream = new TStringStream(); //Инициализация
  StringFormatedStream->CopyFrom(AData, AData->Size); //Копирование из простого потока в строковый.
  s = StringFormatedStream->DataString;
  Memo1->Lines->Add(ABinding->PeerIP+" "+s);  //Вывод полученного сообщения
  ABinding->SendTo(ABinding->PeerIP, ABinding->PeerPort, s.c_str(), s.Length()); //Перенаправление сообщения дальше
  delete StringFormatedStream;    //Освобождение строкового потока.
}
//---------------------------------------------------------------------------

Автор: Sergio 24.11.2006, 22:50
dumb, какаято ошибка выбивает здесь:
Код

TStringStream *StringFormatedStream = new TStringStream(); //Инициализация

мол не может что-то найти  smile 

Автор: dumb 25.11.2006, 11:27
Код

TStringStream *StringFormatedStream = new TStringStream(""); //Инициализация

упс. вообще, мог бы и сам догадаться... smile

edit: тьпу, вместо тэгов кода вставил quote... smile

Автор: Sergio 25.11.2006, 21:51
dumb, а что означают те кавычки?

Автор: dumb 26.11.2006, 02:51
Sergio,
1. находясь в билдере, поставь курсор на слово TStringStream
2. нажми F1
3. выбери один из вариантов (целесообразнее Visual Component Library Reference)
4. кликни зеленое слово Methods
5. кликни TStringStream

там все написано. smile

ps. только не надо говорить "я с инглишем плохо", как это многие делают. если хочешь программировать - учи.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)