03002068454210482 000000004204.572011-04-14 19:53:41I NTERNET C 750467375 ^M 0214833 G02042954 ^M 03002068703214833 000000002558.662011-04-15 08:17:19I NTERNET C 761212737 ^M 0211561 05601207284 ^M 03002068802911561 000000001463.702011-04-15 08:40:52I NTERNET C 719807216 ^M 029911 00100275296 ^M #### #!/usr/bin/perl use strict; use warnigns; my $filename = 'fixedfile.txt'; my $datname = $filename; $datname =~ s/\.txt//g; my $fc = 0; my @fla; my @fna; open my $dat, '<', "$datname.dat"; while (<$dat>) { chomp; my @fields = split(/\|/); foreach(@fields) { my ($field, $length) = split(/\:/, $_); if ( $length < 1 ) { $length = 1; } $fla[$fc] = $length; $fna[$fc] = $field; $fc++; } } close $dat; open my $fixedfile, '<', "$filename"; while (<$fixedfile>) { chomp; s/\r|\n//g; s/^M//g; s/^\s*//; s/\s*$//; my $line = $_; my $dc = 0; my $start = 0; foreach (@fna) { my $garbage = substr($line,$start,$fla[$dc]); $garbage =~ s/\'//g; $garbage =~ s/\"//g; $garbage =~ s/\\//g; $garbage =~ s/\(//g; $garbage =~ s/\)//g; $garbage =~ s/^\s*//; $garbage =~ s/\s*$//; $start = $start + $fla[$dc]; $dc++; } close $fixedfile; }