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: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] 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: [EMAIL PROTECTED]
> [mailto:[EMAIL PROTECTED] 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: [EMAIL PROTECTED]
>> [mailto:[EMAIL PROTECTED] 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
>>>> Arsperl-users@arsperl.org
>>>> https://lists.sourceforge.net/lists/listinfo/arsperl-users
>>>>
>>>>
>>>
>>
>> -- 
>> Brad O'Hara                         E-mail:  [EMAIL PROTECTED]
>> 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
>> Arsperl-users@arsperl.org
>> 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
>> Arsperl-users@arsperl.org
>> 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
> Arsperl-users@arsperl.org
> 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
> Arsperl-users@arsperl.org
> 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
Arsperl-users@arsperl.org
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
Arsperl-users@arsperl.org
https://lists.sourceforge.net/lists/listinfo/arsperl-users

Reply via email to