парс страницы
В общем, начал я парсить html страницу, все прошло нормально, нашел все, что хотел. Результат я записал в мемо. Помимо нужной мне информации в мемо еще куча пустых строк, в которых только символы в роде таких: #$A и #$D.
Помогите пожалуйста от них избавиться. |
#$A и #$D это возврат и перевод каретки. В цикле проверять и ненужное выкидывать
Код:
for i := memo1.lines.count-1 downto 0 do |
Вложений: 2
Что делать, если такие символы присутствуют в строчке с нужной мне информацией, не удалять же всю строчку? Взять ее отдельно в цикл, где будут удаляться только эти символы?
И еще, в строчках присутствуют и перевод и возврат каретки, и пробелы тоже, количество пробелов неизвестно. Что делать в таком случае? ------ Код:
procedure TForm1.Button1Click(Sender: TObject); |
Цитата:
Если есть желание, то можно углубиться в StrUtils |
Цитата:
Хотя, сейчас попробую еще кое-что сделать. |
А зачем их вообще удалять? Их нужно просто игнорировать.
При парсинге следует использовать такое понятие как "разделитель". Символы конца строки и возврата каретки являются такими же разделителями, как и пробел. И обрабатывать все эти символы нужно единообразно. Можно, конечно, пользоваться pos, copy и del, но это очень нерационально с точки зрения скорости обработки. |
Тогда скажите, какие из этих символов возврат и перевод каретки (#$A #$D), и как понимать их комбинации типа #$A#$D#$A. И я не пойму, как их игнорировать, если я выполняю парс страницы с помощью регулярных выражений?
|
Символ, имеющий десятичный номер 10 или 16-чный $A, называется символом конца строки (LF), а 13 и $D соответственно - символом возврата каретки (CR).
Комбинация #$A#$D#$A в нормальном случае может встретиться только в виде #$D#$A#$D#$A, где она обозначает пустую строку. В DOS и Windows принято конец строки обозначать парой символов #$D#$A, в Unix для этих же целей принято использовать единственный символ #$A. |
01:59. |