Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2011.01.09;
Скачать: [xml.tar.bz2];

Вниз

работа с pointer   Найти похожие ветки 

 
Уа3   (2010-10-09 20:40) [0]

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


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


 
Anatoly Podgoretsky ©   (2010-10-09 20:45) [1]

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

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


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

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


 
Anatoly Podgoretsky ©   (2010-10-09 20:56) [3]

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


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

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


 
Anatoly Podgoretsky ©   (2010-10-09 20:58) [5]

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

StringReplace


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

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

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

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


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

http://pastebin.com/8w0rRUYb

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


 
sniknik ©   (2010-10-09 21:57) [8]

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

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


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

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

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


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

Buf: string;


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

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


 
Anatoly Podgoretsky ©   (2010-10-09 22:27) [12]

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

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


 
sniknik ©   (2010-10-09 22:29) [13]

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


 
Anatoly Podgoretsky ©   (2010-10-09 22:30) [14]

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


 
sniknik ©   (2010-10-09 23:08) [15]

http://delphimaster.net/view/6-1286616123/
понятно. сам себя обманул начав писать под разными никами...
ты хоть видел ЧТО ты меняешь? как думаешь повлияет изменение заголовков и запросов на контент страниц? т.е. по простому, если красить дверь соседу у твоей хаты крыша перекрасится? типа а что, дома то рядом...

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


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

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

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


 
sniknik ©   (2010-10-10 10:47) [17]

там же, но нужно отслеживать не запросы, а ответы. причем только с успешными статусами (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.net/view/6-1286616123/
страницы которая вовсе и не страница... а набор xml с правилами (xsl) преобразования (данных там как и контента после разовой скачки попросту нет, есть только ответы с кодом 304).
и тд. просто не понимаешь насколько широка область за которую взялся... и которую решил осилить "нахрапом" заимствованным кодом, по советам из инета.


 
Уа3   (2010-10-10 12:05) [18]

sniknik насчет xml он так же виден в траффике как
HTTP/1.1 200 OK
Date: Sun, 10 Oct 2010 07:53:32 GMT
Server: Apache
Cache-Control: max-age=7200
Vary: Accept-Encoding
Content-Encoding: gzip
Content-Length: 163
Connection: close
Content-Type: text/xml

RegionHint(a){if(a.hasClass("g-hidden")){a.css("visibility","hidden");a.css({left:0,top:0});a.removeClass("g-hidden");posRegionHint(a);a.css("visibility","inherit")}else{a.addClass("g-hidden")}}function initRegionHint(a){var c=$(".b-region__hint");if(c.length>0){var


Главный косяк в том, что в Buffer находится весь передаваемый контент. И мне не удается использовать StringReplace чтобы заменить в Buffer нужные мне куски на свои. Как я понял, если даже мне это подскажете, то всё равно Content-Length будет другим и возникнет косяк. Я могу скорректировать Content-Length и могу скорректировать BufSize.

Научите как Buffer:pointer изменять содержимое.


 
Anatoly Podgoretsky ©   (2010-10-10 12:48) [19]

> Уа3  (10.10.2010 12:05:18)  [18]

Забудь про pointer, ты все равно относишься к тем, кто указатели не
понимает.


 
Плохиш ©   (2010-10-10 14:07) [20]


> Уа3   (09.10.10 22:25) [11]
>
> Anatoly Podgoretsky, можешь посмотреть листинг. Buf: string;
>  никуда не годится.

Так найми программиста.


 
sniknik ©   (2010-10-10 15:07) [21]

> насчет xml он так же виден в траффике как
виден то он виден, если не архивирован, но то что ты показываешь это заголовок, а менять хочешь в странице, что даже не контент до которого ты еще не добрался.
и кстати судя по приведенному заголовку (это то что бы хочешь "испоганить"?) - Content-Encoding: gzip, контент тут именно в архиве.

> Главный косяк в том
главный косяк не в этом, про размер я тебе в первом же посте сказал, главный в том что ты не понимаешь что делаешь. вот зачем тебе
> как Buffer:pointer изменять содержимое.
если оно после изменений не используется? судя по твоему(???) же коду (ты код то понимаешь? там не зависимо от указателей)...
притом изменениями то что ты делаешь назвать трудно, больше подходит "коверкаешь", меняешь все несмотря на структуру/хтмл разметку(если вдруг в открытом виде).

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


 
Уа3   (2010-10-10 19:23) [22]


> Так найми программиста


Есть 500р яндекс деньги, кто мне за такие деньги напишет прокси с заменой некоторых частей траффика.  ОЛОЛО на ТРОТРОТРО


 
Плохиш ©   (2010-10-11 00:30) [23]


> Есть 500р яндекс деньги

Этого даже на еду не хватит.


 
Германн ©   (2010-10-11 03:21) [24]


> Этого даже на еду не хватит.

Доширак поможет вам прожить! :)


 
Уа3   (2010-10-11 04:03) [25]

Плохиш, подумай. Это кило пельменей и две бутылки вина сомнительного производства.


 
sniknik ©   (2010-10-11 08:08) [26]

> Плохиш, подумай. Это кило пельменей и две бутылки вина сомнительного производства.
да! именно для этого он 5 лет учился, и 10 лет опыта получал (предположительно) чтобы за кило пельменей месяц работать, и год поддержки осуществлять(предположительно)...


 
Anatoly Podgoretsky ©   (2010-10-11 11:27) [27]

> Уа3  (11.10.2010 04:03:25)  [25]

Пельмени пусть нищие программисты едят.


 
Плохиш ©   (2010-10-11 18:24) [28]


> две бутылки вина сомнительного производства

Я не пью "вина сомнительного производства".
Мне вино напрямую из Италии поставляют.


 
Игорь Шевченко ©   (2010-10-11 18:35) [29]


> Мне вино напрямую из Италии поставляют


прокиснет по дороге, переходи на Доширак :)


 
Уа3   (2010-10-11 19:10) [30]


> за кило пельменей месяц работать


Вас ведь это час работы. Если брать 8-ми часовой оплачиваемый день. То это 500*8 в день 4800 а в месяц 4800*24 = 115200р


 
Игорь Шевченко ©   (2010-10-11 19:30) [31]


> в месяц 4800*24 = 115200р


кто ж за такие деньги будет работать


 
Игорь Шевченко ©   (2010-10-11 19:35) [32]


> 500*8 в день 4800


где такие калькуляторы раздают?


 
sniknik ©   (2010-10-11 19:39) [33]

> Вас ведь это час работы.
это как считать, если например только моменты нажатия на клавиши сложить... то и пяти минут не будет. и в месяц это будет ОГО ГО  сколько... миллионером сразу наш Плохиш станет...

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


 
Anatoly Podgoretsky ©   (2010-10-11 21:09) [34]

Съэкономь деньги, сам напиши.


 
sniknik ©   (2010-10-12 03:01) [35]

> Съэкономь деньги, сам напиши.
... 5 лет учебы, 10 лет опыта... сэкономь деньги, найми программиста. (только не за пачку пельменей.)

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


 
Германн ©   (2010-10-12 03:24) [36]


> ведь есть же готовые прокси. наверняка есть и с заменой
> чего бы там ни было.
>

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


 
Уа3   (2010-10-12 09:38) [37]

Будете смеяться у меня 5 лет учебы, 10 лет опыта

разберусь, опыта нет.


 
Плохиш ©   (2010-10-12 10:23) [38]


> 5 лет учебы

начальнои и средней школы?

> 10 лет опыта

сантехником?

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


 
Виталий____   (2010-10-12 11:44) [39]

Высшее, высшее. Сейчас это норма. А я еще в свое время совестью мучимый был что курсовой "попросил" в общаге сделать на 3-м курсе...


 
Уа3   (2010-10-12 17:24) [40]

Высшее. И опыта 10 лет программирование. =)
Вот и нахожу поиск пути)


 
Уа3   (2010-10-12 17:24) [41]

решения.


 
Юрий Зотов ©   (2010-10-12 18:46) [42]

Боже!!!
Или я чего-то не понимаю, или здесь 3 дня фигней страдают.

buf: string; // А не pointer.
.... // Здесь заполняем buf символами, как обыкновенную строку.
buf := StringReplace(buf, "мама", "папа", ...); // См. StringReplace в справке
WriteFile(FSocket, @buf[1], Length(buf), BytesWrite, ov);

И все дела.


 
Плохиш ©   (2010-10-12 18:49) [43]


> Юрий Зотов ©   (12.10.10 18:46) [42]

три дня назад он сказал

> Уа3   (09.10.10 22:25) [11]
>
> Buf: string; никуда не годится.


Ну вот и гоняем фигню :-))


 
Anatoly Podgoretsky ©   (2010-10-12 19:57) [44]


> И все дела.

Все это ему было предложена, но он ни в какую.


 
Юрий Зотов ©   (2010-10-12 20:01) [45]


> Плохиш ©   (12.10.10 18:49) [43]
> Anatoly Podgoretsky ©   (12.10.10 19:57) [44]


