how to search through file for certain criteria

Discussion in 'Perl Misc' started by richjungk@gmail.com, Jun 8, 2006.

  1. Guest

    guys i really need help!!!
    i'm a beginner in perl language.
    for my code i want to look for matching criteria.


    Here is an example of the contents of the file.

    c_c_flag::
    survey28::2
    driver1_G2_date_month::12
    driver1_student::N
    current_amount::6700
    driver1_suspensionstart_year::2004
    p1::5217
    car1_comprehensive_coverage::0
    driver1_conviction_1_month::01
    p2::6740
    driver1_conviction_1_year::2005
    c1::KNGN
    postal_code_2::1L

    As you can see, each line contains a pair of strings separated by
    '::'

    i need to open the file and process it line by line, and figuring out
    how many driver profiles are stored in the file and store this in an
    array.
    Put the array values into a hash to make them unique, and put the hash
    back into an array.

    Close the file.

    Reopen the file and loop through the array and create hashes for each
    driver to provide the following aggregate information:

    Number of:
    male drivers under age 25 with a conviction
    female drivers under age 25 with a conviction

    and, here is my code that i did so far..............

    #!/urs/bin/perl -w

    my %DATA;
    my $dnum;
    my $conviction;

    chdir("directory path") or die;

    open(FH, "ID1234.txt") or die "$!\n";

    while(<FH>){
    if($_ =~ / (driver \d ) / ) { # $1 is first match
    push @drivers, $1;
    }
    }
    close FH or die;

    foreach(@drivers){
    $D{"$_")++;
    }

    @sorts = sort(keys(%D)); # "driver1" "%D"

    foreach(@sorts){
    open *FH, "ID1234.txt") or die;

    $dnum = $_ ;

    while(<FH>){
    if($_ =~ / $dnum( _conviction ) / ){
    $conviction = $1;
    }
    }
    close FH or die;
    }


    from now on, how to i search for criteria for

    Number of:
    male drivers under age 25 with a conviction
    female drivers under age 25 with a conviction
     
    , Jun 8, 2006
    #1
    1. Advertising

  2. wrote:
    > guys i really need help!!!
    > i'm a beginner in perl language.
    > for my code i want to look for matching criteria.
    >
    >
    > Here is an example of the contents of the file.
    >
    > c_c_flag::
    > survey28::2
    > driver1_G2_date_month::12
    > driver1_student::N
    > current_amount::6700
    > driver1_suspensionstart_year::2004
    > p1::5217
    > car1_comprehensive_coverage::0
    > driver1_conviction_1_month::01
    > p2::6740
    > driver1_conviction_1_year::2005
    > c1::KNGN
    > postal_code_2::1L
    >
    > As you can see, each line contains a pair of strings separated by
    > '::'
    >
    > i need to open the file and process it line by line, and figuring out
    > how many driver profiles are stored in the file and store this in an
    > array.
    > Put the array values into a hash to make them unique, and put the hash
    > back into an array.
    >
    > Close the file.
    >
    > Reopen the file and loop through the array and create hashes for each
    > driver to provide the following aggregate information:
    >
    > Number of:
    > male drivers under age 25 with a conviction
    > female drivers under age 25 with a conviction


    I don't see any records that show the sex or age of the driver so you probably
    can't do that.



    John
    --
    use Perl;
    program
    fulfillment
     
    John W. Krahn, Jun 8, 2006
    #2
    1. Advertising

  3. Guest

    here is all contents in file (file name is ID1234.txt)

    c_c_flag::
    survey28::2
    driver1_G2_date_month::12
    driver1_student::N
    current_amount::6700
    driver1_suspensionstart_year::2004
    p1::5217
    car1_comprehensive_coverage::0
    search_alternative_coverage::N
    car1_liability_coverage::500
    car1_stats::No
    renew::July
    client_phone3::7509
    driver1_status::S
    driver1_conviction_1_month::01
    p2::6740
    driver1_conviction_1_year::2005
    c1::KNGN
    driver1_birth_month::03
    driver1_license::G
    car1_km::0
    LANG::
    driver1_insured::2000
    driver1_sex::M
    postal_code_2::1L5
    driver1_suspensionend_year::2004
    driver1_convictions::1
    driver1_suspensionend_month::08
    c3::RBC
    b_c_flag::
    HabDateCompany_month::01
    city::BRAMPTON
    driver1_convictiontype_1::Criminal=CD
    driver1_insured_now::Y
    how_find::Sun Newspaper
    current_company::echelon
    car1_annual_mileage::10000
    car1_drivers::1
    rate_alert_period::30
    driver1_training::Y
    postal_code::L6P
    driver_number::1
    driver1_claims::0
    client_phone2::888
    driver1_license_date_month::12
    car_number::1
    driver1_birth_day::15
    car1_annual_mileage_business::0
    driver1_G1_date_year::1999
    driver1_G1_date_month::03
    driver1_nonpayment::0
    driver1_suspensionstart_month::05
    p3::8973
    car1_make::ACURA
    client_name::Stan Duhan
    c2::pAF
    car1_collision_coverage::0
    driver1_suspension::Y
    car1_model::INTEGRA RS 2DR
    client_email::
    driver1_birth_year::1983
    driver1_license_date_year::2003
    car1_primary::1
    client_phone1::416
    driver1_first_name::Stan
    driver1_retired::N
    HabDateCompany_year::Not Applicable
    car1_year::1991
    driver1_G2_date_year::1999
    AssumeMultiLine::N
    car1_use::p


    >
    > I don't see any records that show the sex or age of the driver so you probably
    > can't do that.
    >
    >
    >
    > John
    > --
    > use Perl;
    > program
    > fulfillment
     
    , Jun 8, 2006
    #3
  4. <> wrote:

    > guys i really need help!!!



    Then you should take some care to avoid wearing out your welcome
    on your very first post.


    > and, here is my code that i did so far..............



    It is not Perl code!


    > #!/urs/bin/perl -w

    ^^^
    ^^^

    Is this your real code?

    Probably not. So then, are you wasting our time by having us
    debug a program that does not even exist?

    Probably.

    That is Not Good.


    > foreach(@drivers){
    > $D{"$_")++;

    ^ ^
    ^ ^

    If you open with a curly, then you should close with a curly.

    See also:

    perldoc -q vars

    What's wrong with always quoting "$vars"?


    > open *FH, "ID1234.txt") or die;

    ^
    ^

    Where is the opening parenthesis?


    I am now quite sure that you have a lack of respect for the
    hundreds of people here. You are on your own.

    So long!


    --
    Tad McClellan SGML consulting
    Perl programming
    Fort Worth, Texas
     
    Tad McClellan, Jun 8, 2006
    #4
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Stephajn Craig

    Highlight Text based on certain criteria

    Stephajn Craig, Jul 7, 2003, in forum: ASP .Net
    Replies:
    2
    Views:
    374
    Axel Dahmen
    Jul 8, 2003
  2. =?Utf-8?B?U2NvdHQgYXQgQ2VkYXIgQ3JlZWs=?=

    Grid to count records meeting certain criteria (region)

    =?Utf-8?B?U2NvdHQgYXQgQ2VkYXIgQ3JlZWs=?=, Feb 9, 2006, in forum: ASP .Net
    Replies:
    0
    Views:
    371
    =?Utf-8?B?U2NvdHQgYXQgQ2VkYXIgQ3JlZWs=?=
    Feb 9, 2006
  3. VisionSet
    Replies:
    2
    Views:
    318
    VisionSet
    Oct 28, 2004
  4. Replies:
    1
    Views:
    132
    John W. Krahn
    Jun 8, 2006
  5. Cory Mottice
    Replies:
    2
    Views:
    143
    Dave Angel
    Sep 12, 2013
Loading...

Share This Page