Показать сообщение отдельно
  #1  
Старый 05.09.2011, 04:40
WennY WennY вне форума
Прохожий
 
Регистрация: 31.08.2011
Сообщения: 8
Репутация: 10
По умолчанию Как правильно заменить строку

Есть такой код:
Код:
  var
    RetLen: Integer;
    P: PChar;
  ...
  Result := TMemoryStream.Create;
  P := GetMemory(256);
  RetLen := FSocket.ReceiveBuf(P^, 256);

  while RetLen > 0 do
   begin
    P := PChar ( StringReplace(P, 'gzip,deflate', ' ', [rfIgnoreCase] ) );
    P := PChar ( StringReplace(P, '1.1', '1.0', [rfIgnoreCase] ) );
    Result.Write(P^, RetLen);
    RetLen := FSocket.ReceiveBuf(P^, 256);
   end;
  P := '';
  FreeMemory(P);
  Result.Position := 0;

Стоит задача подменить пару строк в переменной P. Лезу внаглую стринг реплейсом, естественно стоит мат на весь компилятор, acces violation'ы вылетают на строке FreeMemory(P) и на самих реплейсах. Подскажите пожалуйста, как корректно реплейснуть строку в моем случае Спасибо
Ответить с цитированием