Operacje na plikach

Dyskusje na temat języka C# oraz biblioteki .NET
arti
Początkujący
Początkujący
Posty: 23
Dołączył(a): środa, 6 sierpnia 2014, 16:43

Operacje na plikach

Post przez arti »

Nie bylo niestety lekcji o operacjach na plikach w c# tak samo jak porownywania tablic. Mam troche skomplikowany przypadek.
mam 2 pliki textowe (takie chyba najlatwiejsze do operowania)
przyklad pliku 1:

MB-ASUSZ97K
GPU-GTX780
snd-sbaudigyfx
WLAN-300

przyklad pliku 2:
MB-ASUSZ97K
//SERVER/drivers/asusz97k.exe
PCI-FWI121
//SERVER/drivers/fwi.exe
GPU-GTX780
//SERVER/drivers/gtx780.exe
SOF-BULL1
//SERVER/drivers/bullguard.exe
snd-sbaudigyfx
//SERVER/drivers/sbfx.exe
Z97N-WIFI
//SERVER/drivers/z97nwifi.exe
WLAN-300
//SERVER/drivers/wlan300.exe

podobna baza byla na kursie C++
Wiec w jaki sposob po wczytaniu obu plikow moge porownac i wybrac te same elementy z drugiej tablicy i pobrac pliki?
To tylko krotki przyklad bo w 2 tablicy beda tysiace elementow. Tak wydaje mi sie latwiej bo moglbym zawrzec to w kodzie, problem w tym ze za kazdym
razem trzebaby go rekompilowac, a jesli bedzie plik txt to odpowiedzialna za to osoba moze dopisac linijki i bedzie wszystko dzialac. Bede z gory wdzieczny za pomoc
arti
Początkujący
Początkujący
Posty: 23
Dołączył(a): środa, 6 sierpnia 2014, 16:43

Re: Operacje na plikach

Post przez arti »

dla ludzi w potrzebie mam rozwiazanie:

Code: Zaznacz cały

var file1 = new HashSet<string>(File.ReadAllLines(path1));
string line;
var file2 = new System.IO.StreamReader(path2);
Dictionary<string, string> links = new Dictionary<string, string>();
while ((line = file2.ReadLine()) != null)
{
    string nextLine;
    if (file1.Contains(line) && (nextLine = file2.ReadLine()) != null)
        links[line] = nextLine;
}

Code: Zaznacz cały

foreach (var kv in links)
    Console.WriteLine("Key: {0} Value:{1}", kv.Key, kv.Value);
Post Reply