Текущее время: Чт ноя 28, 2024 6:16 am

Часовой пояс: UTC + 3 часа [ Летнее время ]





Начать новую тему Ответить на тему  [ Сообщений: 23 ] 
Автор Сообщение
 Заголовок сообщения: вниманию программистов
СообщениеДобавлено: Чт ноя 17, 2011 4:33 pm 
Не в сети
Das Профи
Аватара пользователя

Зарегистрирован: Пн мар 14, 2011 5:46 pm
Сообщения: 1120
Авто: Golf IV -> Эвок
очень нужна помощь в реализации такой программки на С#:

Разработка консольной программы для обработки группы текстовых файлов на предмет составления словаря из неповторяющихся лексем, входящих в эти файлы. Программа получает в качестве аргумента командной строки путь к каталогу с файлами, формирует словарь, добавляя новые слова в файл словаря. Результаты текущего сеанса работы, т.е. аргумент словаря с новыми лексемами, в лексикографическом порядке выводятся в окно стандартной консоли приложения.

если по-русски: есть несколько текстовых файлов - словарей. надо собрать из них один так, чтобы слова не повторялись, т.е. отсеить дублирующие и создать уникальный список.
 

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: вниманию программистов
СообщениеДобавлено: Чт ноя 17, 2011 5:58 pm 
Не в сети
Das Профи
Аватара пользователя

Зарегистрирован: Вт апр 12, 2011 3:07 pm
Сообщения: 1342
Откуда: Гихичу
Авто: ТАЗ, 2109
CS, консоль = Жесткие требования
 


_________________
- Не ходи туда, там тебя ждут неприятности.
- Ну как же туда не ходить? Они же ждут!
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: вниманию программистов
СообщениеДобавлено: Чт ноя 17, 2011 6:17 pm 
Не в сети
Das Autoмобилист
Аватара пользователя

Зарегистрирован: Ср апр 06, 2011 12:20 pm
Сообщения: 289
Авто: VW Santana
сишарп ненужен)
на баше могу нада?:)
если словарь текстовый файл и каждое слово в одной строке
то алгоритм примерно такой
читаем по строчно файл и заносим в динамический массив
при этом каждое новое слово ищем в массиве если если совпадений ненайдено
то слово добавляется

быть может медленно зато просто и эффективно)
 

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: вниманию программистов
СообщениеДобавлено: Чт ноя 17, 2011 6:42 pm 
Не в сети
Das Профи
Аватара пользователя

Зарегистрирован: Пн мар 14, 2011 5:46 pm
Сообщения: 1120
Авто: Golf IV -> Эвок
danya писал(а):
сишарп ненужен)
на баше могу нада?:)
если словарь текстовый файл и каждое слово в одной строке
то алгоритм примерно такой
читаем по строчно файл и заносим в динамический массив
при этом каждое новое слово ищем в массиве если если совпадений ненайдено
то слово добавляется

быть может медленно зато просто и эффективно)


фишка именно в том, что это чудо надо на C# смастерить...
кстати, для ламеров, а "баш" это что?))
 

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: вниманию программистов
СообщениеДобавлено: Чт ноя 17, 2011 6:53 pm 
Не в сети
Das Autoмобилист
Аватара пользователя

Зарегистрирован: Ср апр 06, 2011 12:20 pm
Сообщения: 289
Авто: VW Santana
http://ru.wikipedia.org/wiki/Bash

ну так сначала для одного файла по ключевым фразам что я написал пытаемся написать
а уже потом с аргументами и с несколькими файлами

я канешно попробую сам написать, но только после запиливания криптографии
 

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: вниманию программистов
СообщениеДобавлено: Чт ноя 17, 2011 7:04 pm 
Не в сети
Das Профи
Аватара пользователя

Зарегистрирован: Пн мар 14, 2011 5:46 pm
Сообщения: 1120
Авто: Golf IV -> Эвок
danya писал(а):
ну так сначала для одного файла по ключевым фразам что я написал пытаемся написать
а уже потом с аргументами и с несколькими файлами

я канешно попробую сам написать, но только после запиливания криптографии


эммм.... а можно по-русски?)))
 

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: вниманию программистов
СообщениеДобавлено: Чт ноя 17, 2011 7:12 pm 
Не в сети
Das Autoмобилист
Аватара пользователя

Зарегистрирован: Ср апр 06, 2011 12:20 pm
Сообщения: 289
Авто: VW Santana
ну кароче сначала пиши
чтение одного файла и занесение данных в динамический массив
затем уже пишем так чтобы слова не повторялись т.е. сравниваем прочтённое с данными что есть в динамическом массиве

