Help in perl formatting a text file
[email protected] ("Mohanty, Debi (MED, TCS)") Tue, 29 Oct 2002 10:19:03 -0600
| Newsgroups | perl.macperl.webcgi |
|---|---|
| Message-ID | <8608421EC5CBD511B5090002A55C0048045FA6E0@uswaumsx04medge.med.ge.com> |
Hi,
I am working on to format a text file in to a tabseparated text file. My
programm is as below ......
open (F,"<Input.dat");
binmode F;
@n=(<F>);
close F;
# READ THE WHOLE FILE
$file=join ("",@n);
# SPLIT THE FILE INTO SEPERATE RECORDS
@records=split(/\r/,$file);
print @records."\n";
@section=();
for ($n=0; $n<@records; $n++){
$section [$n] =(split /\n/,$records[$n],2)[1];
$sectionA[$n] = substr($section[$n], 1,7);
print $n.$sectionA[$n]."\n";
$sectionI[$n] = substr($section[$n], 8,2);
if($sectionI[$n] == 01){$sectionI[$n] = 20;}
elsif ($sectionI[$n] == 00){$sectionI[$n] = 19;}
$sectionK[$n] = substr($section[$n], 10,6);
$sectionB[$n] = $sectionI[$n].$sectionK[$n];
$sectionC[$n] = substr($section[$n], 16,8);
$sectionD[$n] = substr($section[$n], 24,4);
$sectionE[$n] = substr($section[$n], 28,1);
$sectionF[$n] = substr($section[$n], 29,8);
$sectionG[$n] = substr($section[$n], 37,20);
$sectionH[$n] = substr($section[$n], 57,52);
}
# PRINT TO THE OUTPUT FILE
open (O,">output.txt");
for ($n=0; $n<@records; $n++){
print O $sectionA[$n]." ";
print O $sectionB[$n]." ";
print O $sectionC[$n]." ";
print O $sectionD[$n]." ";
print O $sectionE[$n]." ";
print O $sectionF[$n]." ";
print O $sectionG[$n]." ";
print O $sectionH[$n]."\r";
}
close F;
And My Input.dat (Inputfile is): -
0102690001020628000928490001Hms03638 LaRosa, Brian added
0102690001020628000928490002Hms03638 LaRosa, Brian STATUS from INIT to
NEW
0102690001020628001545480001HMS00169
BERTAGNOLLI,MILTON,KGENERAL-DISTRIBUTION from N to Y
0102690001020628001545480002HMS00169 BERTAGNOLLI,MILTON,KRESP-PARTY:
BERTAGNOLLI/KAKIZAWA
0102690001020628001545480003HMS00169 BERTAGNOLLI,MILTON,KSTATUS from NEW
to SDEF
0102690001020628001545540001HMS00169 BERTAGNOLLI,MILTON,Kupdated
0102690001020628001547310001HMS00169 BERTAGNOLLI,MILTON,KNOTE was ADDED
0102690001020628001547310002HMS00169 BERTAGNOLLI,MILTON,Kupdated
0102690001020701000348450001HY2060 KIDOKORO,MIYUKI STATUS from SDEF to
EVAL
0102690001020701000348500001HY2060 KIDOKORO,MIYUKI updated
0102690101020628000928560001Hms03638 LaRosa, Brian added
0102690101020628000928560002Hms03638 LaRosa, Brian STATUS from INIT to
NEW
0102690101020628001546470001HMS00169
BERTAGNOLLI,MILTON,KGENERAL-DISTRIBUTION from N to Y
0102690101020628001546470002HMS00169 BERTAGNOLLI,MILTON,KRESP-PARTY:
BERTAGNOLLI/BERTAGNOLLI
0102690101020628001546470003HMS00169 BERTAGNOLLI,MILTON,KSTATUS from NEW
to SDEF
0102690101020628001546530001HMS00169 BERTAGNOLLI,MILTON,Kupdated
0102690101020628001548000001HMS00169 BERTAGNOLLI,MILTON,KNOTE was ADDED
0102690101020628001548000002HMS00169 BERTAGNOLLI,MILTON,Kupdated
0102690101020703001045220001HMS00169 BERTAGNOLLI,MILTON,KSTATUS from
SDEF to EVAL
0102690101020703001045280001HMS00169 BERTAGNOLLI,MILTON,Kupdated
0102690101020719001709280001HMS00169 BERTAGNOLLI,MILTON,Kupdated
0102690201020628000934110001HMSY0129 WATANABE,MINORU
GENERAL-DISTRIBUTION from to N
0102690201020628000934110002HMSY0129 WATANABE,MINORU STATUS from INIT to
NEW
0102690201020628000934110003HMSY0129 WATANABE,MINORU added
While in the output I am able to get the file in the tabseparated format
but by first line of the Output is missing. Please help me on this
issue....... Where I am doing the things in a wrong way.
Thanks&Regards
Debi