ブローカーの 1 人から、以下のテキスト ファイルの取引レポートを受け取りました。いくつかの分析を行うためにそれを解析しようとしています。問題は、各レコードに 1 つの集計行を含む複数の行があることです (BUY または SELL を表す * とその下)。
TRADE SETTL AT BUY SELL CONTRACT DESCRIPTION EX TRADE PRICE CC DEBIT(DR)/CREDIT
------- ------- -- -------------- -------------- ------------------------------ -- ----------- -- --------------------
11/26/2 F1 1 JAN 13 SOYBEAN MEAL 01 424.70 US
ELECTRONIC TRADE
F1 1* COMMISSION US 1.20DR
F1 EXCHANGE & CLEARING FEE US .81DR
F1 NFA FEE US .02DR
F1 TOTAL COMMISSION & FEES US 2.03DR
11/28/2 F1 1 DEC 12 SWISS FRANC 16 107.490 US
ELECTRONIC TRADE
F1 1* COMMISSION US 1.20DR
F1 EXCHANGE & CLEARING FEE US .54DR
F1 NFA FEE US .02DR
F1 TOTAL COMMISSION & FEES US 1.76DR
11/29/2 F1 2 MAR 13 NEW COCOA 06 24.61 US
ELECTRONIC TRADE
F1 2* COMMISSION US 2.40DR
F1 EXCHANGE & CLEARING FEE US 4.00DR
F1 NFA FEE US .04DR
F1 TOTAL COMMISSION & FEES US 6.44DR
12/03/2 F1 1 DEC 12 IMM EURO FX 16 1.30000 US
ELECTRONIC TRADE
F1 1* COMMISSION US 1.20DR
F1 EXCHANGE & CLEARING FEE US .54DR
F1 NFA FEE US .02DR
F1 TOTAL COMMISSION & FEES US 1.76DR
12/07/2 F1 3 DEC 12 US $ INDEX 13 80.245 US
ELECTRONIC TRADE
12/07/2 F1 3 DEC 12 US $ INDEX 13 80.250 US
ELECTRONIC TRADE
F1 3* 3* COMMISSION US 7.20DR
F1 EXCHANGE & CLEARING FEE US 8.10DR
F1 NFA FEE US .12DR
F1 TOTAL COMMISSION & FEES US 15.42DR
現時点では、集計された情報のみに関心があります。つまりCONTRACT DESCRIPTION
、* が含まれる数量と、その下のフィールドBUY
、および最後の列で指定された値のみです。SELL
COMMISSION
EXCHANGE AND CLEARING FEES
NFA FEE
TOTAL COMMISSION AND FEES
DEBIT(DR)/CREDIT
どうすればこれを行うことができますか?
使ってみread.fwf
たのですが、レコードごとに複数行のフォーマットが違うのでうまくいきません。
最終的に、何も機能しない場合は、行ごとのパーサーを作成する必要があります。これは、よりエレガントな方法で実行できるかどうかを確認するために、現時点では避けようとしています。