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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.08.2011, 00:27   #1
DKENT
Форумчанин
 
Регистрация: 09.09.2010
Сообщений: 114
По умолчанию Парсинг значения

Здраствуйте, неполучается пропарсить значение

Код:
s:='<script language="javascript">
document.write("12 - 1 =");
</script>';
Memo2.Text:=Copy(s,PosEx('"',s,Pos('document.write(',s))+16,PosEx(' =',s,PosEx('"',s,Pos('document.write(',s)))-PosEx('"',s,Pos('document.write(',s))-16);
В Memo2.Text нужно вывести 12 - 1
Подскажите где ошибка!
DKENT вне форума Ответить с цитированием
Старый 25.08.2011, 01:09   #2
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Зачем изобретаете велосипед?

Код:
function TForm1.getData(aInData:string):string;
const
  aStart='<script language="javascript">document.write("';
  aEnd = ' =");</script>';
begin
Result:=Copy(aInData,Pos(aStart,aInData)+Length(aStart),Pos(aEnd,aInData)-Length(aStart)-1);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
   //Edit1.text содержит <script language="javascript">document.write("12 - 1 =");</script>
   Memo1.text:=getData(Edit1.Text);
end;
Если помогло, с вас отзыв в репу

Последний раз редактировалось Человек_Борща; 25.08.2011 в 01:12.
Человек_Борща вне форума Ответить с цитированием
Старый 25.08.2011, 02:16   #3
DKENT
Форумчанин
 
Регистрация: 09.09.2010
Сообщений: 114
По умолчанию

К сожалению непомогло!
Не работает данный код(
DKENT вне форума Ответить с цитированием
Старый 25.08.2011, 02:26   #4
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

У меня все работает и прекрастно выводит 12 - 1(Хоть там 575675675675 - 345345353453).
Вложения
Тип файла: zip Projects.zip (151.2 Кб, 13 просмотров)
Человек_Борща вне форума Ответить с цитированием
Старый 25.08.2011, 08:16   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от DKENT
Код:
s:='<script language="javascript">
document.write("12 - 1 =");
</script>';
поясните, пожалуйста, а что это за ересь написана в Вашем примере!
Таким образом строку S присвоить НЕ УДАСТЬСЯ!

Поэтому, проблема у Вас, скорее всего в том, что в исходной строке всё совсем не так. Например, строчка document.write() начинается с новой строки...

я бы предложил
либо разбирать строку последовательно
(сначала найти <script потом вырезать всё до </script
и уже в этой строке искать document.write()

либо воспользоваться регулярными выражениями (нужно подключить библиотечку TRegExpr )

Последний раз редактировалось Serge_Bliznykov; 25.08.2011 в 08:20.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 25.08.2011, 12:44   #6
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
потом вырезать всё до </script
поверьте, лучше не надо, PosEx в руки.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 25.08.2011, 13:46   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Пепел Феникса
поверьте, лучше не надо, PosEx в руки.
Пепел Феникса, согласен с Вами замечанием.

хотя в данном случае не принципиально...
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Определение табличного значения имея изначально 2 исходных значения? Михаил К. Общие вопросы Delphi 2 18.06.2011 21:32
Вывод значения time_t и значения uid_t и gid_t papos Помощь студентам 0 23.02.2011 21:49
Парсинг DeDoK Общие вопросы Delphi 8 02.02.2011 14:20
Как найти все N-значения и заменить их на значения из 2-х ячеек? Smile2007 Microsoft Office Excel 10 09.12.2010 09:34
В зависимости от значения в ComboBox1 выводить значения в ComboBox2 LeX2009 БД в Delphi 14 21.05.2010 16:49