PDA

View Full Version : نمایش فایل متنی در داخل combobox از اینترنت



Iman7228
شنبه 25 آذر 1391, 16:18 عصر
سلام دوستان.
من یه فایل متنی دارم که باید از راه اینترنت در درون combobox لود بشه.

فایل در آدرس زیر ذخیره شده :
http://iman7228.persiangig.com/test.txt

محتویاتش به صورت زیر هست :



1:iman:7228:1367:babol (Computer)
2:ali:1509:1365:babol (IT)
3:Sana:2050335:1369 (Architecture)





حالا من میخوام قسمت آخر هر خط (دقیقا او قسمت هایی که Bold شده ) رو درون کمبوباکس نمایش بدم :

مثلا فقط تیکه babol (Computer) رو نمایش داده بشه

Iman7228
شنبه 25 آذر 1391, 17:00 عصر
من از کدزیر استفاده کردم :

try
{
WebClient wc = new WebClient();
string data = wc.DownloadString(textBox1.Text);
comboBox1.Items.Add(data);
}
catch(Exception ex)
{
MessageBox.Show("ERROR");
}


داخل تکست باکس (textbox1) آدرس سایت رو ریختم.
ولی تموم اطلاعاتمو تو یک خط نشون میده.
کسی از دوستان نظری نداره؟

SHD.NET
شنبه 25 آذر 1391, 17:53 عصر
میتونی با دستور اسپلیت دونقطه ها رو ازهم جدا جدا کنی . بعدشم آخرین گزینه رو نشون بدی

SHD.NET
شنبه 25 آذر 1391, 17:59 عصر
بفرما اینم نمونه کد:

string[] ds = data.Split(":");
comboBox1.Items.Add(ds.Length);


:چشمک:\\\موفق باشید///:چشمک:

Iman7228
شنبه 25 آذر 1391, 18:08 عصر
دقیقا شکل دستوریشو نمیدونم...

آخه دقیقا تو هر خط 4تا علامت (:) دارم که دقیقا بعد از آخرین(چهارمین) (:) ، حروف باید در combobox نمایش داده بشه..

میشه بیشتر راهنمایی کنید... ممنون میشم...

Iman7228
شنبه 25 آذر 1391, 18:27 عصر
کد رو با تلاشی که داشتم به صورت زیر درآوردم :D

منتها تموم اطلاعات موجود در فایل تکست رو در combobox نمایش میده.

چیکار کنم که متن دلخواه رو نمایش بده استاد؟؟؟



WebClient wc = new WebClient();
string data = wc.DownloadString(textBox1.Text);
string[] ds = data.Split(':');
for (int i = 0; i < ds.Length; i++)
comboBox1.Items.Add(ds[i]);

Iman7228
شنبه 25 آذر 1391, 23:39 عصر
بفرما اینم نمونه کد:

string[] ds = data.Split(":");
comboBox1.Items.Add(ds.Length);


:چشمک:\\\موفق باشید///:چشمک:

استاد این کدی که شما دادی فقط یه عدد رو برمیگردونه... لطفاً یه نگاه به پست بالایی همین پست بنداز و ببین کجای کدی که من نوشتم ، اشتباهه... ممنون

plus
شنبه 25 آذر 1391, 23:59 عصر
WebClient wc = new WebClient();
string data = wc.DownloadString(textBox1.Text);
string[] lines = data.Split('\n');
foreach (string line in lines)
{
string specifiedPart = line.SubString(line.LastIndexOf(':') + 1);
comboBox1.Items.Add(specifiedPart);
}

اینو اجرا نکردم ولی در صورتی که قسمت آخر هر خط که مورد نظرتون هست با ":" جدا بشه باید کار کنه...
اول با Split خط ها رو جدا میکنیم بعد با جستجوی ":" در آخر هر خط، قسمت ادامه ":" رو جدا میکنیم و به CB اضافه میکنیم.

Mahmoud.Afrad
شنبه 25 آذر 1391, 23:59 عصر
به این شکل بنویسید:
//using System.Linq;

try
{
WebClient wc = new WebClient();
string data = wc.DownloadString("http://iman7228.persiangig.com/test.txt");
comboBox1.DataSource = data.Split('\n').Select(line => line.Split(':').LastOrDefault()).ToList();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}

Iman7228
یک شنبه 26 آذر 1391, 11:42 صبح
به این شکل بنویسید:
//using System.Linq;

try
{
WebClient wc = new WebClient();
string data = wc.DownloadString("http://iman7228.persiangig.com/test.txt");
comboBox1.DataSource = data.Split('\n').Select(line => line.Split(':').LastOrDefault()).ToList();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}

یه سوال مرتبط دیگه :

اگه به آخر هر جمله علامت دیگه ای اضافه بشه، چه باید کرد؟؟؟

مثلا به آخر هر خط علامت %# رو اضافه کنیم و بازم بخواهیم متن قبلی نمایش داده بشه و این کاراکترها نمایش داده نشه :

1:iman:7228:1367:babol Computer %#
2:ali:1509:1365:babol IT %#
3:Sana:2050335:1369 Architecture %#

من این کارکترها رو به صورت زیر به کار بردم تقریباً درست شده ولی درآخر هر جمله یه علامت % و در آخر combobox هم یک سطر اضافه ایجاد می کنه.

WebClient wc = new WebClient();
string data = wc.DownloadString("http://iman7228.persiangig.com/test3.txt");
comboBox1.DataSource = data.Split('#').Select(line => line.Split(':').LastOrDefault()).ToList();

Mahmoud.Afrad
یک شنبه 26 آذر 1391, 15:00 عصر
اگر فقط انتهاش قرار میگیره میتونی replace کنی:
comboBox1.DataSource = data.Split('\n').Select(line => line.Split(':').LastOrDefault().Replace("%#" , string.Empty)).ToList();