Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

работа с pointer


Страницы:   1 2 3

Уа3 ©   (2010-10-09 20:40:00) 

Есть такой код:
buf:pointer;
....
WriteFile(FSocket,Buf^,Size,BytesWrite,ov);


в buf заполнен символами, как лучше организовать замену некоторых строк из buf на другие.


sniknik   (2010-10-10 10:47:00) [41]

там же, но нужно отслеживать не запросы, а ответы. причем только с успешными статусами (200/...)
http://ru.wikipedia.org/wiki/%D0%A1%D0%BF%D0%B8%D1%81%D0%BE%D0%BA_%D0%BA%D0%BE%D0%B4%D0%BE%D0%B2_%D1%81%D0%BE%D1%81%D1%82%D0%BE%D1%8F%D0%BD%D0%B8%D1%8F_HTTP
их вообще то нужно обрабатывать, не просто так.
плюс, страничка может быть (в последнее время почти всегда)  динамической, ибо Ajax, JQuery (ссылку уже давал), и др. т.е. сама она появляется ТОЛЬКО в браузере, путем сборки разных данных, которые еще и архивированы...
а вот хороший пример (там внутри еще ссылки)
http://delphimaster.ru/cgi-bin/forum.pl?id=1284889393&n=4
страницы которая вовсе и не страница... а набор xml с правилами (xsl) преобразования (данных там как и контента после разовой скачки попросту нет, есть только ответы с кодом 304).
и тд. просто не понимаешь насколько широка область за которую взялся... и которую решил осилить "нахрапом" заимствованным кодом, по советам из инета.


Уа3   (2010-10-10 09:31:00) [42]

Не задевайте тот вопрос. Это два разных вопроса.

sniknik, укажи из листинга где нужно заменять контент?.


sniknik   (2010-10-09 23:08:00) [43]

http://delphimaster.ru/cgi-bin/forum.pl?id=1286616123&n=4
понятно. сам себя обманул начав писать под разными никами...
ты хоть видел ЧТО ты меняешь? как думаешь повлияет изменение заголовков и запросов на контент страниц? т.е. по простому, если красить дверь соседу у твоей хаты крыша перекрасится? типа а что, дома то рядом...

ну да ладно, просто теперь ясно, что вопрос у тебя вообще не по задаче, изменяемый код откуда то "спер", сам не понимаешь, что делаешь, продолжать что-то обсуждать бесполезно, и единственный выход тебе что-то сделать это нанять программиста...


Anatoly Podgoretsky   (2010-10-09 22:30:00) [44]

И зачем мне куда то идти и смотреть листинг, если ты не в состоянии привести здесь только нужную часть.


sniknik   (2010-10-09 22:29:00) [45]

> какие есть пути?
какие еще тебе пути? написать как еще можно исковеркать? ты их солить собираешься? напиши один, но правильно, раз уж поменял строку, то и размер замени, ведь он реально поменялся. и работай со строками, проблем будет меньше.


Anatoly Podgoretsky   (2010-10-09 22:27:00) [46]

> Уа3  (09.10.2010 22:25:11)  [11]

string полностью может заменить как pointer, так и pchar при том в удобной и
управляемой форме.


Уа3   (2010-10-09 22:25:00) [47]

Anatoly Podgoretsky, можешь посмотреть листинг. Buf: string; никуда не годится.


Anatoly Podgoretsky   (2010-10-09 22:20:00) [48]

Buf: string;


Уа3   (2010-10-09 22:05:00) [49]

sniknik, выложил листинг, полный код, какие есть пути?

http://pastebin.com/8w0rRUYb
строчка в листинге 281. задача замены загружаемого контента.


sniknik   (2010-10-09 21:57:00) [50]

> содержимое Buf искажается.
а что ему остается? если твой код именно это и делает, искажает оригинальную строку и меняет указатель на ее искаженную копию. причем размер строки при явном неравенстве заменяемых частей ты почему то оставляешь старый...

> из-за pointer( pchar() )
почему это из-за него? можно и чтонибудь другое придумать для того же результата... это из-за того, что ты написал "искажатель", а средства тут не причем.


Уа3   (2010-10-09 21:21:00) [51]

http://pastebin.com/8w0rRUYb

строчка в листинге 281. задача замены загружаемого контента.


Уа3   (2010-10-09 21:07:00) [52]

buf:=pointer(StringReplace(pchar(Buf), 'ОЛООЛО', 'ТРОЛОЛО',[rfReplaceAll, rfIgnoreCase]));

 WriteFile(FSocket,Buf^,Size,BytesWrite,ov);

в результате.
в Buf нет ОЛООЛО, из-за pointer( pchar() ) содержимое Buf искажается.


Anatoly Podgoretsky   (2010-10-09 20:58:00) [53]

> Уа3  (09.10.2010 20:56:04)  [4]

StringReplace


Уа3   (2010-10-09 20:56:00) [54]

Anatoly Podgoretsky, грубо говоря строк. Ведь как-то можно сделать обработку buf и заменить в нем ОЛОЛО на ТРОЛОЛО, не трогая остальные символы.


Anatoly Podgoretsky   (2010-10-09 20:56:00) [55]

Ну и объяви buf: pchar;
Только это все равно не массив строк.


Уа3   (2010-10-09 20:49:00) [56]

как быть. дописываю writeln(pchar(buf)); выводит тексты.


Anatoly Podgoretsky   (2010-10-09 20:45:00) [57]

> Уа3  (09.10.2010 20:40:00)  [0]

В buf нет строк, это вообще не типизированый указатель.


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо