Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Сортировка строк


Автор: Spectral 24.5.2006, 20:17
Вообщем сразу к делу.
 
Есть 2, 000 строк. Мне их нужно раскидать по разным файлам... Например строки начинающиеся на 'A' должны быть в 'А.txt',  строки начинающиеся на 'Б' - в 'Б.txt' и т.д. При этом в каждом файле строки должны быть отсортированы. В добавок ко всему, количество и значения строк со временем могут изменяться, т.е. при повторном "раскидывании", нужно проверять существует ли подобная строчка и только после этого добавлять.

P.S. Я не прошу писать за меня код. Просто подскажите, как лучше и удобней сделать. 

Автор: Yanis 24.5.2006, 21:56
А ты как сделал? Показывай, мы тебя подкорректируем, если что smile 

Цитата(Spectral @  24.5.2006,  21:17 Найти цитируемый пост)
Я не прошу писать за меня код. Просто подскажите, как лучше и удобней сделать. 
Заводим динамические массивы: символов (a) и TStringList (a_sl). Пробегая исходный файл (for i := 0 to sl.Count-1) проверяем (if IsCharIn(sl.Strings[i][1], a) then) имеется ли уже данный символ в массиве или нет. Если нет, то добавляем символ (sl.Strings[i][1]) в массив (a), а в a_sl[i] добавляем проверяемую строку (a[i]). Затем пробегая a_sl сохраняем каждый элемент (a_sl[i]) в файле с названием a[i]+'.txt'. Предварительно у a_sl[i].Sorted := True и a_sl[i].Duplicates := dupIgnore.
Ну что, стало ясно?

PS. Прошу прощения, если где то что-либо напутал. После работы напрягать моск противопоказано smile

Добавлено @ 21:58 
PSS. Алгоритм не из лучших... Просто одно из приближений задачи. 

Автор: Sunvas 24.5.2006, 22:00
Ну, дык, читай по очереди файл и смотри, на какой символ начинается та или иная строка. Потом создавай чистый файл и пиши строку туда. 

Автор: Spectral 24.5.2006, 22:12
Кода почти нет, т.к. я не смог придумать нормальную реализацию этой задачи.  

Автор: Yanis 24.5.2006, 22:20
Цитата(Spectral @  24.5.2006,  23:12 Найти цитируемый пост)
т.к. я не смог придумать нормальную реализацию этой задачи.  
Моя реализация тоже не идеальна, но вполне может существовать в рабочем состоянии... 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)