для начала хватит
в гугле ищем реализацию по словам "динамический массив", "построчное чтение файла"
хоть какие то знания программирования есть?:)
 

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: вниманию программистов
СообщениеДобавлено: Чт ноя 17, 2011 7:13 pm 
Не в сети
Das Профи
Аватара пользователя

Зарегистрирован: Пн мар 14, 2011 5:46 pm
Сообщения: 1120
Авто: Golf IV -> Эвок
danya писал(а):
ну кароче сначала пиши
чтение одного файла и занесение данных в динамический массив
затем уже пишем так чтобы слова не повторялись т.е. сравниваем прочтённое с данными что есть в динамическом массиве

для начала хватит
в гугле ищем реализацию по словам "динамический массив", "построчное чтение файла"
хоть какие то знания программирования есть?:)


у меня нет)) это подруга курсовик написать не может, она вроде чуток парит))
 

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: вниманию программистов
СообщениеДобавлено: Чт ноя 17, 2011 7:19 pm 
Не в сети
Das Autoмобилист
Аватара пользователя

Зарегистрирован: Ср апр 06, 2011 12:20 pm
Сообщения: 289
Авто: VW Santana
от атцтой)
у нас такие лабораторки( а не курсачи
 

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: вниманию программистов
СообщениеДобавлено: Чт ноя 17, 2011 7:22 pm 
Не в сети
Das Профи
Аватара пользователя

Зарегистрирован: Пн мар 14, 2011 5:46 pm
Сообщения: 1120
Авто: Golf IV -> Эвок
danya писал(а):
от атцтой)
у нас такие лабораторки( а не курсачи


суть наверно та же, тока без пояснилки и в меньших объемах
 

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: вниманию программистов
СообщениеДобавлено: Чт ноя 17, 2011 8:33 pm 
Не в сети
Das Профи
Аватара пользователя

Зарегистрирован: Вт апр 12, 2011 3:07 pm
Сообщения: 1342
Откуда: Гихичу
Авто: ТАЗ, 2109
А разве при написании курсача ограничивают использование языка? Или она на околоинформатика учится?
 


_________________
- Не ходи туда, там тебя ждут неприятности.
- Ну как же туда не ходить? Они же ждут!
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: вниманию программистов
СообщениеДобавлено: Чт ноя 17, 2011 8:39 pm 
Не в сети
Das Профи
Аватара пользователя

Зарегистрирован: Вт апр 12, 2011 3:07 pm
Сообщения: 1342
Откуда: Гихичу
Авто: ТАЗ, 2109
danya писал(а):
при этом каждое новое слово ищем в массиве если если совпадений ненайдено
то слово добавляется

быть может медленно зато просто и эффективно)


прикинь в словаре 100 000 слов))) последнее слово это яяя или zzzz )))
 


_________________
- Не ходи туда, там тебя ждут неприятности.
- Ну как же туда не ходить? Они же ждут!
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: вниманию программистов
СообщениеДобавлено: Чт ноя 17, 2011 8:53 pm 
Не в сети
Das Autoмобилист
Аватара пользователя

Зарегистрирован: Ср апр 06, 2011 12:20 pm
Сообщения: 289
Авто: VW Santana
Comma писал(а):
danya писал(а):
при этом каждое новое слово ищем в массиве если если совпадений ненайдено
то слово добавляется

быть может медленно зато просто и эффективно)


прикинь в словаре 100 000 слов))) последнее слово это яяя или zzzz )))

ну это лучше чем сразу писать в файл, но всё ограничивается размером оперативки
можно канешно использовать какой неть хэш поиск тогда будет быстро
но зачем?:)
если уж и заморачиваться то можно прикрутить базу данных будет быстро и эффективно :)
 

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: вниманию программистов
СообщениеДобавлено: Чт ноя 17, 2011 9:42 pm 
Не в сети
Das Профи
Аватара пользователя

Зарегистрирован: Вт апр 12, 2011 3:07 pm
Сообщения: 1342
Откуда: Гихичу
Авто: ТАЗ, 2109
А в файл сразу не запишешь, Надо ж еще сортировать.)))
 


_________________
- Не ходи туда, там тебя ждут неприятности.
- Ну как же туда не ходить? Они же ждут!
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: вниманию программистов
СообщениеДобавлено: Чт ноя 17, 2011 10:06 pm 
Не в сети
Das Autoмобилист
Аватара пользователя

Зарегистрирован: Ср апр 06, 2011 12:20 pm
Сообщения: 289
Авто: VW Santana
Comma писал(а):
А в файл сразу не запишешь, Надо ж еще сортировать.)))

ну почему же
можно сначала записать а потом отсортировать файл
а можно после записи нового слова проводить сортировку
 

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: вниманию программистов
СообщениеДобавлено: Чт ноя 17, 2011 11:21 pm 
Не в сети
Das Профи
Аватара пользователя

