Re: [Arsperl-users] Parse arx file
Brought to you by:
jeffmurphy
|
From: Brad O'H. <br...@uf...> - 2008-01-23 14:16:19
|
Mark,
AWSOME! Work great. If it is not too much trouble, could I ask how this works?
I assume $remainder is not used :-)
What does $line =~ /[^\\]"/g; anchor to?
Thanks again!
Brad
On Tuesday 22 January 2008 5:41 pm, Vaughan, Mark wrote:
> Brad,
> I was able to successfully run this on Windows using ActiveState Perl.
>
> I did get a seg fault when running this on a Solaris 9 box using Perl
> 5.8.5. I followed through the code and
> Text::Balanced::extract_delimited, line 135, provides the seg fault.
> In translating the variables, here is the pattern match that is failing:
> $$textref =~ m/\G(\s*)((?:\"(?:[^\\\"]*(?:\\.[^\\\"]*)*)\"))/gc
>
> The $textref variable is a scalar pointing to the input line. Only
> guessing here, but I wonder if the pattern match is running out of
> memory.
>
> Here is a sample routine which gives the desired response instead of
> using Text::Balanced::extract_delimited. It runs fine on my sun box
> using the input records you gave me:
>
> sub extractDelimited {
> my( $line ) = @_;
>
> if( $line !~ /^"/ ) {
> return( undef, $line );
> }
>
> my $val;
> my $remainder;
>
> $line =~ /[^\\]"/g;
> my $pos = pos($line);
> print $pos, '/', length( $line ), "\n";
> if( defined( $pos )) {
> return( substr( $line, 0, $pos ), substr( $line, $pos ));
> }
> return( undef, $line );
> }
>
> Try calling this routine instead of Text::Balanced::extract_delimited.
> Also, the value in question is $ret[10], not $ret[9].
>
> HTH,
> Mark Vaughan
> TTS Development
> Comcast Cable Corporation
> 720.268.8591
> -----Original Message-----
> From: ars...@ar...
> [mailto:ars...@ar...] On Behalf Of Brad O'Hara
> Sent: Sunday, January 20, 2008 6:08 AM
> To: ARSperl User Discussion
> Subject: Re: [Arsperl-users] Parse arx file
>
> Mark,
>
> Thanks for the help. Here is the code I am using that seg faults
> when I try it.
> #!/usr/bin/perl
> use Text::Balanced qw( extract_delimited );
>
> $line = `/usr/bin/tail -1 /home/arsrv/bin/perlmods/help.txt`;
>
> while ( length($line) ) {
> if( substr($line,0,1) eq '"' ) {
> ( $val, $line ) = extract_delimited( $line, '"' );
> last if defined($line) && !defined($val);
> $val =~ s/^"//;
> $val =~ s/"$//;
>
> $val =~ s/\\\\/\\/g;
> $val =~ s/\\r//g;
> $val =~ s/\\n/\n/g;
> $val =~ s/\\"/"/g;
> }
> else {
> $line =~ s/(\S+)//;
> $val = $1;
> }
> push @ret, $val;
> $line =~ s/\s*//;
> }
>
> print ">$ret[9]<\n";
> exit;
>
> I will tried a new export with the same result. I placed a new arx
> file at the address I gave you.
> It contains the record before the problem record as well as headers.
>
> Thanks again,
>
> Brad
>
> On Jan 20, 2008, at 12:26 AM, Mark Vaughan wrote:
>
> > Brad,
> > I took a look at your file.
> >
> > The first data record reads okay.
> >
> > The second data record reads okay in that the routine does not die.
> > The
> > problem is the tenth field (Scheduled Date, ID 536870921, type
> > DATE). It is
> > a 1,039,967 byte (after translation) character string. It is not a
> > date
> > field by any means.
> >
> > You may wish to regenerate your ARX file.
> >
> > HTH,
> > Mark Vaughan
> > 303.471.9987 (home)
> > 303.601.4434 (mobile)
> > -----Original Message-----
> > From: ars...@ar...
> > [mailto:ars...@ar...] On Behalf Of Brad O'Hara
> > Sent: Saturday, January 19, 2008 6:28 PM
> > To: ARSperl User Discussion
> > Subject: Re: [Arsperl-users] Parse arx file
> >
> > Mark,
> >
> > It is a very large record. I placed it at
> > http://remedy.cns.ufl.edu/arsperl
> > Any help greatly appreciated.
> >
> > Brad
> >
> > On Jan 19, 2008, at 12:03 PM, Mark Vaughan wrote:
> >
> >> What's the record look like?
> >> Please send an ARX file with the header, one good record, and the
> >> record
> >> that does not process.
> >>
> >> Thanks,
> >> Mark Vaughan
> >> 303.471.9987 (home)
> >> 303.601.4434 (mobile)
> >> -----Original Message-----
> >> From: ars...@ar...
> >> [mailto:ars...@ar...] On Behalf Of Brad O'Hara
> >> Sent: Friday, January 18, 2008 8:29 AM
> >> To: ARSperl User Discussion
> >> Subject: Re: [Arsperl-users] Parse arx file
> >>
> >> Thilo,
> >>
> >> I've come upon a record the causes the following code to seg
> >> fault. Do
> >> you have any interest
> >> in taking a look?
> >>
> >> Thanks,
> >> Brad
> >>
> >> On Tuesday 13 November 2007 4:35 pm, Brad O'Hara wrote:
> >>> Thanks! Certainly something I can work with!
> >>>
> >>> Brad
> >>>
> >>> On Tuesday 13 November 2007 3:01 pm, Thilo Stapff wrote:
> >>>> Here's a subroutine that splits a line in ARX format to an array of
> >>>> values. It works for the basic data types such as character,
> >>>> integer
> >> etc.
> >>>> More complicated data like attachments, diary and currency would of
> >>>> course need some further processing.
> >>>>
> >>>>
> >>>> use Text::Balanced qw( extract_delimited );
> >>>>
> >>>>
> >>>> sub splitArxLine {
> >>>> my( $line ) = @_;
> >>>> my @ret;
> >>>> my $val;
> >>>>
> >>>> print "--------------------\n";
> >>>> while( length($line) ){
> >>>> if( substr($line,0,1) eq '"' ){
> >>>> ( $val, $line ) = extract_delimited( $line, '"' );
> >>>> last if defined($line) && !defined($val);
> >>>> $val =~ s/^"//;
> >>>> $val =~ s/"$//;
> >>>>
> >>>> $val =~ s/\\\\/\\/g;
> >>>> $val =~ s/\\r//g;
> >>>> $val =~ s/\\n/\n/g;
> >>>> $val =~ s/\\"/"/g;
> >>>>
> >>>> print "<$val>\n";
> >>>>
> >>>> }else{
> >>>> $line =~ s/(\S+)//;
> >>>> $val = $1;
> >>>> }
> >>>> push @ret, $val;
> >>>> $line =~ s/\s*//;
> >>>> }
> >>>>
> >>>> return @ret;
> >>>> }
> >>>>
> >>>>
> >>>>
> >>>> Regards,
> >>>> Thilo
> >>>>
> >>>>
> >>>>
> >>>> Brad O'Hara wrote:
> >>>>> Hi all,
> >>>>>
> >>>>> Anyone written a routine to parse a .arx file?
> >>>>>
> >>>>> Thanks,
> >>>>> Brad
> >>>>
> >>>>
> >>>>
> >>
> ------------------------------------------------------------------------
> -
> >>>> This SF.net email is sponsored by: Splunk Inc.
> >>>> Still grepping through log files to find problems? Stop.
> >>>> Now Search log events and configuration files using AJAX and a
> >>>> browser.
> >>>> Download your FREE copy of Splunk now >> http://get.splunk.com/
> >>>> _______________________________________________
> >>>> Arsperl-users mailing list
> >>>> Ars...@ar...
> >>>> https://lists.sourceforge.net/lists/listinfo/arsperl-users
> >>>>
> >>>>
> >>>
> >>
> >> --
> >> Brad O'Hara E-mail: br...@uf...
> >> IT Expert Voice: (352)392-2061
> >> Computing and Networking Services Suncom: 622-2061
> >> University of Florida Fax: (352)392-9440
> >>
> >>
> ------------------------------------------------------------------------
> -
> >> This SF.net email is sponsored by: Microsoft
> >> Defy all challenges. Microsoft(R) Visual Studio 2008.
> >> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
> >> _______________________________________________
> >> Arsperl-users mailing list
> >> Ars...@ar...
> >> https://lists.sourceforge.net/lists/listinfo/arsperl-users
> >>
> >>
> >>
> ------------------------------------------------------------------------
> -
> >> This SF.net email is sponsored by: Microsoft
> >> Defy all challenges. Microsoft(R) Visual Studio 2008.
> >> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
> >> _______________________________________________
> >> Arsperl-users mailing list
> >> Ars...@ar...
> >> https://lists.sourceforge.net/lists/listinfo/arsperl-users
> >>
> >
> >
> >
> ------------------------------------------------------------------------
> -
> > This SF.net email is sponsored by: Microsoft
> > Defy all challenges. Microsoft(R) Visual Studio 2008.
> > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
> > _______________________________________________
> > Arsperl-users mailing list
> > Ars...@ar...
> > https://lists.sourceforge.net/lists/listinfo/arsperl-users
> >
> >
> >
> ------------------------------------------------------------------------
> -
> > This SF.net email is sponsored by: Microsoft
> > Defy all challenges. Microsoft(R) Visual Studio 2008.
> > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
> > _______________________________________________
> > Arsperl-users mailing list
> > Ars...@ar...
> > https://lists.sourceforge.net/lists/listinfo/arsperl-users
> >
>
>
> ------------------------------------------------------------------------
> -
> This SF.net email is sponsored by: Microsoft
> Defy all challenges. Microsoft(R) Visual Studio 2008.
> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
> _______________________________________________
> Arsperl-users mailing list
> Ars...@ar...
> https://lists.sourceforge.net/lists/listinfo/arsperl-users
>
> -------------------------------------------------------------------------
> This SF.net email is sponsored by: Microsoft
> Defy all challenges. Microsoft(R) Visual Studio 2008.
> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
> _______________________________________________
> Arsperl-users mailing list
> Ars...@ar...
> https://lists.sourceforge.net/lists/listinfo/arsperl-users
>
>
--
Brad O'Hara E-mail: br...@uf...
IT Expert Voice: (352)392-2061
Computing and Networking Services Suncom: 622-2061
University of Florida Fax: (352)392-9440
|