PDA

View Full Version : حذف خطوط مشترک در دو فایل متنی



بیتا حکمت
پنج شنبه 22 مرداد 1394, 09:49 صبح
سلام. فرض کنید که فایل متنی 1 (پسوند txt ) یه همچین خطوطی داره





سی شارپ

زبان C

وبی 6




و فایل متنی 2 (پسوند txt ) هم شامل خطوط زیر هست




ایکسل

تجارت الکترونیک
ورود


زبان C

وبی 6

سی شارپ



من میخوام مواردی رو که بین این دو تا فایل مشترک هستن مثل «« سی شارپ »» و «وبی 6 » حذف کنم .

راه حلی که به ذهن خودم می رسه اینکه خط اول فایل یک رو در فایل دوم بررسی کنم ، بعد خط دوم و الی اخر
اما احساسم می کنم روش خوبی نیست . شما برای این موارد از چه کد و روشی استفاده می کنین ؟

aliasghar2
پنج شنبه 22 مرداد 1394, 10:14 صبح
سلام میتونی کلمات رو بریزی تویه یه لیست و Rank هر ایتم رو بدست بیاری و هر کدوم که رنکش بیش از یک بود رو پاک کنی :گیج:

barnamenevism
پنج شنبه 22 مرداد 1394, 10:18 صبح
string [] Tx1= File.ReadAllLines(@"C:\1.txt"); string[] Tx2 = File.ReadAllLines(@"C:\2.txt");
var ConcatText = Tx1.Concat(Tx2);
var DelRep = ConcatText.Distinct();
foreach (var item in DelRep)
{
Console.WriteLine(item);
}
Console.ReadKey();

aliasghar2
پنج شنبه 22 مرداد 1394, 10:23 صبح
سلام میتونی کلمات رو بریزی تویه یه لیست و Rank هر ایتم رو بدست بیاری و هر کدوم که رنکش بیش از یک بود رو پاک کنی :گیج:
اینو عمدا پیچیده نوشتم ولی در کل میشه این
شما تمام لغات رو بدست میاری و میریزی تویه یه List (هردوتا فایل ) بعدبا خط زیر تکراری هارو درمیاری
var duplicates = lst.GroupBy(s => s)
.SelectMany(grp => grp.Skip(1));

barnamenevism
سه شنبه 27 مرداد 1394, 17:46 عصر
int[] set1 = { 4, 1, 7, 5, 2, 8, 6, 4, 5, 1, 8, 9 }; int[] set2 = { 40, 10, 7, 5, 2, 8, 6, 4, 5, 1, 8, 9 };
var Query = set2.Except(set1);


foreach (var item in Query)
{
Console.WriteLine(item);
}
Console.Read();

barnamenevism
سه شنبه 27 مرداد 1394, 17:53 عصر
اینم یکی دیکه:لبخند:
string[] Tx1 = File.ReadAllLines(@"C:\1.txt"); string[] Tx2 = File.ReadAllLines(@"C:\2.txt"); var Query = Tx1.Union(Tx2);


foreach (var item in Query)
{
Console.WriteLine(item);
}
Console.Read();