首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Delphi文件:根据NZB-IdNNTP从Usenet下载文件

Delphi文件:根据NZB-IdNNTP从Usenet下载文件
EN

Stack Overflow用户
提问于 2013-04-22 16:25:57
回答 1查看 463关注 0票数 0

我有一个NZB文件,类似于:

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8" ?>
<nzb xmlns="http://www.newzbin.com/DTD/2003/nzb">
 <head>
   <meta type="title">Your File!</meta>
   <meta type="tag">Example</meta>
 </head>
 <file poster="Joe Bloggs &lt;bloggs@nowhere.example&gt;" 
       date="1071674882" 
       subject="Here's your file! abc-mr2a.r01 (1/2)">
   <groups>
     <group>alt.binaries.newzbin</group>
     <group>alt.binaries.mojo</group>
   </groups>
   <segments>
     <segment bytes="102394" number="1">123456789abcdef@news.newzbin.com</segment>
     <segment bytes="4501" number="2">987654321fedbca@news.newzbin.com</segment>
   </segments>
 </file>
</nzb>

有没有办法使用Indy IdNNTP下载和汇编这个文件?对于任何示例代码,我将不胜感激。提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-23 02:24:15

实际上,这很简单:

代码语言:javascript
复制
  Xml := TXmlVerySimple.Create;
  Xml.Text:=recieved_nzb;

  //Each <file> section
  ChildNodes := Xml.Root.ChildNodes;
  for q := 0 to ChildNodes.Count - 1 do
    begin    
      IdNNTP1.SelectGroup(ChildNodes.Items[q].Find('groups').Find('group').Text);
      SegmentNodes:=ChildNodes.Items[q].Find('segments').ChildNodes;

      //Each <segment> (message)
      for w := 0 to SegmentNodes.Count - 1 do
      begin
          idNNTP1.GetArticle(SegmentNodes.Items[w].Text,IdMessage1);
          IdMessage1.SaveToFile('c:\!!!!\'+SegmentNodes.Items[w].Text, false);
          Application.ProcessMessages;
      end;
    end;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16142527

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档