Compare 2 files
От: nik1  
Дата: 11.06.09 18:30
Оценка:
Здрасте всем.
Есть два файла,один excel у второго расширение *.cad(это текстовый фаил).
Вобщем нужно сравнить из этих двух файлов только две вещи(Place,TapeNumber),и нужно показать отчёт неважно в каком формате(word,excel,txt,pdf),нужно показать что совпало и где несовпало.
Подскажите как это можно зделать.
Спасибо.
http://files.rsdn.ru/79472/test.rar
Re: Compare 2 files
От: nik1  
Дата: 12.06.09 06:10
Оценка:
???
Re[2]: Compare 2 files
От: HotDog Швейцария www.denebspace.com
Дата: 12.06.09 08:07
Оценка:
Здравствуйте, nik1, Вы писали:

N>???


Я сомневаюсь, что есть готовые программы для этого.
Если тебе извесен формат обоих файлов, то пиши свой компарер и пиши "отчёт неважно в каком формате"
... << RSDN@Home 1.2.0 alpha rev. 717>>
Re: Compare 2 files
От: akasoft Россия  
Дата: 13.06.09 11:43
Оценка:
Здравствуйте, nik1, Вы писали:

N>Подскажите как это можно зделать.


Сохрани нужные "вещи" из обоих файлов в третий формат, например, .csv, а затем сравни два .csv.

Причём, fc умеет сравнивать и показывать разницу.
... << RSDN@Home 1.2.0 alpha 4 rev. 1228>> SQL Express 2005
Re: Compare 2 files
От: Neco  
Дата: 16.06.09 09:29
Оценка:
Здравствуйте, nik1, Вы писали:

N>Подскажите как это можно зделать.

имхо, лучше разбить эту задачу на подзадачи:
1. чтение экселя и загрузка данных в список №1
2. чтение cad-файла и загрузка данных в список №2
3. сортировка и сравнение списков №1 и №2

и далее разбираться с каждым шагом отдельно. для меня наиболее затруднительно было бы читать эксель файл — не лучше ли его сначала конвертить в xml версию?

кстати, если файлы очень большие, то лучше:
1. чтение экселя и составление файла со списком №1
2. дисковая сортировка списка №1
3. чтение cad-файла и составление файла со списком №2
4. дисковая сортировка списка №2
5. сравнение файлов со списками №1 и №2

если лень заморачиваться с дисковой сортировкой, то можно использовать БД, тот же access или ms sql express.
всю ночь не ем, весь день не сплю — устаю
Re[2]: Compare 2 files
От: nik1  
Дата: 17.06.09 04:23
Оценка:
Спасибо большое всем.Извените раньше немог ответить.А может проще будет считать только две колонки из .cad файла и две нужные колонки из excel и затем их сравнить.Только вот мне в этом нужна помощь,я ещё несовсем понимаю как это зделать.Вот попытался зделать сравнение просто двух файлов,вроде бы работает.А вот как дальше ???.Помогите.
Большое всем спасибо.
 private string fileName = string.Empty;
        private void button1_Click(object sender, EventArgs e)
        {
            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                fileName = openFileDialog1.FileName;
                if(sender == this.button1)

                {
                    label1.Text = Path.GetFileName(fileName);
                    LoadListView(listView1);
                }
                else
                {
                    label2.Text = Path.GetFileName(fileName);
                    LoadListView(listView2);
                }
            }
        }

        
        private void LoadListView(ListView lv)
        {
            TextReader tr = new StreamReader(fileName);
            string input = null;
            while ((input = tr.ReadLine()) != null)
                lv.Items.Add(input);
        }

        private void btnCompare_Click(object sender, EventArgs e)
        {
            //  comparison based on the first listbox
            // missing lines will be red, added lines to the second listbox will be green
            foreach(ListViewItem lvi in listView1.Items)
            {
                if (!CheckItemExists(lvi, listView1))

                {
                    lvi.ForeColor = Color.Red;
                }
            }
            foreach (ListViewItem lvi in listView2.Items)
            {
                if (CheckItemExists(lvi, listView1) == false)
                {
                    lvi.ForeColor = Color.Green;
                }
            }
        }
        private bool CheckItemExists(ListViewItem lvi, ListView lv)
        {
            bool itemExists = false;
            foreach (ListViewItem li in lv.Items)
            {
                if (li.Text == lvi.Text)
                {
                    itemExists = true;
                    break;
                }
            }
            return itemExists;
        }
Re[3]: Compare 2 files
От: nik1  
Дата: 17.06.09 17:46
Оценка:
???
Re[3]: Compare 2 files
От: Neco  
Дата: 18.06.09 04:58
Оценка:
Здравствуйте, nik1, Вы писали:

N>А вот как дальше ???.Помогите.

ну это больше всего похоже на шаг №3
1. чтение экселя и загрузка данных в список №1
2. чтение cad-файла и загрузка данных в список №2
3. сортировка и сравнение списков №1 и №2
только без сортировки — нравятся видимо вам длительные процессы, ну да ладно — файлы видать маленькие.

ну теперь приступайте к первому и второму шагам. потом немного перепишете третий шаг и всё будет работать. только попробуйте всё-таки делать это через свои классы, а не через колонки ListView — а то это будет ужасно выглядеть.
всю ночь не ем, весь день не сплю — устаю
Re[4]: Compare 2 files
От: Аноним  
Дата: 18.06.09 20:54
Оценка: :)
Neco спасибо большое.Помогите с кодом если незатруднит,а то я незнаю как это делается.
Спасибо огромное.
Re[5]: Compare 2 files
От: Аноним  
Дата: 21.06.09 03:21
Оценка:
Help
Re[5]: Compare 2 files
От: Neco  
Дата: 22.06.09 04:26
Оценка:
А>Neco спасибо большое.Помогите с кодом если незатруднит,а то я незнаю как это делается.
не, с кодом придётся самому повозиться.
одно дело спрашивать "как правильно копать?" и совсем другое "покопай за меня".
всю ночь не ем, весь день не сплю — устаю
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.