Я пытаюсь выяснить, как лучше всего проанализировать следующий файл журнала, разбивая каждый раздел, разделенный горизонтальными линиями, и извлекая различные фрагменты данных, например, «COMPANY123», «BIMMU», дату (2/18 и т. Д..), а затем создайте строку, содержащую все остальные данные, содержащиеся в разделе, разделенном горизонтальными линиями.
Т.е. я хочу создать массив объектов 'Statement', каждый со следующими атрибутами:
Company name, Account, Date, Data.
Например, для второй записи ниже,
Account = 'BIMMU'
Firm = 'Super Corporation'
Date= 9/14/11
Data = '* * * * * * * * TODAYS ACCOUNT ACTIVITY * * * * * * * * * * *
9/14/11 Y9 CALL OESX OCT 11 ........ etc'
Журнал представляет собой текстовый файл фиксированной ширины, и переменные (дата и т. Д.) Всегда находятся в одной и той же позиции в строке,например, sSalesCode = line.substring(142, 147);
Должен ли я сделать это в два прохода, например, разделить код на разделы, разделенные горизонтальной линией, а затем проанализировать эти разделы по отдельности?
Просто написать это здесьпомог мне получить ход мыслей, но если у кого-то есть какие-нибудь умные идеи, было бы здорово услышать их.
------------------------------------------------------------------------------------------------------------------------------------F BIASPBIMMU
BIMMU BIASP-COMPANY123 KG (Z ) 9/14/11 EU (T- I- ) MT-0 F BIASP²BIMMU
CALLS 2/18 YI 50.00-X (49) F BIASP²BIMMU
------------------------------------------------------------------------------------------------------------------------------------F BIASPBIMMU
BIMMU BIMM2-SUPER CORPORATION KG (Z ) 9/14/11 EU (T- I- ) MT-0 F BIMM2²BIMMU
F BIMM2²BIMMU
* * * * * * * * * * * * * * * * * * * T O D A Y S A C C O U N T A C T I V I T Y * * * * * * * * * * * * * * * * * * * *F BIMM2²BIMMU
9/14/11 Y9 500 GO CALL OESX OCT 11 2400 9.60 EU .00 F BIMM2²BIMMU
GO-PARFSecurities Ser F BIMM2²BIMMU
Y9 * 500 * COMMISSIONS EU 250.00- F BIMM2²BIMMU
Y9 PERTES & PROFITS NETS EU 250.00- F BIMM2BIMMU
CALLS 9/14 E1 17,825.00-H ( 1) F BIMM2²BIMMU
CALLS 9/14 E1 17,825.00-N ( 1) F BIMM2²BIMMU
-----------------------------------------------------------------------------------------------------------------------------------