转到RSSReader中的下一个项目

时间:2017-03-19 22:58:07

标签: c#

我使用C#,这是在Visual Studio 2016中完成的。

我从学校接受了锻炼。我收到了半个RSS-Reader,我的任务是完成它。我完成了练习,但我并不满足。它只显示RSS代码中的第一项,如果你问我,它是无用的。我想创建一个按钮,显示下一个和RSS代码。

当我告诉我的老师时,他说这很难,但我可能会这样做(我每周只有一天课,一个月前开课)。他建议我使用while循环,但我根本不知道从哪里开始。

这是我的代码:

namespace RSSReader
{
    public partial class RSSReaderForm : Form
    {
        public RSSReaderForm()
        {
            InitializeComponent();
        }

        private void toonRssCodeKnop_Click(object sender, EventArgs e)
        {
            //Aanmaken variabele+nieuw webclient object in de variabele stoppen
            WebClient client = new WebClient();

            //RSS code ophalen voor de meegegeven link
            MessageBox.Show(client.DownloadString(RSSTextBox.Text));
        }

        private void toonBerichtKnop_Click(object sender, EventArgs e)
        {
            //[DEEL 1 - ophalen RSS code]
            //Aanmaken variabele + nieuw webclient object in de variabele stoppen
            WebClient client = new WebClient();
            //RSS code ophalen voor de meegegeven link en in een nieuwe string variabele stoppen
            string rssCode = client.DownloadString(RSSTextBox.Text);

            //[DEEL 2 - Eerste bericht uitlezen, deze staat tussen <item> en </item> tekst]            
            int itemStartPositie = rssCode.IndexOf("<item>");  //Zoek de positie waarop de eerste <item> tekst staat.
            itemStartPositie = itemStartPositie + 6;           //Dit voorkomt dat de teskst <item> zelf wordt meegekopierd.
            int itemEindPositie = rssCode.IndexOf("</item>");  //Zoek de positie waarop de eerste </item> tekst staat.
            int itemLengte = itemEindPositie-itemStartPositie; //Bereken hoeveel posities er tussen begin- en eind-positie zitten

            //Kopieer vanaf positie itemStartPositie precies itemLengte letters
            string itemCode = rssCode.Substring(itemStartPositie, itemLengte);

            //[DEEL 3 - in itemCode de title en description opzoeken en deze in de labels plaatsen]
            //[VOEG HIER JE EIGEN CODE TOE]
            int titelStartPositie = rssCode.IndexOf("<title>");
            titelStartPositie = titelStartPositie + 7;
            int titelEindPositie = rssCode.IndexOf("</title>");
            int titelLengte = titelEindPositie - titelStartPositie;

            int descriptionStartPositie = rssCode.IndexOf("<description>");
            descriptionStartPositie = descriptionStartPositie + 13;
            int descriptionEindPositie = rssCode.IndexOf("</description>");
            int descriptionLengte = descriptionEindPositie - descriptionStartPositie;

            int linkStartPositie = rssCode.IndexOf("<link>");
            linkStartPositie = linkStartPositie + 6;
            int linkEindPositie = rssCode.IndexOf("</link>");
            int linkLengte = linkEindPositie - linkStartPositie;

            string titelCode = rssCode.Substring(titelStartPositie, titelLengte);
            string descriptionCode = rssCode.Substring(descriptionStartPositie, descriptionLengte);
            string linkCode = rssCode.Substring(linkStartPositie, linkLengte);

            titelLabel.Text = titelCode;
            descriptionLabel.Text = descriptionCode;
            linkLabel.Text = linkCode;
        }

        private void linkLabel_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            System.Diagnostics.Process.Start(linkLabel.Text);
        }

        private void volgendeBerichtKnop_Click(object sender, EventArgs e)
        {

        }
    }
}

我只是不知道从哪里开始以及如何去做。帮助会很棒。

0 个答案:

没有答案