Просто человек не понимает, что строкой можно работать, как с обычным буфером, только многое становится проще. Можно было и подсказать.


 
sniknik ©   (2010-10-12 20:22) [46]

> И все дела.
с мама/папа да, они одного размера. с другими вариантами это только начало...


 
sniknik ©   (2010-10-12 20:28) [47]

> с мама/папа да
ой что это я, блин, а архивация, а "динамика" (у него же задача заменить в странице а не "проходных" данных).


 
Уа3   (2010-10-13 19:14) [48]

sniknik, а что, страница не относится к "проходным" данным?. Насчет String - делал, спрашивал, у меня из-за content-length бьется страница или из-за String.

Видимо если править content-length, то все заработает. Но, как быть с тем, что String по вместимости мала. Прошу посмотреть листинг, получится ли передача страниц со string.. для построчных комманд это конечно вариант и решение.


 
sniknik ©   (2010-10-13 19:33) [49]

> sniknik, а что, страница не относится к "проходным" данным?
я же тебе приводил ссылку с примером xml, данными, и правилами формирования, страница появляется уже потом, в клиенте. причем кое что из ее контента может быть составным, кое что взято прямо с машины пользователя, допустим взято "ОЛООЛО" что дальше?.
для того чтобы заменить чтото в такой странице тебе нужно будет полностью сэмулировать работу клиента, на ней, и ее окружение.

теперь сам скажи, есть разница или нет?

> Но, как быть с тем, что String по вместимости мала.
учится, учится, и еще раз учиться. 10 лет опыта говоришь? тогда через 100 приходи...

> Прошу посмотреть листинг, получится ли передача страниц со string..
зачем смотреть? я это и так знаю. и тебе говорили/предлагали не просто так "от балды".


 
Palladin ©   (2010-10-13 19:36) [50]


> 10 лет опыта говоришь?

на Turbo Pascal!!! )


 
Плохиш ©   (2010-10-13 23:21) [51]


> Но, как быть с тем, что String по вместимости мала.

Во, людям уже 2гиг мало 8)


 
Германн ©   (2010-10-14 04:13) [52]


> Palladin ©   (13.10.10 19:36) [50]
>
>
> > 10 лет опыта говоришь?
>
> на Turbo Pascal!!! )
>

Если это действительно опыт, то не важно на чём!


 
Плохиш ©   (2010-10-14 10:42) [53]


> Если это действительно опыт, то не важно на чём!

Я спрашивал, он скрывает.


 
oxffff ©   (2010-10-14 11:41) [54]


> Юрий Зотов ©   (12.10.10 18:46) [42]
> Боже!!!
> Или я чего-то не понимаю, или здесь 3 дня фигней страдают.
>
>
> buf: string; // А не pointer.
> .... // Здесь заполняем buf символами, как обыкновенную
> строку.
> buf := StringReplace(buf, "мама", "папа", ...); // См. StringReplace
> в справке
> WriteFile(FSocket, @buf[1], Length(buf), BytesWrite, ov);
>
>
> И все дела.


Не все.

sizeof(char)*Length(buf)?


 
Юрий Зотов ©   (2010-10-14 14:52) [55]


> oxffff ©   (14.10.10 11:41) [54]

О, месье знает толк в извращениях...
:o)


 
oxffff ©   (2010-10-14 15:14) [56]


> Юрий Зотов ©   (14.10.10 14:52) [55]
>
> > oxffff ©   (14.10.10 11:41) [54]
>
> О, месье знает толк в извращениях...
> :o)


На выходных задумал произвести рефакторинг над компилятором.
Четыре дня уже веду бой. Видимо только к концу следующей недели я наконец то восстановлю работу компилятора хотя бы в том виде (до начало рефакторинга). Месье и вправду любит извращения.


 
Юрий Зотов ©   (2010-10-14 17:15) [57]


> oxffff ©   (14.10.10 15:14) [56]

Увы, месье не одинок...
:o)



Страницы: 1 2 вся ветка

Форум: "Начинающим";
Текущий архив: 2011.01.09;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.6 MB
Время: 0.004 c
15-1285184688
NailMan
2010-09-22 23:44
2011.01.09
А вот собрался показать себя таки на "модельном МАКСе"


2-1286865219
Den
2010-10-12 10:33
2011.01.09
Как проверить есть ли данные в поле


2-1287154198
AnGel
2010-10-15 18:49
2011.01.09
Как принять собственное сообщение?


6-1233229932
Kirill
2009-01-29 14:52
2011.01.09
ICS. Отправка письма


15-1285391446
ForumReader
2010-09-25 09:10
2011.01.09
Хочу предложить сервис платных ответов на срочные/сложные вопросы





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский