#!/usr/bin/perl -w
use strict;
use Win32::API;

my $DataBarExp = Win32::API->new('MoroviaDataBarFontEncoder', 
				'DataBarExpanded',
				'PNPN', 'I');
my $Buffer = " " x 2048;  # allocate a 2048-byte buffer
my $segsPerRow = 2;

printf("data len: sgr : rows\n");
for(my $len=25; $len<=39; $len++) {
	my $data = "(8110)" . generate_random_string($len);
	
	for(my $sgr=2; $sgr<=22; $sgr+=2) {
		my $num_of_Rows = get_num_of_rows($data, $sgr);
		printf("%d\t%d\t%d\n", $len, $sgr, $num_of_Rows);
	}
}


sub get_num_of_rows
{
	my ($data, $segsPerRow) = @_;
	my $Buffer = " " x 2048;  # allocate a 2048-byte buffer
	$DataBarExp->Call($data,  $segsPerRow, $Buffer, 2048);
	my $count = ($Buffer =~ tr/\r//);
	return $count+1;
}


# This function generates random strings of a given length
sub generate_random_string
{
	my $length_of_randomstring=shift;# the length of 
			 # the random string to generate

	my @chars=('0'..'9');
	my $random_string;
	foreach (1..$length_of_randomstring) 
	{
		# rand @chars will generate a random 
		# number between 0 and scalar @chars
		$random_string.=$chars[rand @chars];
	}
	return $random_string;
}


