PDA

View Full Version : مشکل در جداسازی رشته ها



sanvikipo
جمعه 09 اردیبهشت 1401, 12:12 عصر
سلام
سورس سایت زیر با سی شارپ در میارم ولی نمیدونم چجور رشته هایی که میخوام از سورس جدا کنم و داخل تکست باکس بریزم،سایت (http://www.mataf.net/en/forex/tools/pip-value) :
www.mataf.net/en/forex/tools/pip-value

میخوام اطلاعات جدولش از سورس کد جدا کنم و داخل تکست باکس بریزم مثل زیر :

AUDCAD 7.85 7.34 6.18AUDCHF 10.44 9.77 8.22
AUDHKD 1.27 1.19 1.00
AUDJPY 7.83 7.33 6.17
AUDNZD 6.64 6.21 5.23
AUDSGD 7.28 6.81 5.73
AUDUSD 10.00 9.36 7.87
CADCHF 10.44 9.77 8.22
CADHKD 1.27 1.19 1.00
CADJPY 7.83 7.33 6.17
CADSGD 7.28 6.81 5.73
CHFHKD 1.27 1.19 1.00
CHFJPY 7.83 7.33 6.17
CHFZAR 0.64 0.60 0.50
EURAUD 7.21 6.75 5.68
EURCAD 7.85 7.34 6.18
EURCHF 10.44 9.77 8.22
EURCZK 0.44 0.41 0.34
EURDKK 1.44 1.34 1.13
EURGBP 12.71 11.89 10.00
EURHKD 1.27 1.19 1.00
EURHUF 2.85 2.66 2.24
EURJPY 7.83 7.33 6.17
EURNOK 1.09 1.02 0.86
EURNZD 6.64 6.21 5.23
EURPLN 2.30 2.15 1.81
EURSEK 1.03 0.96 0.81
EURSGD 7.28 6.81 5.73
EURTRY 0.68 0.63 0.53
EURUSD 10.00 9.36 7.87
EURZAR 0.64 0.60 0.50
GBPAUD 7.21 6.75 5.68
GBPCAD 7.85 7.34 6.18
GBPCHF 10.44 9.77 8.22
GBPHKD 1.27 1.19 1.00
GBPJPY 7.83 7.33 6.17
GBPNZD 6.64 6.21 5.23
GBPPLN 2.30 2.15 1.81
GBPSGD 7.28 6.81 5.73
GBPUSD 10.00 9.36 7.87
GBPZAR 0.64 0.60 0.50
HKDJPY 0.08 0.07 0.06
NZDCAD 7.85 7.34 6.18
NZDCHF 10.44 9.77 8.22
NZDHKD 1.27 1.19 1.00
NZDJPY 7.83 7.33 6.17
NZDSGD 7.28 6.81 5.73
NZDUSD 10.00 9.36 7.87
SGDCHF 10.44 9.77 8.22
SGDHKD 1.27 1.19 1.00
SGDJPY 7.83 7.33 6.17
TRYJPY 7.83 7.33 6.17
USDCAD 7.85 7.34 6.18
USDCHF 10.44 9.77 8.22
USDCNH 1.52 1.43 1.20
USDCZK 0.44 0.41 0.34
USDDKK 1.44 1.34 1.13
USDHKD 1.27 1.19 1.00
USDHUF 2.85 2.66 2.24
USDINR 13.09 12.25 10.30
USDJPY 7.83 7.33 6.17
USDMXN 0.49 0.46 0.39
USDNOK 1.09 1.02 0.86
USDPLN 2.30 2.15 1.81
USDSAR 2.67 2.50 2.10
USDSEK 1.03 0.96 0.81
USDSGD 7.28 6.81 5.73
USDTHB 29.19 27.31 22.97
USDTRY 0.68 0.63 0.53
USDZAR 0.64 0.60 0.50
ZARJPY 7.83 7.33 6.17

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

sanvikipo
شنبه 10 اردیبهشت 1401, 08:19 صبح
کسی نیست مرا یاری کنه؟:ناراحت:

sanvikipo
یک شنبه 11 اردیبهشت 1401, 16:52 عصر
اگر ستون اول و دوم هم بتونم از داخل سورس سایت جدا کنم باز هم خوبه،لطفا راهنمایی کنید

sanvikipo
دوشنبه 12 اردیبهشت 1401, 08:33 صبح
لطفا ینفر راهنمایی کنه:متعجب:

mazoolagh
دوشنبه 12 اردیبهشت 1401, 11:44 صبح
سلام و روز خوش
باید کار با کنترل webbrowser رو بلد باشین، یا کتابخانه های اختصاصی html parsing ، یا مستقیما از mshtml استفاده کنین.
در مورد همه اینها بارها تاپیک زده شده و فکر کنم به همین خاطر کسی پاسخ نداده.

همین ها رو جستجو کنین پاسخ میگیرین.

samiasoft
دوشنبه 12 اردیبهشت 1401, 13:15 عصر
اگر ستون اول و دوم هم بتونم از داخل سورس سایت جدا کنم باز هم خوبه،لطفا راهنمایی کنید

همانطور که دوستمون گفتند سوالی که پرسیدید تکراری هست ... شما از از ریجکس یا کتابخانه ای که در اینجا معرفی کردم میتونید استفاده کنید ...درمورد هردو تحقیق کنید...البته در تاپیک قبلیتون با ریجکس نمونه کدی برایتان نوشتم ولی ظاهرا همونو کپی پیست کردین...همون کد رو دربارش تحقیق میکردین ریجکس را میتونستید یادبگیرید...درهرحال کتابخانه htmlAgility بهترین راهکار برای جداسازی تگ ها هست که داخل سایتش نحوه استفاده ازش هست.

https://barnamenevis.org/showthread.php?569681-%D8%AC%D8%AF%D8%A7-%DA%A9%D8%B1%D8%AF%D9%86-%DB%8C%DA%A9-%D9%84%DB%8C%D9%86%DA%A9-%D8%A7%D8%B2-%D8%B1%D8%B4%D8%AA%D9%87

gachboy
یک شنبه 18 اردیبهشت 1401, 16:02 عصر
3تا combobox بزار بعد از کد زیر استفاده کن :

var html = @"https://www.mataf.net/en/forex/tools/pip-value"; HtmlWeb web = new HtmlWeb();
var htmldoc = web.Load(html);
var symbol = htmldoc.DocumentNode.SelectNodes("//th[@class='font-blue']");
var pipvalue = htmldoc.DocumentNode.SelectNodes("//td[@class='pipvalue']");
foreach (var item in symbol)
{
comboBox1.Items.Add(item.InnerText);


}
foreach (var item in pipvalue)
{
comboBox3.Items.Add(item.InnerText);
}


for (int pipremove = 0; pipremove < comboBox3.Items.Count; pipremove += 3)
{


comboBox2.Items.Add(comboBox3.Items[pipremove]);


}

combobox1 اسمها رو میگیره ،combobox2 عددهای ستون دوم واست میگیره ، combobox3 عددهای کل ستونها واست میگیره
همونطور که samiasoft (https://barnamenevis.org/member.php?267633-samiasoft) هم گفت میتونی از ریجکس استفاده کنی ولی من هم مبتدی هستم و تا حالا از ریجکس استفاده نکردم و چون تازه با کتابخانه http agility اشنا شدم کدی که میخواستی نوشتم چون برای خودم هم تمرین بود :لبخند:

ولی یک مشکلی که از این کتابخانه فهمیدم اینه که موقع اجرا کد ، برای چند لحظه برنامه هنگ میکنه تا موقعی که جواب بگیره،مخصوصا برای این سایت که فیلتره
این هنگ کردن نمیدونم باید چجور حل کرد، کتابخانه خیلی جالبیه و خیلی کمک میکنه ولی هنگ کردن برنامه نمیدونم باید چجور حل کرد...
موقع استفاده از این کتابخانه باید چجور از هنگ برنامه جلوگیری کنیم؟ ( samiasoft (https://barnamenevis.org/member.php?267633-samiasoft) بیا کمک ) :متفکر:

sanvikipo
یک شنبه 18 اردیبهشت 1401, 22:45 عصر
از همه ممنونم بابت راهنمایی هایی که کردین،samiasoft (https://barnamenevis.org/member.php?267633-samiasoft) در مورد ریجکس داخل تاپیک قبل که گفتین رفتم تحقیق کردم ولی من بدی که دارم حالت پروژه محور یاد میگیرم بخاطر همین خیلی سد سر راهم قرار میگیره وگرنه همون موقع حرفایی که زدین با جون و دل رفتم دنبالشون و در موردشون تحقیق کردم و حتی خودم سورسی نوشتم که از ریجکس استفاده نمیکردم داخلش و ستون اول و دوم از سورس در میاوردم...و http agility راه دوم هست که دوست دارم یاد بگیرم...
gachboy (https://barnamenevis.org/member.php?266074-gachboy) اره عالی کار میکنه ولی مشکل هنگ کردن باید چکار کرد؟

sanvikipo
سه شنبه 20 اردیبهشت 1401, 15:44 عصر
چجور باید مشکل هنگ کردن درست کنیم؟

SajjadKhati
پنج شنبه 22 اردیبهشت 1401, 01:11 صبح
چجور باید مشکل هنگ کردن درست کنیم؟

سلام
دوست مون که کدی را در پست 7 دادن و گفتین کار میکنه اما مشکل هنگی داره ، اول اینکه من با کدها و پروژه های وب کار نکردم و واسه همین نمیدونم توی اون کد ، کدوم بخش یا متدش باعث ایجاد هنگی میشه (و تست هم نکردم) .

یعنی فرضا نمیدونم که آیا تعداد اون حلقه ها که در اون (حلقه ها) ، آیتم هایی را به کمبوباکس ها اضافه کردین ، خیلی زیاد هستن و بخاطر اینه که هنگ کردن صورت میگیره یا بخاطر سنگین بودنِ یا در کل ، طولانی بودنِ پردازش بقیه ی متدهای خارج از حلقه (مثل متد SelectNodes) ؟

اگه بخاطر متد SelectNodes هست ، به احتمال بسیار زیاد ، با نخ ، یا با async await (ای که کد مناسب داشته باشه) ، مشکل حل میشه :

https://barnamenevis.org/showthread.php?569558-%D9%87%D9%86%DA%AF-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%87%D9%86%DA%AF%D8%A7%D9%85-%DA%AF%D8%B1%D9%81%D8%AA%D9%86-%D8%B3%D9%88%D8%B1%D8%B3-%D8%B3%D8%A7%DB%8C%D8%AA&p=2449993&viewfull=1#post2449993

اما اگه بخاطر زیاد بودنِ تعدادِ اون حلقه ها (زمانی که آیتم هایی را به کمبوباکس ها اضافه میکنید) هست ، شاید بهترین راه این باشه که بجای کمبوباکس ، از کنترل ListView و از قابلیت و پروپرتیِ ListView.VirtualMode اش استفاده کنید .
شاید جواب بده (دقیق نمیدونم . باید بررسی کنید) .

gachboy
جمعه 23 اردیبهشت 1401, 12:34 عصر
حرفتون درسته بجای خط دوم کد در پست 7،از کد زیر استفاده باید کنیم :
var htmldoc = await web.LoadFromWebAsync(html);

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

sanvikipo
جمعه 23 اردیبهشت 1401, 20:55 عصر
برای فایل exe برناممون حتما باید HtmlAgilityPack.dll کنار فایل exe باشه؟ پیشنهادی واسش ندارین؟