Из прошлой статьи про чтение огромадного CSV в C# вытекло целое приложение, предназначенное для распиливания такого файла на более мелкие части, чтобы с ними можно было работать.

Описание

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

Итак, вот оно:

Главное окно приложения hugeCSVsplitter

Всё просто:

  1. Перетащить исходный CSV файл в область, обозначенную пунктирной линией (либо два раза кликнуть в первое поле ввода и выбрать файл, либо вставить туда путь до файла);
  2. Задать путь, куда будут складываться новые отрезанные CSV файлики (также два раза ткнув во второе поле ввода, либо вставив туда путь). Если поле оставить пустым, то файлы будут складываться в каталог с исходным;
  3. Нажать на кнопку с топором.

По нажатию на F1 появляется окно справки.

Требования

Приложение тестировалось в Windows 8.1, но должно работать в любой, главное чтобы был установлен .NET Framework 4.5.1.

Настройки

В .config файле есть некоторые настройки.

linesPerFile

Через сколько строк разрезать. Например, если задать 1000, то исходный файл будет читаться в буфер до 1000 строки, после чего буфер скинется в новый файл, и с 1001 строки будет заполняться по новой. И так до конца исходного файла.

Если строки достаточно короткие, то можно ставить значение побольше, от 500000, скажем. Если довольно большие - лучше не ставить больше 100000.

addHeader

Если поставить True, то в каждый новый файл первой строкой будет писаться первая строка исходного файла. Такое может понадобиться, если исходный файл содержит “шапку”. По умолчанию выставлено именно True.

Загрузить

Для запуска нужна только папка bin\Release, остальное можете удалить. Из самой папки нужны только эти файлы:

  • hugeCSVsplitter.exe
  • hugeCSVsplitter.exe.config
  • Ookii.Dialogs.Wpf.dll

Можете оставлять замечания/предложения на этой странице либо тут в каментах.