Форум: "Базы";
Текущий архив: 2003.03.13;
Скачать: [xml.tar.bz2];
ВнизDOS-кие файлы и БД Найти похожие ветки
← →
Kalishenko Stas (2003-02-20 16:36) [0]Такая задача: есть досовский текстовый файл, в котором есть информация по разным людям, т.е. имеет вид примерно такой:
Мартюк Юрий Васильевич - классный программист
________________________________________________
Доход \ Неизвестно
________________________________________________
Семейное положение - женат
Хобби - программирование
и т.д.
Потом идет следующий чувак, и так до бесконечности.
Так вот задача и состоит в вытягивании необходимой информации по конкретному человеку (под Виндой).
Помогите советом, как это реализовать.
← →
Соловьев (2003-02-20 16:37) [1]Самому анализировать файл и вытягивать.
← →
Chris (2003-02-20 17:01) [2]Для начала было бы неплохо, если "чуваки" отделялись друг от друга какой-либо специфической строкой, пусть это будет строка "@@@"
FlagRead: boolean;
ListChuvak: TStringList;
f: TextFile;
ListChuvak:=TStringList.Create;
AssignFile(f,"Text.txt");
Reset(f);
FlagRead:=False;
While not EOF(f) do
begin
ReadLn(f,s);
if FlagRead then
begin
if s="@@@" then
Break;
ListChuvak.Add(s);
end
else if pos(AnsiLowerCase(Chuvak),AnsiLowerCase(s))>0 then
begin
ListChuvak.Add(s);
FlagRead:=True;
end;
end;
CloseFile(f);
← →
Kalishenko Stas (2003-02-20 17:03) [3]Каким образом анализировать? У меня идея в следующем: загнать в базу построчно, и тогда уже че-то анализировать. Но на первом этапе главная проблема в кодировке. Как файл из досовской кодировки преобразовать в виндовскую? У меня есть прога, делающая это плохо - знаки "_" или "-" преобразует в "д" или вообще игнорирует. Кроме того делает смещения строк при преобразовании. Можете че-нибудь посоветовать?
← →
Соловьев (2003-02-20 17:19) [4]открой в Ексле и там посмотри.
← →
MsGuns (2003-02-20 17:36) [5]>Соловьев © (20.02.03 17:19)
>открой в Ексле и там посмотри.
Совершенно в дырочку ! Мы именно так и делали. А потом сажается тетя и по указанному нами шаблону все это хозяйство приводит в "стройный" вид. После чего уже из экселя экспорт куда надо.
← →
kalishenko stas (2003-02-20 17:57) [6]>>MsGuns
В смысле приводит в "стройный вид"? Это что же, каждый документ?
В Экселе у меня посмещало многие строки, так что способ как-то не очень. Или действительно все текстовики ручками переделывать, а потом уже работать с ними?
← →
Соловьев (2003-02-20 18:00) [7]Как посмещало? Там настроеки при конвертации...Поиграй с ними...
Попробуй через Access. Или ручками...
← →
kalishenko stas (2003-02-20 18:19) [8]Дело в том, что разделителей как таковых в документе нет, поэтому строки и посмещало.
← →
Соловьев (2003-02-20 18:22) [9]А фиксированой длины? А удалить пробелы слабо?
← →
kalishenko stas (2003-02-20 18:33) [10]>>А удалить пробелы слабо?
Что, во всем документе?
>>А фиксированой длины?
Пробовал. Все равно.
← →
Tux (2003-02-20 20:41) [11]Необходим язык, позволяющий вольно обращаться со входными данными, прекрасно работающий с текстом и позволяющий решать неформальные задачи анализа + поддержка регулярных выражений. В итоге задача решается за полчаса. Если объем данных невелик, имеет смысл посадить тетю. Если от полмега - Perl, Awk, Python, Tcl - на выбор.
← →
mfender (2003-02-21 01:18) [12]Насчет кодировок. Очень легко подменить символ CP688 на символ 1251. Пишется в четыре строки хвункция, возвращающая результ в нужное место. Таблица символов занимает немного больше места.
А вот что касается конвертации в удобоваримый вид - это вопрос. Раз вы работаете с энтими файлАми, вам и карты в руки. Руками делаете, значит, пардон, алгоритмизируете сей процесс. Если есть система, как разделены "поля", значить и конвертер написать можно. Неважно, чем они разделяются и в какой последовательности. Главное - была бы система. Конечно, если в одной строке, к примеру, поле имени с полем фамилии разделены @, а в следующей строке |, о каком преобразовании может идти речь? Гораздо проще печатную книгу проиндексировать....
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2003.03.13;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.006 c