データベースのレコードを含む大きなデータファイル(テキスト)があります。 各レコードは " - "(146個)で区切られています 各ブロックのデータに基づいて、各区切り文字の間にテキストを新しいファイルに書きたいと思います。新しいファイル名は、データの一部が含まれている必要があります年に続く(すなわち2017)ファイルからテキストのブロックを抽出し、perlを使って各ブロックを新しいファイルに書き出しますが、動作しません。
例えば、このサンプルファイル付き:
1. 12/18/17
Company
PAGE 2
1:14 PM GET CURRENTLY SELECTED DEBTORS
------------------------------------------------------------------------------------------------------------------------
----------------------------- STATUS **Acct:1234** Disposition:9000 CANCEL Wait: 04/11/17
DEBTOR Name:Doe John
Ssn:123456789 Cbr: Ph:555-555-555
Rp:Doe John Ssn: Rp Ph:
Adr1:211 some road POE: Lgl: POE Ph:
City:anytown Cty: Canc:UNC Born:01/01/1937
St: VA Zip:54321 St: Zip: COF:N Sal:
Clnt:00248 Someplace, 93076 Org: 4
80.00
List:01/05/17 Srv:08/25/16 Pl95: Time:9 Calls:0 Con:0 Bal: 480.00
Co-Maker's Previous Address Spouse's Previous Address MULTIPLE
ACCOUNTS RM# Acct Name/Client Chk#/Lst Srv Lpy
Col Disp Bal Check Reason Drivers Licen se #
PRN INT LI3 LI4 AIN CC ATY MS1 PJI 1 142424* Doe John
93076/00248/Somewhere 01/05/17 08/25/16 0 9000
480.00
480.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
2. ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
だから、上からこのブロックを抽出し、それを記述する必要がありますそのレコードのAcct:1234データに基づいて1234_2017.txtという名前の新しいファイルに移動し、次のブロックに移動します。私は754レコードで最初のファイルのレコード数を数えました。このように合計10個のファイルがあります。
#!/usr/bin/perl -w
use strict;
use warnings;
use POSIX 'strftime';
my $filename = "Facs_Data.txt";
my $outfile = "Acct_".strftime '%Y', localtime;
my $start = "'-' x 146";
open (INFILE, "<$filename"); open (OUTFILE, ">$outfile");
while ($start) {
print $outfile;
next
}
close (INFILE);
close (OUTFILE);
ご意見をいただければ幸いです。
何を試しましたか?あなたはどんな問題を抱えていますか?あなたのコードとサンプルデータを表示してください。コードがない場合は、スタックオーバーフローがおそらくあなたの質問に最適な場所ではありません。 –
http://idownvotedbecau.se/nocode/ –
インターネットで要件を掲示し、誰かがあなたのためにコードを書くのを待つことで、コンピュータプログラミングは達成されません。 – Borodin