Hello Dermot,

Wednesday, November 14, 2001, Dermot Paikkos <[EMAIL PROTECTED]> wrote:

DP> I am having trouble getting the data I want out of a text file: The file has
DP> this sturcture:

DP> File Name: m:\a\a084099.jpg
DP>   Width x Height: 2480 x 2062
DP>   Number of Colours: True Colour (24 bits)
DP>   Dots per inch: 300 x 300
DP>   Image size (inches): 8.27 x 6.87
DP>   Raw size: 15341280  Actual size: 1203289   (Compression ratio: 12.8:1)

DP> There a thousand or so entries. Each entry is separated by a blank new line.
DP> I want to get just the file name and the last line. My troulbe is I can't
DP> manage to parse it correctly. The best I have been able to get is:
DP> m:\a\a084100.jpg  Uncompressed Size: 15341280  Actual size: 1203289
DP> m:\a\a084100.jpg  Uncompressed Size: 15341280  Actual size: 1203289
DP> m:\a\a084100.jpg  Uncompressed Size: 15341280  Actual size: 1203289
DP> m:\a\a084100.jpg  Uncompressed Size: 15341280  Actual size: 1203289
DP> m:\a\a084100.jpg  Uncompressed Size: 15341280  Actual size: 1203289
DP> m:\a\a084100.jpg  Uncompressed Size: 15006480  Actual size: 1251205
DP> m:\a\a084100.jpg  Uncompressed Size: 15006480  Actual size: 1251205

DP> The lines get repeated 7 times before getting the next entry. I used:

DP> while (<REPORT>) {
DP>     if (/File/gc) {            # I tried with or without gc but it made no 
difference.
/gc useless here. why not use
     if (/File Name: /) {
DP>  $name = $';
, and remove 2 next lines?
DP>         chomp($name);
DP>  ($file = $name) =~ s/ Name: //;
DP>     }
DP>     if (/Raw/) {
DP>  $size = $';
DP>  chomp($size);
DP>  ($foo = $size) =~ s/\((Compression...*)//;
DP>  ($bar = $foo) =~ s/size/Uncompressed Size/;
DP>     }

DP>     print OUTPUT "$file $bar \n";
move your print inside if (/Raw/) { } to avoid useless repetitions.

while (<REPORT>) {
    chomp;
    if (/File Name: /) {
        $name = $';
    }
    if (/Raw/) {
     $size = $';
     $size =~ s/\((Compression...*)//;
     $size =~ s/size/Uncompressed Size/;
     print OUTPUT "$name $size \n";
    }
}


Best wishes,
 Maxim                            mailto:[EMAIL PROTECTED]



-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to