Volkswagen Club Tatarstan. Пробки онлайн. Проверка штрафов ГИБДД. Общение с ГИБДД. Руководство по ремонту и эксплуатации VAG. Авто новости. http://vwrt.ru/forum/ |
|
вниманию программистов http://vwrt.ru/forum/viewtopic.php?f=18&t=576 |
Страница 1 из 1 |
Автор: | workspace [ Чт ноя 17, 2011 4:33 pm ] |
Заголовок сообщения: | вниманию программистов |
очень нужна помощь в реализации такой программки на С#: Разработка консольной программы для обработки группы текстовых файлов на предмет составления словаря из неповторяющихся лексем, входящих в эти файлы. Программа получает в качестве аргумента командной строки путь к каталогу с файлами, формирует словарь, добавляя новые слова в файл словаря. Результаты текущего сеанса работы, т.е. аргумент словаря с новыми лексемами, в лексикографическом порядке выводятся в окно стандартной консоли приложения. если по-русски: есть несколько текстовых файлов - словарей. надо собрать из них один так, чтобы слова не повторялись, т.е. отсеить дублирующие и создать уникальный список. |
Автор: | Comma [ Чт ноя 17, 2011 5:58 pm ] |
Заголовок сообщения: | Re: вниманию программистов |
CS, консоль = Жесткие требования |
Автор: | danya [ Чт ноя 17, 2011 6:17 pm ] |
Заголовок сообщения: | Re: вниманию программистов |
сишарп ненужен) на баше могу нада?:) если словарь текстовый файл и каждое слово в одной строке то алгоритм примерно такой читаем по строчно файл и заносим в динамический массив при этом каждое новое слово ищем в массиве если если совпадений ненайдено то слово добавляется быть может медленно зато просто и эффективно) |
Автор: | workspace [ Чт ноя 17, 2011 6:42 pm ] |
Заголовок сообщения: | Re: вниманию программистов |
danya писал(а): сишарп ненужен) на баше могу нада?:) если словарь текстовый файл и каждое слово в одной строке то алгоритм примерно такой читаем по строчно файл и заносим в динамический массив при этом каждое новое слово ищем в массиве если если совпадений ненайдено то слово добавляется быть может медленно зато просто и эффективно) фишка именно в том, что это чудо надо на C# смастерить... кстати, для ламеров, а "баш" это что?)) |
Автор: | danya [ Чт ноя 17, 2011 6:53 pm ] |
Заголовок сообщения: | Re: вниманию программистов |
http://ru.wikipedia.org/wiki/Bash ну так сначала для одного файла по ключевым фразам что я написал пытаемся написать а уже потом с аргументами и с несколькими файлами я канешно попробую сам написать, но только после запиливания криптографии |
Автор: | workspace [ Чт ноя 17, 2011 7:04 pm ] |
Заголовок сообщения: | Re: вниманию программистов |
danya писал(а): ну так сначала для одного файла по ключевым фразам что я написал пытаемся написать а уже потом с аргументами и с несколькими файлами я канешно попробую сам написать, но только после запиливания криптографии эммм.... а можно по-русски?))) |
Автор: | danya [ Чт ноя 17, 2011 7:12 pm ] |
Заголовок сообщения: | Re: вниманию программистов |
ну кароче сначала пиши чтение одного файла и занесение данных в динамический массив затем уже пишем так чтобы слова не повторялись т.е. сравниваем прочтённое с данными что есть в динамическом массиве для начала хватит в гугле ищем реализацию по словам "динамический массив", "построчное чтение файла" хоть какие то знания программирования есть?:) |
Автор: | workspace [ Чт ноя 17, 2011 7:13 pm ] |
Заголовок сообщения: | Re: вниманию программистов |
danya писал(а): ну кароче сначала пиши чтение одного файла и занесение данных в динамический массив затем уже пишем так чтобы слова не повторялись т.е. сравниваем прочтённое с данными что есть в динамическом массиве для начала хватит в гугле ищем реализацию по словам "динамический массив", "построчное чтение файла" хоть какие то знания программирования есть?:) у меня нет)) это подруга курсовик написать не может, она вроде чуток парит)) |
Автор: | danya [ Чт ноя 17, 2011 7:19 pm ] |
Заголовок сообщения: | Re: вниманию программистов |
от атцтой) у нас такие лабораторки( а не курсачи |
Автор: | workspace [ Чт ноя 17, 2011 7:22 pm ] |
Заголовок сообщения: | Re: вниманию программистов |
danya писал(а): от атцтой) у нас такие лабораторки( а не курсачи суть наверно та же, тока без пояснилки и в меньших объемах |
Автор: | Comma [ Чт ноя 17, 2011 8:33 pm ] |
Заголовок сообщения: | Re: вниманию программистов |
А разве при написании курсача ограничивают использование языка? Или она на околоинформатика учится? |
Автор: | Comma [ Чт ноя 17, 2011 8:39 pm ] |
Заголовок сообщения: | Re: вниманию программистов |
danya писал(а): при этом каждое новое слово ищем в массиве если если совпадений ненайдено то слово добавляется быть может медленно зато просто и эффективно) прикинь в словаре 100 000 слов))) последнее слово это яяя или zzzz ))) |
Автор: | danya [ Чт ноя 17, 2011 8:53 pm ] |
Заголовок сообщения: | Re: вниманию программистов |
Comma писал(а): danya писал(а): при этом каждое новое слово ищем в массиве если если совпадений ненайдено то слово добавляется быть может медленно зато просто и эффективно) прикинь в словаре 100 000 слов))) последнее слово это яяя или zzzz ))) ну это лучше чем сразу писать в файл, но всё ограничивается размером оперативки можно канешно использовать какой неть хэш поиск тогда будет быстро но зачем?:) если уж и заморачиваться то можно прикрутить базу данных будет быстро и эффективно |
Автор: | Comma [ Чт ноя 17, 2011 9:42 pm ] |
Заголовок сообщения: | Re: вниманию программистов |
А в файл сразу не запишешь, Надо ж еще сортировать.))) |
Автор: | danya [ Чт ноя 17, 2011 10:06 pm ] |
Заголовок сообщения: | Re: вниманию программистов |
Comma писал(а): А в файл сразу не запишешь, Надо ж еще сортировать.))) ну почему же можно сначала записать а потом отсортировать файл а можно после записи нового слова проводить сортировку |
Автор: | Comma [ Чт ноя 17, 2011 11:21 pm ] |
Заголовок сообщения: | Re: вниманию программистов |
Я сs не знаю. Там действительно есть сортировка файла без загрузки в память? |
Автор: | Comma [ Чт ноя 17, 2011 11:22 pm ] |
Заголовок сообщения: | Re: вниманию программистов |
Если тема актуально могу скинуть код, написанный мной корявым почерком на C# )) |
Автор: | workspace [ Пт ноя 18, 2011 1:00 am ] |
Заголовок сообщения: | Re: вниманию программистов |
Comma писал(а): Если тема актуально могу скинуть код, написанный мной корявым почерком на C# )) очень даж актуально |
Автор: | Comma [ Пт ноя 18, 2011 1:28 am ] |
Заголовок сообщения: | Re: вниманию программистов |
Правда ты не уточнил условия задачи - в каком виде хранятся данные. Куда слать? Может прям здесь выложить |
Автор: | danya [ Пт ноя 18, 2011 2:06 am ] |
Заголовок сообщения: | Re: вниманию программистов |
Comma писал(а): Если тема актуально могу скинуть код, написанный мной корявым почерком на C# )) ну я незнаю есть ли там такие методы посути нельзя отсортировать не загружая но помоему всякие методы пирамидальной сортировки и т.д. могут помочь с сортировкой большого объёма данных да и ктомуже для огромных объёмов инфы базы данных придумали не?:) а код сюда выкладывай на позыреть) |
Автор: | Comma [ Пт ноя 18, 2011 8:56 am ] |
Заголовок сообщения: | Re: вниманию программистов |
danya писал(а): Comma писал(а): Если тема актуально могу скинуть код, написанный мной корявым почерком на C# )) ну я незнаю есть ли там такие методы посути нельзя отсортировать не загружая но помоему всякие методы пирамидальной сортировки и т.д. могут помочь с сортировкой большого объёма данных да и ктомуже для огромных объёмов инфы базы данных придумали не?:) а код сюда выкладывай на позыреть) поэтому я и не вижу смысла записывать в файл, потом загрузить с него и , отсортировав кинуть оббратно в файл )) БД то придумали, но меня обучить использовать БД они (те кто придумал) забыли С# VS 2003 ))) Код: using System; using System.Text; using System.IO; using System.Collections.Specialized; namespace TextReader { /// <summary> /// Summary description for Class1. /// </summary> class Class1 { /// <summary> /// The main entry point for the application. /// </summary> //public const int BubMthd = 0; // another methods if exist [STAThread] static void IncreaseArrLength(ref string[] arr, int delta) // increase the length of dynamic array if its need to add new elements to this array // delta is an increment of the length of the given array { string[] tmp; if (arr != null) { tmp = new string[arr.Length + delta]; Array.Copy(arr, 0, tmp, 0, arr.Length); } else { tmp = new string[delta]; int inLrn = tmp.Length; } arr = tmp; } static void Swap(int FElem, int SecElem, ref string [] arr) // change places of two adjacent elements { string tmp; tmp = arr[FElem]; arr[FElem] = arr[SecElem]; arr[SecElem] = tmp; } static void BubbleSort(ref string [] arr) // methof of sort called as Bubble sort { int i, j; int max = arr.Length; for (i = 1; i < max; ++i) for (j = 0; j < max - i; ++j) if (arr[j].CompareTo( arr[j + 1] ) > 0) // if j is bigger { Swap(j, j + 1, ref arr); // then j+1 is emerge } } static void SortStringVector (ref string [] arr, int SortID) { // /* switch (SortID) { case 0 : BubbleSort(ref arr); break; default : Console.WriteLine("It is impossible to get here"); break; } // */ } static void CheckInVectorOrNot (string [] arr, string CurStr, ref bool exist) { int i; exist = false; for (i=0; i<arr.Length; i++) { if (arr[i]==CurStr) { exist = true; break; } } } static void Main(string[] args) { // // TODO: Add code to start application here // string FullPath; string st; int LineCount = 0; string [] lines = new string [0]; //= File string ForExit; bool WasAddedToVector = false; //LineCount = 0; Cycle : { Console.WriteLine ("Please, enter path to text file"); FullPath = Console.ReadLine(); //FullPath = A1; if (File.Exists(FullPath)) { //StreamReader sr = File.OpenText(FullPath); //, Encoding.UTF8); StreamReader sr = new System.IO.StreamReader(@FullPath,Encoding.GetEncoding("windows-1251")); while ((st=sr.ReadLine())!=null) { //Console.WriteLine(st); if (LineCount!=0) { CheckInVectorOrNot(lines,st,ref WasAddedToVector); } else { WasAddedToVector = false; } if (WasAddedToVector!=true) { IncreaseArrLength(ref lines,1); lines[LineCount] = st; LineCount++; } } sr.Close(); } else { Console.WriteLine("File not found!!"); } //Console.ReadLine(); } SortStringVector(ref lines , 0); Console.WriteLine("For Exit enter 'E' else other word to Continue"); ForExit = Console.ReadLine(); //lines. if ( (ForExit)==("E") || (ForExit)==("e")) { Console.WriteLine("Enter path to save text file"); FullPath = Console.ReadLine(); //A2; // StreamWriter sw = new StreamWriter(@FullPath, false); foreach (string line in lines) { if (line.CompareTo("")!=0) { sw.WriteLine(line); //sw.asdf; } } sw.Close(); FullPath = null; //FullPath = ""; st = null; ForExit = null; lines = null; GC.Collect(); GC.WaitForPendingFinalizers(); GC.Collect(); //using (System.IO.File.WriteAllLines(FullPath, lines)); Console.WriteLine("Succesfully saved"); Console.ReadLine(); } else { goto Cycle; } } } } я тестил только на txt файлах где одно слово (или словосочетание) на отдельной строке расположено + размеры файлов маленькие были у мну |
Автор: | workspace [ Пт ноя 18, 2011 12:12 pm ] |
Заголовок сообщения: | Re: вниманию программистов |
Comma писал(а): я тестил только на txt файлах где одно слово (или словосочетание) на отдельной строке расположено + размеры файлов маленькие были у мну пасиба! будем пробовать) |
Автор: | workspace [ Вт ноя 29, 2011 1:23 pm ] |
Заголовок сообщения: | Re: вниманию программистов |
сдалась на пипёрку!) что-то доделала-переделала в итоге всё гуд. Comma, еще раз огромное спасибо! |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |