On 01/14/2010 12:25 AM, Grove, Michael wrote:
> At 6:47 PM +0800 1/13/10, Majian wrote:
>
>> Hi,all
>>
>> There is a problem confused me for a long time .
>> It is:
>>
>> cat test.txt
>> ------------------------
>> 1,
>> 2,
>> 3,
>> 4,
>> 5,
>> 6,
>> 7,
>> 8,
>> 9,
>> 10,
>> 11,
>> ------------------------
>>
>>
>> Then I want to this result :
>> 1 2 3 6 9
>> 4 7 10
>> 5 8 11
>>
>> I don't know how to print the result use the Perl script clearly.
>> Could someone give me some suggestions?
>>
>
>> Here are some snippets to get you started (untested):
>>
>
>> 1. open the file:
>> open( my $fh, '<', $filename) or die("Can't open file $filename: $!");
>>
>> 2. Read the lines into an array, one line per element:
>> my @lines = <$fh>;
>>
>> 3. Remove the newlines and commas from the end of the strings:
>>
>> chomp(@lines);
>> s/,$// for @lines;
>>
>> 4. Print the lines in any order according to whatever logic you desire:
>>
>> print "$_ " for @lines[0,1];
>> for( my $i = 2; ($i+6) <= $#lines; $i++ ) {
>> print "$_ " for @lines[$i,$i+3,$i+6];
>> print "\n";
>> }
>>
>>
>> --
>> Jim Gibson
>> [email protected]
>>
> --
>
> Does this occur when you copy a file from one operating system to another in
> binary? (i.e. return carriage character needs to be translated)?
>
>
Yeah ~
First , Thanks for Jim Gibson's suggestion and gives me some minds .
Second . I also meet the situation as Grove said .
My source data is the hex format, and I want to become the dec format,
so I use the perl function "hex" to solve this problem .
It looks fine, isn't it ?
--
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
http://learn.perl.org/