Return to Snippet

Revision: 22161
at January 4, 2010 13:29 by vorp


Initial Code
#!/usr/bin/perl
# Usage in command line: perl <app> <file-to-be-converted> <width> <height>
# e.g. <app> myGeo.geo 30 30
# Parse .geo file and reformat as REFRACT-style height data file

my $origfile = $ARGV[0];
my $sizeX = $ARGV[1];
my $sizeY = $ARGV[2];

my $outfile  = "refract_" . $origfile; 
my %hTmp;
 
open (IN, "<$origfile")  or die "Couldn't open input file: $!"; 
#open (OUT, ">$outfile") or die "Couldn't open output file: $!"; 
 
my $numPoints = 0;
my $rowPoints = 0;
my $dataOut = "";

while (my $sLine = <IN>) {
	#print "line\n";
	#if ($sLine =~ m/^([-+]?([0-9]*\.)?[0-9]+)  ([-+]?([0-9]*\.)?[0-9]+) ([-+]?([0-9]*\.)?[0-9]+) [-+]?([0-9]*\.)?[0-9]+/) {
	if ($sLine =~ m/^([-+]?[0-9]*\.?[0-9]+)\s+([-+]?[0-9]*\.?[0-9]+)\s+([-+]?[0-9]*\.?[0-9]+)\s+([-+]?[0-9]*\.?[0-9]+)\s+$/ )  {
		my $x = $1;
		my $y = $2;
		my $z = $3;
		my $myString = sprintf("%.4f", $y);
		$dataOut .= "$myString ";
		$rowPoints++;
		if ($rowPoints >= $sizeX) {
			$dataOut .= "\n";
			$rowPoints = 0;
		}
		$numPoints++;
	}
}
#close OUT;
close IN;
#print "Num points: $numPoints \n";
print $dataOut;

Initial URL


Initial Description
Scans a file for a series of floating point numbers separated by spaces.

Initial Title
Scan file for Floating point numbers with regex

Initial Tags
regex, file

Initial Language
Perl