Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.12.05;
Скачать: [xml.tar.bz2];

Вниз

Посоветуйте, пожалуйста, как лучше отсортировать текстовый файл.   Найти похожие ветки 

 
FLAW   (2002-11-24 00:15) [0]

У меня есть большой ТХТ-файл (рус.) в каждой строке которого записано одно слово. Посоветуйте, пожалуйста, как лучше:
1) Удалить повторяющиеся слова.
2) Удалить пустые строки.
3) Расположить слова по алфавиту, причем при добавлении нового должна осуществляться проверка на повтор и новое слово так же должно расположиться в файле по алфавиту.
Прошу подробней, я же "чайник".
Заранее благодарю.


 
Оливейра   (2002-11-24 01:57) [1]

Если эту задачу надо выполнять кажный день или чаще:
1) Качаешь Perl с ActiveState
2)
# sort.pl
use POSIX;
use locale;

setlocale("чего-то-там-Ru_ru"); #см. perldoc -f setlocale
open(IN, "a.txt");
while(<IN>) {
chomp;
next if $_ eq ""; #next if !$_;
$hash{$_}++;
}
open(OUT, ">out.txt");
print OUT sort keys %hash;

На ++-се кода немногим больше. std::hash_map.

Delphi без сторонних реализаций хэша тебе не помощник.


 
Оливейра   (2002-11-24 02:03) [2]

Не, вру, можешь еще в базу данных вставить, затем отселектив ( и такой бред тут проскакивал... ). Если тебя скорость не волнует. Можно MSSQL напрячь :)) Он умеет шустро текстовые файлы в таблицы перегонять.

Или OLE DB драйвер для текстовых файлов поюзать :)


 
oomneeq   (2002-11-24 04:01) [3]


with TStringList.Create do begin
Sorted:=true;
Duplicates := dupIgnore;
Loadfromfile("D:\slova.txt");
Savetofile("D:\slova.txt");
Free;
end; // with

одна пустая строчка все же останется :-)


 
oomneeq   (2002-11-24 04:04) [4]

with TStringList.Create do begin
Sorted:=true;
Duplicates := dupIgnore;
Loadfromfile("D:\slova.txt");
Delete(Indexof(""));// теперь не останется!
Savetofile("D:\slova.txt");
Free;
end; // with



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2002.12.05;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.008 c
3-14360
oss
2002-11-15 00:36
2002.12.05
BPL из BPL я


6-14719
der
2002-10-08 19:23
2002.12.05
Протоколирование сетевых обращений юзера


1-14639
AlexandrN
2002-11-23 11:59
2002.12.05
Взаимодействие DLL между собой и с EXE


6-14700
daan_m
2002-10-06 14:26
2002.12.05
Как загрузить прогу на удалённом компе в локальной сети;


3-14455
Kurt
2002-11-18 09:32
2002.12.05
Не подскажите, а свойство Prepared только для ExecSQL команды





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский