Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Отбор строк из файлов 
:(
    Опции темы
Kisja
Дата 4.12.2007, 01:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 30.7.2007

Репутация: нет
Всего: нет



Господа, подскажите!
Есть один большой файл с данными (текстовый позиционный файл, одна строка- одна запись). Назовем его fileBig.txt. В этом файле нас интересует личный счет.
И есть несколько файлов с другими данными (файлы *.dbf). Назовем их file1.dbf, file2.dbf, ..., fileN.dbf. В этих файлах тоже есть поле "личный счет". Тоесть данные в файлах *.dbf и fileBig.txt связаны по полю "личный счет".
Нужно создать файлы (*.dbf) с данными из большого файла fileBig.txt, соответственно файлам file1.dbf, file2.dbf, ..., fileN.dbf. Тоесть, если запись содержиться в файле file1.dbf, то информацию, содержащуюся в строке из файла fileBig.txt нужно записать в файл file1new.dbf, если запись содержиться в файле fileN.dbf, то информацию, содержащуюся в строке из файла fileBig.txt нужно записать в файл fileNnew.dbf и т.д.

Так вот меня интересует как лучше делать сравнение данных (например, можно читать строку из большого одного файла fileBig.txt и искать ее по очереди в файлах file1.dbf, file2.dbf, ..., fileN.dbf, а можно читать строки по порядку из файлов file1.dbf, file2.dbf, ..., fileN.dbf и тогда искать их в одном большом файле). А может создать масив, в который загнать все записи из большого файла, и массив, куда загнать все записи из файлов file1.dbf, file2.dbf, ..., fileN.dbf, и тогда манипулировать данными (предполагаемое количество записей около 10 000)?

Поделитесь опытом и соображениями, пожалуйста.

P.S. кодировать это придется на java
PM MAIL   Вверх
nornad
Дата 4.12.2007, 08:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1079
Регистрация: 16.2.2007
Где: в Караганде

Репутация: 16
Всего: 31



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


--------------------
Три достоинства программиста: Леность, Нетерпение и Гордость
Ларри Уолл
PM MAIL WWW ICQ Skype MSN   Вверх
Kisja
Дата 4.12.2007, 12:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 30.7.2007

Репутация: нет
Всего: нет



Извините за незнание, что такое мапа? (массив мап)
PM MAIL   Вверх
Baka_tyan
Дата 4.12.2007, 13:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 14.9.2006

Репутация: нет
Всего: нет



Как вариант, использовать СУБД. Считать данные из файлБиг, записать в таблицу, затем в цикле пока есть файлы ДБФ, записать в другую таблицу. Затем одним иннер джоином сделать выборку и записать в ДБФнью.
PM MAIL   Вверх
w1nd
Дата 4.12.2007, 13:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вертилятор
***


Профиль
Группа: Завсегдатай
Сообщений: 1077
Регистрация: 22.3.2006
Где: Москва

Репутация: 20
Всего: 54



Цитата(Baka_tyan @  4.12.2007,  13:03 Найти цитируемый пост)
Как вариант, использовать СУБД. Считать данные из файлБиг, записать в таблицу, затем в цикле пока есть файлы ДБФ, записать в другую таблицу. Затем одним иннер джоином сделать выборку и записать в ДБФнью.

Я бы также порекомендовал задействовать сервер приложений в кластерной конфигурации.


--------------------
user posted imageuser posted image
PM MAIL ICQ   Вверх
Kangaroo
Дата 4.12.2007, 13:42 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


AA - Aussie Animal
****


Профиль
Группа: Участник Клуба
Сообщений: 2042
Регистрация: 7.10.2006
Где: US

Репутация: 21
Всего: 104



Бедная Kisja.

Если
Цитата(Kisja @  4.12.2007,  11:33 Найти цитируемый пост)
Извините за незнание, что такое мапа? 

то представляю в какой ужас ее приведут слова:
Цитата(w1nd @  4.12.2007,  12:15 Найти цитируемый пост)
задействовать сервер приложений в кластерной конфигурации. 

 smile 

А если серьезно, то Map'a это:
Цитата

An object that maps keys to values. A map cannot contain duplicate keys; each key can map to at most one value. 

Вот тут почитай.


--------------------
Lost....
PM MAIL MSN   Вверх
nornad
Дата 4.12.2007, 17:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1079
Регистрация: 16.2.2007
Где: в Караганде

Репутация: 16
Всего: 31



Цитата(Kisja @  4.12.2007,  15:33 Найти цитируемый пост)
Извините за незнание, что такое мапа? (массив мап) 

Ну, про мапу уже сказали. А массив мап - это массив, элементами которого являются мапы. Правда, под массивом я имел в виду скорее список (List). smile


--------------------
Три достоинства программиста: Леность, Нетерпение и Гордость
Ларри Уолл
PM MAIL WWW ICQ Skype MSN   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0470 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.