AlexDessar
Newbie | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Огромное спасибо. Вы мне расписали все очень достоверное, некоторые моменты я не поняли в силу своей безграмотности в программирования, но суть уловил. Дело в том что, файлы которые я считываю уже отсортированы и в них содержится все что меня интересует. мне это помогали писать. Но дальше я решил сам, так как хочу научится. Я так понял вы сразу мне в цикл забили и поиск и сортировку. Но есть один нуанс, он должен искать мне строки с одинаковыми значениями типа string, я их загнал в массив, и решил сравнивать два массива посторчно. Но вот беда, массивы у меня не определены и могут быть разной длины и значения стоять на разных местах. Как сделать так что бы цикл сравнил один массив считав его с файла со вторым и наоборот? namespace WindowsFormsApplication7 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } public string prefix1; public string mass2; public string numbe3r; private void Open1_Click(object sender, EventArgs e) { openFileDialog1.ShowDialog(); string str = openFileDialog1.FileName; StreamReader fs = new StreamReader(str); while (!fs.EndOfStream) { getreportmetod(fs); } } private void getreportmetod(StreamReader fs) { string line = fs.ReadLine(); if (line.Contains("{")) { int pos = line.IndexOf("{"); string assemblyname = line.Substring(0, pos); newdrawing.Items.Add(assemblyname); System.IO.StreamWriter fileStream = new System.IO.StreamWriter("D:\\chekdrawing1.txt", true); fileStream.WriteLine(assemblyname, 0, assemblyname.Length); fileStream.Close(); } } private void button1_Click(object sender, EventArgs e) { openFileDialog2.ShowDialog(); string str = openFileDialog2.FileName; StreamReader fs = new StreamReader(str); while (!fs.EndOfStream) { getreportmetod1(fs); } } private void getreportmetod1(StreamReader fs) { string line = fs.ReadLine(); if (line.Contains("{")) { int pos = line.IndexOf("{"); string assemblyname1 = line.Substring(0, pos); a = line.Substring(0, pos); Olddrawing.Items.Add(assemblyname1); System.IO.StreamWriter fileStream = new System.IO.StreamWriter("D:\\chekdrawing2.txt", true); fileStream.WriteLine(assemblyname1, 0, assemblyname1.Length); fileStream.Close(); } } private void Start_Click(object sender, EventArgs e) { String[] chekdrwRead1 = System.IO.File.ReadAllLines("D:\\chekdrawing1.txt", Encoding.Default); String[] chekdrwRead2 = System.IO.File.ReadAllLines("D:\\chekdrawing2.txt", Encoding.Default); for (int i = 0; i < chekdrwRead1.Length; i++) if ((!chekdrwRead2[i].Contains(chekdrwRead1[i]))) for (int j = 0; j < chekdrwRead2.Length; j++) if ((!chekdrwRead1[j].Contains(chekdrwRead2[j]))) { listView1.Items.Add((chekdrwRead1[i].ToString())); listView2.Items.Add((chekdrwRead2[i].ToString())); } } } } Это весь код, а я зык С#. Правда я уже экспериментировал на нем так что могут быть пустые переменные и так далее. Спасибо за ответ, для меня очень познавательно. |