PDA

View Full Version : ایجاد برنامه جمع آوری خبر



mahtab20011
یک شنبه 26 شهریور 1396, 07:34 صبح
من می خواهم از سایت مثل خبر لند قسمت اخبار اقتصادی رو بخونه و بهم یک جا توی یک نرم افزار بهم نشون بده چگونه این کار راباید بکنم

رامین مرادی
یک شنبه 26 شهریور 1396, 08:02 صبح
تاحالا کار نکردم اما فک کنم باید RSS اون سایت رو بخونی و اطلاعاتو یه جا نمایش بدی. معمولا سایتهای خبری RSS دارن. دربارش تو همین سایت سرچ کن مطلب زیاده

mahtab20011
یک شنبه 02 مهر 1396, 07:41 صبح
تاحالا کار نکردم اما فک کنم باید RSS اون سایت رو بخونی و اطلاعاتو یه جا نمایش بدی. معمولا سایتهای خبری RSS دارن. دربارش تو همین سایت سرچ کن مطلب زیاده
متشکر
اگر بخواهیم در خروجی فایل که توسط rss تولید شده جستجو انجام دهیم چه طور اینکار راباید بکنیم ؟

رامین مرادی
یک شنبه 02 مهر 1396, 08:03 صبح
متشکر
اگر بخواهیم در خروجی فایل که توسط rss تولید شده جستجو انجام دهیم چه طور اینکار راباید بکنیم ؟

شما داده های دریافتی رو بریز تو یه دیتا تیبل بعد با یه حلقه ساده میتونی سرچ انجام بدی یا با استفاده از فیلتر ها جستجوی پیشرفته تری روی همون دیتا تیبل انجام بدی

mahtab20011
یک شنبه 02 مهر 1396, 09:33 صبح
شما داده های دریافتی رو بریز تو یه دیتا تیبل بعد با یه حلقه ساده میتونی سرچ انجام بدی یا با استفاده از فیلتر ها جستجوی پیشرفته تری روی همون دیتا تیبل انجام بدی
من کد را نوشتم آیا لازم است دیتا تیبل براش ایجاد کنم یاتوی همین برنامه می شه فقط حلقه جستجو اضافه کرد.باتشکر


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Net;
using System.Xml;

namespace rssproject
{
public partial class mainfrm : Form
{
public mainfrm()
{
InitializeComponent();
}
List<Rssitem> lstitem = new List<Rssitem>();
public void load_rss()
{
try
{
listView1.Items.Clear();

foreach (Rssitem rss in lstitem)
{

ListViewItem listview = new ListViewItem();
listview.Text = rss.Title;
listview.Tag = rss;

// listview.SubItems.Add(rss.Title);
listview.SubItems.Add(rss.Matn);
listview.SubItems.Add(rss.Link);

listView1.Items.Add(listview);
}
}
catch (Exception) { MessageBox.Show("خطا : "); }

}
private void load_data(string RssSite)
{
try
{
WebRequest request = WebRequest.Create(RssSite);
Stream stream = request.GetResponse().GetResponseStream();
XmlDocument rss = new XmlDocument();
rss.Load(stream);
XmlNodeList items = rss.SelectNodes("rss/channel/item");
foreach (XmlNode item in items)
{
Rssitem rssitem = new Rssitem();
rssitem.Title = item.SelectSingleNode("title").InnerText;
rssitem.Matn = item.SelectSingleNode("description").InnerText;
rssitem.Link = item.SelectSingleNode("link").InnerText;
lstitem.Add(rssitem);

}
}
catch { }
}

private void mainfrm_Load(object sender, EventArgs e)
{
load_data("https://www.mashreghnews.ir/rss/tp/16");
load_rss();
}



private void listView1_SelectedIndexChanged(object sender, EventArgs e)
{
try
{
Rssitem rss = new Rssitem();
if (listView1.SelectedItems.Count > 0)
{
rss = (Rssitem)listView1.SelectedItems[0].Tag;
System.Diagnostics.Process.Start(rss.Link);
}
}
catch { }
}
}
}

رامین مرادی
یک شنبه 02 مهر 1396, 10:21 صبح
خب الان شما میتونی یه تکست باکس با یه باتن رو فرم بزاری بعد تو رویداد کلیک باتن یه حلقه بنویس که لیست ویو رو از اول پیمایش کنه و در صورتی که متن تکست باکس با اون ردیف از لیست ویو برابر بود با یه پیغامی اون متن پیدا شده رو نشون بده (اینم بستگی به طراحی خودتون داره)

mahtab20011
سه شنبه 04 مهر 1396, 10:15 صبح
خب الان شما میتونی یه تکست باکس با یه باتن رو فرم بزاری بعد تو رویداد کلیک باتن یه حلقه بنویس که لیست ویو رو از اول پیمایش کنه و در صورتی که متن تکست باکس با اون ردیف از لیست ویو برابر بود با یه پیغامی اون متن پیدا شده رو نشون بده (اینم بستگی به طراحی خودتون داره)
متشکراگر بخواهم کد ; ()TextBox txt = new TextBox در این برنامه بزارم چون( نمی خواهم اول کنترل را ایجاد کنم بعد رویداد کلیک مربوط به باتن این تکست باکس بنویسم) کجای برنامه قرار دهم بهتر است

رامین مرادی
سه شنبه 04 مهر 1396, 11:48 صبح
متشکراگر بخواهم کد ; ()TextBox txt = new TextBox در این برنامه بزارم چون( نمی خواهم اول کنترل را ایجاد کنم بعد رویداد کلیک مربوط به باتن این تکست باکس بنویسم) کجای برنامه قرار دهم بهتر است
در رویداد لود میتونی بزاری. یا مثلا یه کادر جستجو داری کاربر روش کلیک که کرد اینو بساز. بستگی به ایده و نظر خودت داره