Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 05.07.2011, 10:39
Аватар для mak-karpov
mak-karpov mak-karpov вне форума
Активный
 
Регистрация: 18.09.2008
Сообщения: 235
Версия Delphi: 2010 и 7
Репутация: 1242
По умолчанию TXMLDocument в D2010, или CP1252->CP1251

Всем добрый день, есть вот такой кусок кода:
Код:
rss.XML.Text := rssget.Get('http://www.delphisources.ru/pages/scripts/rss.xml');
  rss.Active := true;
  rss.ChildNodes.Nodes['rss'].ChildNodes.Nodes['channel'].ChildNodes.Delete('title');
  rss.ChildNodes.Nodes['rss'].ChildNodes.Nodes['channel'].ChildNodes.Delete('link');
  rss.ChildNodes.Nodes['rss'].ChildNodes.Nodes['channel'].ChildNodes.Delete('description');
  rss.ChildNodes.Nodes['rss'].ChildNodes.Nodes['channel'].ChildNodes.Delete('language');

  sources.Items.Clear;
  links.Clear;

  c := rss.ChildNodes.Nodes['rss'].ChildNodes.Nodes['channel'].ChildNodes.Count;
  for i := 0 to c - 1 do
    sources.Items.Add(rss.ChildNodes.Nodes['rss'].ChildNodes.Nodes['channel'].ChildNodes.Nodes[i].ChildNodes.Nodes['title'].Text);


  rss.Active := false;
После работы в sources (это list box) сплошная крякозябра. Как выяснилось, текст в CP1252:
Код:
Íîâûé èñõîäíèê ïîä íàçâàíèåì "Logic simulation"
Íîâûé èñõîäíèê ïîä íàçâàíèåì "Air Simulator"
Íîâûé èñõîäíèê ïîä íàçâàíèåì "Syntax highlighting Delphi"
Íîâûé èñõîäíèê ïîä íàçâàíèåì "Hologram code/decode"
Íîâûé èñõîäíèê ïîä íàçâàíèåì "Improved Buttons and ProgressBar"
Íîâûé èñõîäíèê ïîä íàçâàíèåì "PE Sniffer"
Íîâûé èñõîäíèê ïîä íàçâàíèåì "Êàðòû Êàðíî"
Íîâûé èñõîäíèê ïîä íàçâàíèåì "Rubik's Cube"
Íîâûé èñõîäíèê ïîä íàçâàíèåì "CAD5"
Íîâûé èñõîäíèê ïîä íàçâàíèåì "Library Database"
Íîâûé èñõîäíèê ïîä íàçâàíèåì "IT.DGT"
Íîâûé èñõîäíèê ïîä íàçâàíèåì "Multi Thread"
Íîâûé èñõîäíèê ïîä íàçâàíèåì "Directory Monitor"
Íîâûé èñõîäíèê ïîä íàçâàíèåì "Processess, Threads, Modules"
Íîâûé èñõîäíèê ïîä íàçâàíèåì "RTimer"
Íîâûé èñõîäíèê ïîä íàçâàíèåì "Downsampling optimise"
Íîâûé èñõîäíèê ïîä íàçâàíèåì "fwZIP - Ðàáîòà ñ ZIP àðõèâàìè"
Íîâûé èñõîäíèê ïîä íàçâàíèåì "Ñïëàéí íà 8 òî÷åê"
Íîâûé èñõîäíèê ïîä íàçâàíèåì "Äîìèíî 2.0"
Как перекодировать?
__________________
Кнопка "+" - весы в правом верхнем углу сообщения...
Ответить с цитированием
  #2  
Старый 05.07.2011, 13:20
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию


попробуй на IXMLDOM*.
http://narod.ru/disk/18132783001/DSRSS.rar.html
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #3  
Старый 05.07.2011, 14:22
Аватар для mak-karpov
mak-karpov mak-karpov вне форума
Активный
 
Регистрация: 18.09.2008
Сообщения: 235
Версия Delphi: 2010 и 7
Репутация: 1242
По умолчанию

А ты в какой версии Delphi компилил?

P.S. Вроде вот:
Код:
function process(s : string) : string;
var i,p : integer;
const
  cp1252 = 'àáâãä叿çèéêëìíîïðñòóôõö÷øùúûüýþÿÀÁÂÃÄŨÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞß';
  cp1251 = 'абвгдеёжзийклмнопрстуфхцчшщъыьэюяАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ';
begin
  for i := 1 to length(s) do begin
    p := pos(s[i],cp1252);
    if p <> 0 then
      s[i] := cp1251[p];
  end;
  result := s;
end;
__________________
Кнопка "+" - весы в правом верхнем углу сообщения...
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 23:00.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025