![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Спецсимволы HTML [D7, WinXP]
Tatarin © (2009-03-12 23:47:00)Здравствуйте. Возникла такая задача, с сайта скачивается страница, затем из нее вырезаются некоторые данные. Все это проходит на ура, но. Среди текста встречаются специальные символы, вроде & чтобы их заменить написал такую простую функцию
function HTMLtoANSI(str: string): string;
procedure REP(old, new: string);
begin
str:= StringReplace(str, old, new, [rfReplaceAll, rfIgnoreCase]);
end;
begin
REP('&' , '&');
REP('"' , '"');
REP('' , '>');
REP('¤' , '¤');
REP('¦' , '¦');
REP('§' , '§');
REP('©' , '©');
REP('ª' , 'ª');
REP('«' , '«');
REP('»' , '»');
REP('®' , '®');
REP('°' , '°');
REP('±' , '±');
REP('µ' , 'µ');
REP('¶' , '¶');
REP('·' , '·');
REP('¹' , '¹');
REP('€' , '€');
REP('™' , '™');
REP('†' , '†');
Result:= str;
end;
Не гениальна, но с задачей пока справляется. Но кроме них с тексте редко, но все же выскакивают символы вроде '. Писать подобное моей функции для них будет совсем убогим занятием, подскажите, как выйти из ситуации.
ps. сайт не мой, почему так - не знаю.
Плохиш (2009-03-16 13:17:00) [1]
> Tatarin (12.03.09 23:47)
>
>
Почему бы не использовать интерфейс IHTMLDocument2
http://www.swissdelphicenter.ch/de/showcode.php?id=2352
sniknik (2009-03-14 04:47:00) [2]> Хотя, и здесь я думаю производительность будет не очень высока,
при чем здесь "производительность здесь"? это пример показывающий "сборку" чтобы понять как "разбирать", понять что это всего лишь код символа в текущей для странице кодировке...
Tatarin (2009-03-14 02:35:00) [3]Спасибо. Примерно такой метод я и сам хотел использовать. Здесь, конечно, более оптимально, чем у меня.
Хотя, и здесь я думаю производительность будет не очень высока, ведь я могу обрабатывать только "строчки", которых на каждой странице около 2 тысяч.
Немного поразмыслив, решил, что прежде чем заменять, стоит просто проверить, есть ли комбинация в моей строке(они встречаются не так часто). Думаю, это мне поможет, спасибо.
sniknik (2009-03-13 21:41:00) [4]> смотри ка прошло...
хотя и не все :(
вот эти строчки
st = st + '&#'+i+' - '+i+'
'
нужно так (убери пробелы)
st = st + '& a m p # '+i+' - & #'+i+'
'
sniknik (2009-03-13 21:35:00) [5]смотри ка прошло...
скопируй в текстовый документ переименуй документ в *.html ... думаю понятно. поймешь принцип формирования, поймешь и как разбирать...
sniknik (2009-03-13 21:31:00) [6]> Встречал даже букву "Ж" в такой кодировке.
насколько позволяют скудные знания по html и яваскрипту (читал книжку недавно), получаются они так
(если форум прпустит...)
chars
/* function load() {
var st = '';
for(var i=0; i*/
кстати учти, что при другой кодовой странице символы будут совсем другие...
Tatarin (2009-03-12 23:49:00) [7]Форум скушал мои символы. На том сайте символ ' представлен в виде & # 39 ; без пробелов. При этом, там так может быть представлен практически любой символ. Встречал даже букву "Ж" в такой кодировке.