Loading ...
Sorry, an error occurred while loading the content.

Re: [PBML] Re: File lookup?

Expand Messages
  • DigiDoc
    File-1 ... abc bg cd1234 File-2 ... abc,john,doe,1234,9999 addathk,kathy,smith,3453,5629 bg,joe,shmo,4532,5343 cd1234,jane,madle,5432,0932
    Message 1 of 19 , Jun 5, 2006
    • 0 Attachment
      File-1
      -------
      abc
      bg
      cd1234


      File-2
      -------
      abc,john,doe,1234,9999
      addathk,kathy,smith,3453,5629
      bg,joe,shmo,4532,5343
      cd1234,jane,madle,5432,0932
      dkk32,marge,hasbro,2345,1234


      Note: Data layout in File-2 may vary from time to time, but will always
      start with the ID.


      ~~Kevin~


      a_z0_9_blah wrote:
      > --- In perl-beginner@yahoogroups.com, DigiDoc <DigiDoc@...> wrote:
      >
      >> I need to write some code that will take an ID from File-1 and see
      >>
      > if it
      >
      >> exists on File-2. If it does, then I want to write out the record
      >>
      > from
      >
      >> File-2 to another file.
      >>
      >> File-1 is just IDs, and File-2 is the ID plus a bunch of other
      >>
      > fields
      >
      >> comma delimited. The ID however is variable length. The files
      >>
      > are
      >
      >> ASCII. File-1 will only contain a small number of records (about
      >>
      > 1K),
      >
      >> while File-2 will be about 100K records.
      >>
      >> I have no idea how to do this (I'm a total Perl novice) and could
      >> greatly use help.
      >>
      >>
      >> Thanks!
      >>
      >>
      >> ~~Kevin~
      >>
      >>
      >
      >
      > Could you show some sample lines from the first file and from the
      > second file?
      >
      >
      >
      >
      >


      [Non-text portions of this message have been removed]
    • a_z0_9_blah
      ... always ... see ... record ... (about ... could ... the ... You could try the following code on your sample data. If you will be massaging the data in
      Message 2 of 19 , Jun 5, 2006
      • 0 Attachment
        --- In perl-beginner@yahoogroups.com, DigiDoc <DigiDoc@...> wrote:
        >
        >
        > Note: Data layout in File-2 may vary from time to time, but will
        always
        > start with the ID.
        >
        >
        > ~~Kevin~
        >
        >
        > a_z0_9_blah wrote:
        > > --- In perl-beginner@yahoogroups.com, DigiDoc <DigiDoc@> wrote:
        > >
        > >> I need to write some code that will take an ID from File-1 and
        see
        > >>
        > > if it
        > >
        > >> exists on File-2. If it does, then I want to write out the
        record
        > >>
        > > from
        > >
        > >> File-2 to another file.
        > >>
        > >> File-1 is just IDs, and File-2 is the ID plus a bunch of other
        > >>
        > > fields
        > >
        > >> comma delimited. The ID however is variable length. The files
        > >>
        > > are
        > >
        > >> ASCII. File-1 will only contain a small number of records
        (about
        > >>
        > > 1K),
        > >
        > >> while File-2 will be about 100K records.
        > >>
        > >> I have no idea how to do this (I'm a total Perl novice) and
        could
        > >> greatly use help.
        > >>
        > >>
        > >> Thanks!
        > >>
        > >>
        > >> ~~Kevin~
        > >>
        > >>
        > >
        > >
        > > Could you show some sample lines from the first file and from
        the
        > > second file?
        > >
        > File-1
        > -------
        > abc
        > bg
        > cd1234
        >
        >
        > File-2
        > -------
        > abc,john,doe,1234,9999
        > addathk,kathy,smith,3453,5629
        > bg,joe,shmo,4532,5343
        > cd1234,jane,madle,5432,0932
        > dkk32,marge,hasbro,2345,1234
        >

        You could try the following code on your sample data.

        If you will be 'massaging' the data in file-2,
        you might consider treating your second
        file as a database (using DBD::CSV).


        #!/usr/bin/perl
        use strict;
        use warnings;

        my %ids;

        open my $id, "<", "o33.txt" or die "Unable to open o33.txt $!";

        while (<$id>) {
        chomp;
        $ids{$_} = 1;
        }

        close $id or die $!;

        open my $data, "<", "o44.txt" or die "Unable to open o44.txt $!";
        open my $out, ">", "o55.txt" or die "Couldn't write results $!";

        while (<$data>) {
        my $key = (split /,/)[0];
        if ($ids{$key}) {
        print $out $_;
        }
        }

        close $data or die $!;
        close $out or die $!;
      • DigiDoc
        Great, thanks for the reply. I think I understand the majority of this code. I ll research the DBD::CSV as well. I definitely would not have known about that
        Message 3 of 19 , Jun 5, 2006
        • 0 Attachment
          Great, thanks for the reply.

          I think I understand the majority of this code. I'll research the
          DBD::CSV as well. I definitely would not have known about that without
          your help. THANK YOU!!!!!

          I can read a fair amount of Perl code, but am just not up to quickly
          putting code together yet (and probably not for some time). It takes me
          forever.

          This helps me out immensely.

          Dumb question. If I read this correctly, you've hard coded the files,
          how would I set it up to make these variables?

          Thanks!

          ~~Kevin~
          >
          >
          > You could try the following code on your sample data.
          >
          > If you will be 'massaging' the data in file-2,
          > you might consider treating your second
          > file as a database (using DBD::CSV).
          >
          >
          > #!/usr/bin/perl
          > use strict;
          > use warnings;
          >
          > my %ids;
          >
          > open my $id, "<", "o33.txt" or die "Unable to open o33.txt $!";
          >
          > while (<$id>) {
          > chomp;
          > $ids{$_} = 1;
          > }
          >
          > close $id or die $!;
          >
          > open my $data, "<", "o44.txt" or die "Unable to open o44.txt $!";
          > open my $out, ">", "o55.txt" or die "Couldn't write results $!";
          >
          > while (<$data>) {
          > my $key = (split /,/)[0];
          > if ($ids{$key}) {
          > print $out $_;
          > }
          > }
          >
          > close $data or die $!;
          > close $out or die $!;
          >
          >
          >
          >
          >
          >


          [Non-text portions of this message have been removed]
        • Alan_C
          On Monday 05 June 2006 19:16, DigiDoc wrote: [ . . ] ...
          Message 4 of 19 , Jun 6, 2006
          • 0 Attachment
            On Monday 05 June 2006 19:16, DigiDoc wrote:
            [ . . ]
            > Dumb question. If I read this correctly, you've hard coded the files,
            > how would I set it up to make these variables?

            http://groups.google.com/group/perl.beginners/browse_thread/thread/69865c81985c57f4/7d45c2b46cb7ba2b#7d45c2b46cb7ba2b

            Take a look at the code in that it uses shift

            A command line example:

            perlscript file1

            in that above command line example, file1 will be opened as filehandle OLD

            if need to, can be set up to shift more than one file off the command line.

            Further search topics be: shift, commandline, command line, ARGV, @ARGV,
            $ARGV, $ARGV[0], $ARGV[1]

            try search at <http://learn.perl.org/first-response> too likely turn up lots
            yet even more.

            --
            Alan.
          • DigiDoc
            Thanks for all the help to this question. I ve got it working with the $ARGV stuff. I ve got more tweaks I want to make, but the base code you provided really
            Message 5 of 19 , Jun 6, 2006
            • 0 Attachment
              Thanks for all the help to this question.

              I've got it working with the $ARGV stuff. I've got more tweaks I want
              to make, but the base code you provided really helps me out.

              I'm thinking I'll want to make a GUI out of it now. I was doing some
              research and found "The GUI Loft". It's a front end that uses
              Win32::GUI. I haven't used it yet, but it seems like what I need. If
              anyone has a better suggestion, please let me know.

              I can't tell me how much time you've saved me, not to mention that I've
              learned a few things as well. Code examples help me out a great deal, I
              tend to learn faster from them.

              Thanks!



              [Non-text portions of this message have been removed]
            • Ken Shail
              ... From: DigiDoc ; DigiDoc To: perl-beginner@yahoogroups.com Sent: Tuesday, June 06, 2006 8:45 PM Subject: Re: [PBML] Re: File lookup? Thanks for all the help
              Message 6 of 19 , Jun 6, 2006
              • 0 Attachment
                ----- Original Message -----
                From: DigiDoc ; DigiDoc
                To: perl-beginner@yahoogroups.com
                Sent: Tuesday, June 06, 2006 8:45 PM
                Subject: Re: [PBML] Re: File lookup?


                Thanks for all the help to this question.

                I've got it working with the $ARGV stuff. I've got more tweaks I want
                to make, but the base code you provided really helps me out.

                I'm thinking I'll want to make a GUI out of it now. I was doing some
                research and found "The GUI Loft". It's a front end that uses
                Win32::GUI. I haven't used it yet, but it seems like what I need. If
                anyone has a better suggestion, please let me know.

                I can't tell me how much time you've saved me, not to mention that I've
                learned a few things as well. Code examples help me out a great deal, I
                tend to learn faster from them.

                Thanks!

                Perl Tk - works on Linux and windoze
                http://dc.pm.org/talks/tk/home.html
                http://www.perltk.org/index.php?option=com_frontpage&Itemid=1
                http://phaseit.net/claird/comp.lang.perl.tk/ptkFAQ.html
              • DigiDoc
                Thanks for the links. I was looking at that, but couldn t find a nice front end that lets you work visually. The GUI Loft let s you do things visually, then
                Message 7 of 19 , Jun 6, 2006
                • 0 Attachment
                  Thanks for the links.

                  I was looking at that, but couldn't find a nice front end that lets you
                  work visually. The GUI Loft let's you do things visually, then
                  generates the code for you. Is there something in tk that does that, or
                  am I missing something? Or at the very least, some application that has
                  some kind of code snippets that are easy to insert?

                  My goal is to develop code as rapidly as possible since I'll have a lot
                  to crank out.


                  Ken Shail wrote:
                  >
                  >
                  > ----- Original Message -----
                  > From: DigiDoc ; DigiDoc
                  > To: perl-beginner@yahoogroups.com
                  > <mailto:perl-beginner%40yahoogroups.com>
                  > Sent: Tuesday, June 06, 2006 8:45 PM
                  > Subject: Re: [PBML] Re: File lookup?
                  >
                  > Thanks for all the help to this question.
                  >
                  > I've got it working with the $ARGV stuff. I've got more tweaks I want
                  > to make, but the base code you provided really helps me out.
                  >
                  > I'm thinking I'll want to make a GUI out of it now. I was doing some
                  > research and found "The GUI Loft". It's a front end that uses
                  > Win32::GUI. I haven't used it yet, but it seems like what I need. If
                  > anyone has a better suggestion, please let me know.
                  >
                  > I can't tell me how much time you've saved me, not to mention that I've
                  > learned a few things as well. Code examples help me out a great deal, I
                  > tend to learn faster from them.
                  >
                  > Thanks!
                  >
                  > Perl Tk - works on Linux and windoze
                  > http://dc.pm.org/talks/tk/home.html <http://dc.pm.org/talks/tk/home.html>
                  > http://www.perltk.org/index.php?option=com_frontpage&Itemid=1
                  > <http://www.perltk.org/index.php?option=com_frontpage&Itemid=1>
                  > http://phaseit.net/claird/comp.lang.perl.tk/ptkFAQ.html
                  > <http://phaseit.net/claird/comp.lang.perl.tk/ptkFAQ.html>
                  >
                  >


                  [Non-text portions of this message have been removed]
                • Alan_C
                  ... [ Perl Tk - works on Linux and windoze ] (if you quote a bit of context, it makes it easier for me (+ probably some others) to track this thread and to
                  Message 8 of 19 , Jun 6, 2006
                  • 0 Attachment
                    On Tuesday 06 June 2006 13:24, DigiDoc wrote:
                    > Thanks for the links.

                    [ > > Perl Tk - works on Linux and windoze ]

                    (if you quote a bit of context, it makes it easier for me (+ probably some
                    others) to track this thread and to then offer any help if I have any help to
                    offer.

                    > I was looking at that, but couldn't find a nice front end that lets you
                    > work visually. The GUI Loft let's you do things visually, then
                    > generates the code for you. Is there something in tk that does that, or
                    > am I missing something? Or at the very least, some application that has
                    > some kind of code snippets that are easy to insert?
                    >
                    > My goal is to develop code as rapidly as possible since I'll have a lot
                    > to crank out.

                    There's WX Widgets. It has drag and drop (for the builder). It's cross
                    platform ie Win, Linux, etc. There's article on WX Widgets in the
                    latest "The Perl Review" (for subscribers) hey it's reasonable enough and I
                    look forward to each issue's arrival. (I've no affiliation, just a
                    subscriber).

                    http://www.theperlreview.com/

                    The summer issue has article on WX Widgets.

                    Other than what I've shared, I know nothing about WX. I want to try it but
                    it'll be + few weeks until I do due to other business currently.

                    > > I'm thinking I'll want to make a GUI out of it now. I was doing some
                    > > research and found "The GUI Loft". It's a front end that uses
                    > > Win32::GUI. I haven't used it yet, but it seems like what I need. If
                    > > anyone has a better suggestion, please let me know.

                    --
                    Alan.
                  Your message has been successfully submitted and would be delivered to recipients shortly.