Hey Vitali,

    I am also a beginner, so I don't know if I am doing everything most efficiently... 
but, here is what I wrote to do this.  I wouldn't normally just write a program for 
someone, but the problem intrigued me.  Take a look through the code and it will 
hopefully make sense.  I hope it will at least get you going on the right road!

Jared

<begin code>
$infile = "input_file.txt";

if (! -e $infile)   # if the input file doesn't exist, die
{
 die "File $infile not found!";
}
 
open(JARREAD,$infile);  # open the file with a filehandle I made up
while ($line=<JARREAD>)  # reads each line of the file until done. notice "="
{
 chop $line; 
 if  (substr($line,0,2) eq "10")  
 {
  $outfile=substr($line,3,4).".out";  # grab the file name and append a .out
  if ($prefix > 0)  # if there is no prefix, this is the first time through.
  {
   close(JARWRITE); 
  }
    $prefix=substr($line,0,2);  # prefix is what we add to the beggining of each line.
    open(JARWRITE, ">>", $outfile);
  print {JARWRITE} "$line\n";  # print the first line with no prefix
   }
   else  
   {
  if (substr($line,0,2) > 10) # this says it found the next section ie 20
    {
     $prefix=substr($line,0,1); # make the prefix 1 character
     # for each section label 10,20,etc, do not do a prefix
     print {JARWRITE} "$line\n"; 
    }
   elsif (substr($line,0,2) eq "AB" or substr($line,0,2) eq "EP" or substr($line,0,2) 
eq "A0")
  {
   # if we found one of the above sections titles, just spit out the line
     print {JARWRITE} "$line\n";
  }
  else 
  {
   # this substr is because the first char is a space for all other lines
   $line=substr($line,1);
     print {JARWRITE} "$prefix"."$line\n";
  }
 }
 } 
close(JARREAD);  #close the files
close(JARWRITE);
<end code>

-----Original Message-----
From: Vitali Pokrovski [mailto:[EMAIL PROTECTED]]
Sent: Thursday, November 21, 2002 2:39 AM
To: [EMAIL PROTECTED]; [EMAIL PROTECTED]
Subject: Working with text files.Please help!



Dear friends,

could you please show me the way,how to write the code for converting data from 
input_file to output files (1001.out,1002.out,1003.out) format.(please see an example 
attached)
I have already doing with this code writing about four week,but 
unfortunatlly..,becouse i'm just beginner:-(

I have a text file (input_file.txt). And output i need are files 
1001.out;1002.out;1003.out.

Here are steps what programm must do:

1.Open input file

2.reads lines from canal "10"- to canal "A0" (info from line "10" to line "A0"  must 
be one file)  

3.convert lines(canal numbers "10","20","30" ... on two first position) as is show in 
output files. For example:

10
20
20
20
20
30
30
30

4.and save this data to new  file(1001.out). P.S. File names coming from lines "10 
1001" ,acctually file names is from 3 position  for characters,in this case is "1001" 
or "1002" or "1003"..

I'm not sure what I'm trying to do here..

#!perl -w 
$count = 0;

 while (<STDIN>) { 
 if  (substr($_,0,2) eq "10")  {           #If left 2 
   ++$count; 
   $lines = 0; 
   open  OUT, ">$count.out"; 
   print OUT $_;                   }; 

   } 
  __EOF__ 


Any help  welcome!

Regards,

VItali
Estonia,Tallinn




















____________________________________________________
  IncrediMail - Email has finally evolved - Click Here

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

Reply via email to