Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Спецсимволы 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 ; без пробелов. При этом, там так может быть представлен практически любой символ. Встречал даже букву "Ж" в такой кодировке.


Наверх

Титульная страница Поиск, карта сайта Написать письмо