String => Char или др.способом [Delphi]

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by ALeXX&7, 26 Feb 2011.

  1. GhostOnline

    GhostOnline Active Member

    Joined:
    20 Dec 2008
    Messages:
    723
    Likes Received:
    110
    Reputations:
    22
    Chrome~ работает с поправкой на
    FileStream.Write(Str[1], Length(Str) * 2);
    (Delphi XE)
    конечно недопонял - сначала записываешь в переменную длину строки а потом длину строки устанавливаешь по значение этой же переменной
    Тогда как длину надо знать заранее и устанавливать длину строки в нее

    Понял из-за чего у меня не работало s[1] - я тестил на TStringStream а там надо дополнительно с кодировками и типами строк работать
     
  2. ALeXX&7

    ALeXX&7 New Member

    Joined:
    4 Oct 2010
    Messages:
    50
    Likes Received:
    1
    Reputations:
    0
    Извиняюсь, всё заработало....)))

    Code:
    strlen:= 6; 
    SetLength(buf, strlen);
    recv(ClientSocket,PChar(@buf[1])^, strlen,0);
    label1.Caption:= Buf;
    В прошлый раз прямо в функцию вставлял, думаю из-за этого мозги пудрило...

    Спасибо огромное за помощь!!!
     
  3. Jingo Bo

    Jingo Bo Member

    Joined:
    25 Oct 2009
    Messages:
    368
    Likes Received:
    51
    Reputations:
    7
    Дааа, ТС стоит подучить указатели и разадресацию.

    Протокол TCP гарантирует целостность данных, но может разбить на не определенное число частей. Советую использовать велосипедную надстройку - сначала передавать длинну стороки(хватит WORD), а потом саму строку. А на приемнике сначала получать длинну(те самые два байта), а потом ожидать нужное число байт.