Hi,
I'm having a Perl Code and i want to convert it into a C Code.
I want to know is there any tool is available to do so?

If not available anybony can help me to convert??:?:
plz mail me at nrk_jegan@yahoo.com

Regards,
Jeganathan K.

Recommended Answers

All 2 Replies

perlcc that comes with the perl distribution

Can anyone convert this perl code into C Code???:!: :!:

open(IN, "$inname");

# read rest of input file in 64K junks
 while(read(IN, $buffer, 64*1024)) 
{
    $data .= $buffer;
}
close(IN);

    my @data = split(//, $data);
    my $color     = 0;
    my $lastcolor = 0;
    my $layer     = 0;
    my $strokes   = 0;
    my $points    = 0;
    my $pointcmd  = "S";

    while($count < $#data) {
    my $next = ord($data[$count++]);

    if (($next & ~0x07) == 0x80) 
    {  # pen up/down
        if ($next & 0x01) 
        {
        $pointcmd = "S";
        print "DEBUG pen down POSITION $count\n" if ($debug);
        }
        else
        {
        $pointcmd = "L\nE\n";
        $strokes++;
        print "DEBUG pen up POSITION $count\n" if ($debug);
        }

        $color = (($next >> 1) + ($layer * $colorlayers))  & 0x03;
        print "DEBUG pen color $color\n" if ($debug);
        if ($color != $lastcolor)
        {
        $lastcolor = $color;
        print OUT "%%Color: $color\n";
        print OUT ("0 0 0", "1 0 0", "0 1 0", "0 0 1")[$color] . " RGB\n";
        }
    }
    elsif ($next == 0x88) {  # time stamp
        my $timestamp = ord($data[$count++]);
        print "DEBUG TimeStamp $timestamp\n" if ($debug);
        print OUT "%%TimeStamp: $timestamp\n" if ($timestamp < 0x7f);
    }
    elsif ($next == 0x90) {  ## end of layer
        $layer = ord($data[$count++]);
        print "DEBUG End of LAYER $layer\n" if ($debug);
        die("Layer # $layer > 127") if ($layer & 0x80);
        print OUT "%%EndOfLayer: $layer\n\n";
    }
    elsif (!($next & ~0x7f)) {  ## coordinates
        my ($b1, $b2, $b3, $b4) = ($next, ord($data[$count+0]), ord($data[$count+1]), ord($data[$count+2]));
        $count += 3;
        printf "DEBUG CHECK position $count A %02x %02x %02x %02x\n", $b1, $b2, $b3, $b4 if ($debug);
        # die("MSB set in coordinate bytes") if (($b1 | $$b2 | $b3 | $b4) & ~0x7f);

        my $x = $b1 + ($b2 << 7);
        my $y = $b3 + ($b4 << 7);
        print "DEBUG $count: x = $x / y = $y\n" if ($debug);
        print OUT "$x $y " . $pointcmd . "\n";
        $points++;

        $pointcmd = "L";
    } else {
        die("unknown byte " . sprintf("0x%02x", $next) . " at position $count");
    }
    }
Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.