2009-09-26 5 views
0

Было интересно, есть ли у кого-нибудь любимые методы/полезные библиотеки для обработки текстового файла с разделителями табуляции? Этот файл будет иметь в среднем 30 000 - 50 000 строк в нем. Просто нужно прочитать каждую строку и выбросить ее в базу данных. Тем не менее, мне нужно будет временно хранить все данные, потому что если таблица, содержащая данные, получает более 1000,00 строк, мне нужно будет создать новую таблицу и поместить туда данные. Код будет запущен в службе Windows, поэтому я не беспокоюсь о времени обработки.Лучший способ чтения и обработки текстового файла

Задумывался о том, чтобы просто выполнить стандарт (sr.ReadLine()) ... любые предложения?

Cheers,

Шон.

+0

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

+0

Ну каждый раз, когда данные загружаются, ему присваивается номер партии, поэтому, если последняя партия плюс текущая таблица> 1,000,000, я бы хотел создать новую таблицу и поместить туда данные, объединив партии, поэтому, когда i приходите использовать данные на интерфейсе, мне нужно будет выбрать только одну таблицу ... – seanxe

+0

, так как один из ответов был удален с моими комментариями: простой sr.ReadLine() не будет вырезать его, поскольку может поля, которые являются двойными. Когда они есть, они могут содержать специальные символы, такие как сам разделитель, или символ новой строки. Поэтому чтение новых строк может быть сделано, но будьте осторожны, что чтение одной новой строки не означает, что вы получите всю строку. – Toad

ответ

1

This library очень гибкий и быстрый. Я никогда не устаю, рекомендую это. По умолчанию «,» в качестве разделителя, но вы можете легко изменить его на «\ t».

+0

разделитель указан как параметр в этой библиотеке, так что это не проблема – Toad

+1

Вот что я имел в виду с «легко изменить» :) –

0

Я подозреваю, «бросать его в базу данных» будет принимать по крайней мере, 1 порядок больше, чем чтение строки в буфер, так что вы можете предварительно просмотреть данные только для подсчета количества строк (без их разбора). Затем сделайте свои решения в базе данных. Затем перечитайте данные, выполняющие настоящую работу. Если повезет, ОС будет кэшировать файл, чтобы он читал еще быстрее.

Смежные вопросы