Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.08.2010, 11:07   #1
eFail
Пользователь
 
Регистрация: 25.07.2010
Сообщений: 17
Лампочка Экранирование кавычек и запятых в Delphi

как экранировать одинарные ковычки (') и запятые (,) в делфи?из-за этого программа не копирует правельную инфу....

пример. b:=pos('"', 'href',str[p])-1;
Истины нет, все дозволено
eFail вне форума Ответить с цитированием
Старый 17.08.2010, 11:18   #2
Terran
Участник клуба
 
Аватар для Terran
 
Регистрация: 28.11.2007
Сообщений: 1,521
По умолчанию

Попробуйте такой вариант:
Код:
b:=pos('"', 'href'+',str[p]')-1;
Всегда рад помочь!
Terran вне форума Ответить с цитированием
Старый 17.08.2010, 11:21   #3
eFail
Пользователь
 
Регистрация: 25.07.2010
Сообщений: 17
По умолчанию

твой код неправельный....потому что идет сначала текст который ищется а str[p] это просто переменная которая содержит в себе код страницы, так что её искать ненадо.
"', 'href вот с этим текстом надо работать....тут ковычки и запятые надо экранировать
Истины нет, все дозволено
eFail вне форума Ответить с цитированием
Старый 17.08.2010, 11:28   #4
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

Ну так может вы поясните, что вы хотите написать, а то угадывать сложно?

Вообще-то, ни кавычки, ни запятая не нуждаются в какой-то особой обработке. В спец-обработке нуждаются апостроф (как ограничитель строки) и некоторые непечатные символы (которые, по очевидным причинам, нельзя представить в виде текста).
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума Ответить с цитированием
Старый 17.08.2010, 11:32   #5
Terran
Участник клуба
 
Аватар для Terran
 
Регистрация: 28.11.2007
Сообщений: 1,521
По умолчанию

Цитата:
твой код неправельный....
Я его чисто для примера написал, чтобы показать как можно кавычки, скажем просто, экранировать. Вам надо было поподробней написать где первый параметр, а где второй.
В общем, смысл такой. Кавычки или запятые, которые мешают, берите в кавычки и потом просто знаком "+" слаживайте с другим текстом.
Опять же пример:
Код:
b:=pos('"'+','+'href' ,str[p])-1;
Если где в символах ошибся, то подправьте.
Всегда рад помочь!

Последний раз редактировалось Terran; 17.08.2010 в 11:34.
Terran вне форума Ответить с цитированием
Старый 17.08.2010, 12:04   #6
eFail
Пользователь
 
Регистрация: 25.07.2010
Сообщений: 17
По умолчанию

основоной код таков,
Код:
 
   for p:=1 to 5 do
   begin
   ssilka:='http://сайт.ws/page/'+inttostr(p);
   str[p]:=idhttp1.Get(ssilka);
   a:=pos('http://сайт.ws/user/',str[p])+22 ;
   b:=pos('"', 'href',str[p])-1;
   memo1.lines.add(copy(str[p],a,b-a));
прога должна уметь собирать ник неймы всех постеров со страниц которые указаны в переменной P.
почему-то программа сейчас выводит только пробелы....вы как-то не правельно проэкранировали...да и мне в голову ниче не приходит....точнее я знаю почему вы не правельно проэкранировали, но обьеснить и исправить не могу....словарного запаса не хватает))
'"'вот у вас последняя ковычка она какбы закрывает тот текст который должен искатся программой, а эта ковычка тоже доджна быть в этом тексте....т.е по идее их там должно быть 2....но если поставить 2 ковычки то дальше весь код прога понимает не правельно....%( Незнаю если кто-то что-то понял с моих слов.
Истины нет, все дозволено

Последний раз редактировалось Stilet; 17.08.2010 в 13:53.
eFail вне форума Ответить с цитированием
Старый 17.08.2010, 12:10   #7
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

Да, едрён-батон, вы можете словами написать, что вы хотите сделать строчкой pos('"', 'href',str[p]) ??

Ну не имеет она сейчас смысла, как ни посмотри.
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума Ответить с цитированием
Старый 17.08.2010, 13:00   #8
eFail
Пользователь
 
Регистрация: 25.07.2010
Сообщений: 17
По умолчанию

Эта строка часть HTML кода который программа должна найти в исходном коде страицы....там много запятых и одинарных корвычек....и прога понимает что нужно найти неправельно, поэтому мне нужно узнать как их проэкронировать!
Истины нет, все дозволено
eFail вне форума Ответить с цитированием
Старый 17.08.2010, 13:30   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Во-первых: еще со времен Паскаля Pos принимал два параметра. Это что отменено?
Во-вторых: автор, если ты хочешь искать с помошью этой функции советую тебе удалять из строки до найденного элемента процедурой delete, ибо pos всегда ищет с начала строки. потому тебе начало нужно передвигать на конец найденного тобой блока, чтоб pos искал дальше.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 17.08.2010, 13:32   #10
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

Цитата:
Сообщение от eFail Посмотреть сообщение
Эта строка часть HTML кода который программа должна найти в исходном коде страицы....
Вам сложно указать, что конкретно вы хотите найти в строке?
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Экранирование двойных кавычек в JavaScript Revival001 JavaScript, Ajax 20 26.06.2010 17:07
Экранирование кавычек в С Antoha Общие вопросы C/C++ 7 16.05.2010 21:02
Замена всех запятых, находящихся не в скобках motorway Microsoft Office Excel 6 14.07.2009 16:23
Экранирование кавычек в Delphi kiber_punk Общие вопросы Delphi 7 29.12.2008 19:28
экранирование кавычек в C (аналог magic_quotes)? fis Общие вопросы C/C++ 1 26.06.2008 19:11