![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Есть такой код:
Код:
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) и на самих реплейсах. Подскажите пожалуйста, как корректно реплейснуть строку в моем случае ![]() Последний раз редактировалось WennY, 05.09.2011 в 04:43. |
#2
|
||||
|
||||
![]() Код:
var p, q: PChar; begin p:=GetMemory($100); StrPCopy(p, 'hillo warld'); // вместо ReceiveBuf q:=PChar(StringReplace(p, 'wa', 'wo', [rfReplaceAll, rfIgnoreCase])); q:=PChar(StringReplace(q, 'hi', 'he', [rfReplaceAll, rfIgnoreCase])); MessageBox(Handle, q, p, MB_OK); // вместо Write FreeMemory(p); end; Пишу программы за еду. __________________ |