Зарегистрирован: Вт апр 12, 2011 3:07 pm
Сообщения: 1342
Откуда: Гихичу
Авто: ТАЗ, 2109
Я сs не знаю. Там действительно есть сортировка файла без загрузки в память?
 


_________________
- Не ходи туда, там тебя ждут неприятности.
- Ну как же туда не ходить? Они же ждут!
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: вниманию программистов
СообщениеДобавлено: Чт ноя 17, 2011 11:22 pm 
Не в сети
Das Профи
Аватара пользователя

Зарегистрирован: Вт апр 12, 2011 3:07 pm
Сообщения: 1342
Откуда: Гихичу
Авто: ТАЗ, 2109
Если тема актуально могу скинуть код, написанный мной корявым почерком на C# ))
 


_________________
- Не ходи туда, там тебя ждут неприятности.
- Ну как же туда не ходить? Они же ждут!
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: вниманию программистов
СообщениеДобавлено: Пт ноя 18, 2011 1:00 am 
Не в сети
Das Профи
Аватара пользователя

Зарегистрирован: Пн мар 14, 2011 5:46 pm
Сообщения: 1120
Авто: Golf IV -> Эвок
Comma писал(а):
Если тема актуально могу скинуть код, написанный мной корявым почерком на C# ))

очень даж актуально
 

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: вниманию программистов
СообщениеДобавлено: Пт ноя 18, 2011 1:28 am 
Не в сети
Das Профи
Аватара пользователя

Зарегистрирован: Вт апр 12, 2011 3:07 pm
Сообщения: 1342
Откуда: Гихичу
Авто: ТАЗ, 2109
Правда ты не уточнил условия задачи - в каком виде хранятся данные.
Куда слать? Может прям здесь выложить
 


_________________
- Не ходи туда, там тебя ждут неприятности.
- Ну как же туда не ходить? Они же ждут!
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: вниманию программистов
СообщениеДобавлено: Пт ноя 18, 2011 2:06 am 
Не в сети
Das Autoмобилист
Аватара пользователя

Зарегистрирован: Ср апр 06, 2011 12:20 pm
Сообщения: 289
Авто: VW Santana
Comma писал(а):
Если тема актуально могу скинуть код, написанный мной корявым почерком на C# ))

ну я незнаю есть ли там такие методы
посути нельзя отсортировать не загружая
но помоему всякие методы пирамидальной сортировки и т.д. могут помочь с сортировкой большого объёма данных
да и ктомуже для огромных объёмов инфы базы данных придумали не?:)
а код сюда выкладывай на позыреть)
 

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: вниманию программистов
СообщениеДобавлено: Пт ноя 18, 2011 8:56 am 
Не в сети
Das Профи
Аватара пользователя

Зарегистрирован: Вт апр 12, 2011 3:07 pm
Сообщения: 1342
Откуда: Гихичу
Авто: ТАЗ, 2109
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 файлах где одно слово (или словосочетание) на отдельной строке расположено + размеры файлов маленькие были у мну
 


_________________
- Не ходи туда, там тебя ждут неприятности.
- Ну как же туда не ходить? Они же ждут!
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: вниманию программистов
СообщениеДобавлено: Пт ноя 18, 2011 12:12 pm 
Не в сети
Das Профи
Аватара пользователя

Зарегистрирован: Пн мар 14, 2011 5:46 pm
Сообщения: 1120
Авто: Golf IV -> Эвок
Comma писал(а):
я тестил только на txt файлах где одно слово (или словосочетание) на отдельной строке расположено + размеры файлов маленькие были у мну


пасиба! будем пробовать)
 

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: вниманию программистов
СообщениеДобавлено: Вт ноя 29, 2011 1:23 pm 
Не в сети
Das Профи
Аватара пользователя

Зарегистрирован: Пн мар 14, 2011 5:46 pm
Сообщения: 1120
Авто: Golf IV -> Эвок
сдалась на пипёрку!) что-то доделала-переделала в итоге всё гуд. Comma, еще раз огромное спасибо!
 

Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 23 ] 

Быстрый ответ
Заголовок:
 

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Credit Card Style USB 2.0 Flash Drive - 8GB Memory Car Logo Patterned Butane Jet Torch Lighter - VW PU Leather Keychain & Car Key Case Stainless Steel Volkswagen Design Key Ring - Silver-tone Volkswagen Patterned Car Charger with USB Cable & 6 Connectors Laser Light for Volkswagen Car Vehicle
Флешка Volkswagen "Кредитная карта" 8GB Зажигалка-брелок Volkswagen Кожаная ключница Volkswagen Металлический брелок Volkswagen Зарядник для 6 типов устройств с USB с лого VW Лазерная подсветка открытых дверей лого VW
$9.47 $3.01 $3.32 $2.06 $8.59 $25.26
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB