У меня есть серия из 9 текстовых файлов (разделенных по размеру файла, примерно 1,3 миллиона строк на файл).
Формат файлов одинаков для каждого уровня записи, но существенно различается по всей записи. Я с трудом нахожу способ проглотить. Цель состоит в том, чтобы в конечном итоге преобразовать данные / карту в SQL таблицы. Запись также может быть разделена между двумя файлами, если она начинается в одном файле и заканчивается в следующем.
Каждая запись начинается с символа подачи формы. Большая часть файла имеет фиксированную ширину, а не только данные, содержит имя поля (заголовок) и значение с несколькими полями в строке. В большинстве полей нет пробелов, но в некоторых есть пробелы, поэтому для меня это еще один ключ. Пример нескольких строк этого формата (данные обфусцированы):
FYEADAB-2 300 AAAAAAAAAA 873.82 PEBD-PMB-CBG 1-BAXYX-CKDE PUYME-UB-CD
UECD-BK 1111111111 CYBY-BAX .00 P-CKUBBY 1-BAXE-UABE BYAAYBG-DAYX
UECYD,AY-FAG A BAZ-PUEM 285.08 P-CYBY 1-YU-CBG-PD BK-KF-UBYBX 1
YBV,CAB PV1 001 MYP-PMY .00 P-BAZ 1-PY-CBG-PD P-PAAB-CKDE
CAB-UECD-BK 5555555555 AYEB .00 P-MYP-PMY 1YU-CBG-DABE DYXC-CKAA-CA .00
BYPE-AKAB 13 KV-XB-XPUEAD .00 P-AYEB 1-BEW-YUABE ACCU-XBKP-DA
Поле UECD-BK является идентификатором записи, и его необходимо будет применить до следующего нажатия на символ «Подача формы». Мы также получаем случайный двойной возврат каретки / перевод строки, который меняет профиль на что-то более похожее на это:
BUIIUXG BUIIUXG-XCYE CYUX GUICYCIU BGUBEGUY 8908 GGEY HCWK BU
CDDGEQQ 8908 GGEY HCWK BU CU-YUGG CDDGEQQ UGICXDU FI 32836
CXD ZUB UGICXDU FI FI 32836 IFY-XCYE GUICYCIU#CYUX# CU-IFY-XCYE
CBB UD GEQ UD
BGUB CDG VID CUDE BGUB VID DCUE BGUB VID UD UGG CD
Любые умные способы go насчет захвата только элементов данных и присвоения их их заголовок поля?