Add files via upload
This commit is contained in:
188
code/NcdfUtil/perl/StrTrim.pm
Normal file
188
code/NcdfUtil/perl/StrTrim.pm
Normal file
@ -0,0 +1,188 @@
|
||||
#!/usr/bin/perl -w
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# Harvard University Atmospheric Chemistry Modeling Group !
|
||||
#------------------------------------------------------------------------------
|
||||
#BOP
|
||||
#
|
||||
# !MODULE: StrTrim
|
||||
#
|
||||
# !DESCRIPTION: This Perl package contains routines for splitting a line
|
||||
# into substrings and removing trailing and leading whitespace. Used by
|
||||
# the ncCode* scripts.
|
||||
#\\
|
||||
#\\
|
||||
# !INTERFACE:
|
||||
#
|
||||
package StrTrim;
|
||||
#
|
||||
# !USES:
|
||||
#
|
||||
require 5.003; # Need this version of Perl or newer
|
||||
use English; # Use English language
|
||||
use Carp; # Get detailed error messages
|
||||
use strict; # Force explicit variable declarations (like IMPLICIT NONE)
|
||||
#
|
||||
#
|
||||
# !PUBLIC MEMBER FUNCTIONS:
|
||||
# &trim($)
|
||||
# &splitLine($$)
|
||||
#
|
||||
# !CALLING SEQUENCE:
|
||||
# use StrTrim qw( trim splitLine extractFile );
|
||||
#
|
||||
# !REVISION HISTORY:
|
||||
# 30 Jan 2012 - R. Yantosca - Initial version
|
||||
# 26 Mar 2012 - R. Yantosca - Add function &extractFile
|
||||
#EOP
|
||||
#------------------------------------------------------------------------------
|
||||
#BOC
|
||||
BEGIN {
|
||||
|
||||
#=========================================================================
|
||||
# The BEGIN method lists the names to export to the calling routine
|
||||
#=========================================================================
|
||||
use Exporter ();
|
||||
use vars qw( $VERSION @ISA @EXPORT_OK );
|
||||
|
||||
$VERSION = 1.00; # version number
|
||||
@ISA = qw( Exporter ); # export method
|
||||
@EXPORT_OK = qw( &trim &splitLine &extractFile );
|
||||
}
|
||||
#EOC
|
||||
#------------------------------------------------------------------------------
|
||||
# Harvard University Atmospheric Chemistry Modeling Group !
|
||||
#------------------------------------------------------------------------------
|
||||
#BOP
|
||||
#
|
||||
# !IROUTINE: trim
|
||||
#
|
||||
# !DESCRIPTION: Routine trim removes leading and trailing whitespace from
|
||||
# a string (analogous to IDL's Strtrim( str, 2 ) command).
|
||||
#\\
|
||||
#\\
|
||||
# !INTERFACE:
|
||||
#
|
||||
sub trim($) {
|
||||
#
|
||||
# !CALLING SEQUENCE:
|
||||
# $string = &trim( $string );
|
||||
#
|
||||
# !REMARKS:
|
||||
# Found online at this URL:
|
||||
# http://www.somacon.com/p114.php
|
||||
#
|
||||
# !REVISION HISTORY:
|
||||
# 27 Jan 2012 - R. Yantosca - Initial version
|
||||
#EOP
|
||||
#------------------------------------------------------------------------------
|
||||
#BOC
|
||||
|
||||
# Shift the @_ array
|
||||
my $string = shift;
|
||||
|
||||
# Remove leading whitespace
|
||||
$string =~ s/^\s+//;
|
||||
|
||||
# Remove trailing whitespace
|
||||
$string =~ s/\s+$//;
|
||||
|
||||
# Return
|
||||
return( $string );
|
||||
}
|
||||
#EOP
|
||||
#------------------------------------------------------------------------------
|
||||
# Harvard University Atmospheric Chemistry Modeling Group !
|
||||
#------------------------------------------------------------------------------
|
||||
#BOP
|
||||
#
|
||||
# !IROUTINE: splitLine
|
||||
#
|
||||
# !DESCRIPTION: Routine splitLine splits a line on a given delimiter, and
|
||||
# strips white space. Convenience wrapper for the Perl "split" function.
|
||||
#\\
|
||||
#\\
|
||||
# !INTERFACE:
|
||||
#
|
||||
sub splitLine($$) {
|
||||
#
|
||||
# !INPUT PARAMETERS:
|
||||
#
|
||||
# Line to be split, and the delimeter character
|
||||
# Don't strip the white from $value if $noSplitVal==1
|
||||
my( $line, $delim ) = @_;
|
||||
#
|
||||
# !CALLING SEQUENCE:
|
||||
# ( $name, $value ) = &splitLine( $line );
|
||||
#
|
||||
# !REVISION HISTORY:
|
||||
# 27 Jan 2012 - R. Yantosca - Initial version
|
||||
#EOP
|
||||
#------------------------------------------------------------------------------
|
||||
#BOC
|
||||
#
|
||||
# !LOCAL VARIABLES:
|
||||
#
|
||||
# Split the line
|
||||
my @subStr = split( $delim, $line );
|
||||
my $name = &trim( $subStr[0] );
|
||||
my $value = &trim( $subStr[1] );
|
||||
|
||||
# Return substrings
|
||||
return( $name, $value );
|
||||
}
|
||||
#EOP
|
||||
#------------------------------------------------------------------------------
|
||||
# Harvard University Atmospheric Chemistry Modeling Group !
|
||||
#------------------------------------------------------------------------------
|
||||
#BOP
|
||||
#
|
||||
# !IROUTINE: extractFile
|
||||
#
|
||||
# !DESCRIPTION: Routine extractFile splits a full Unix path name into a
|
||||
# directory string and a file name.
|
||||
#\\
|
||||
#\\
|
||||
# !INTERFACE:
|
||||
#
|
||||
sub extractFile($) {
|
||||
#
|
||||
# !INPUT PARAMETERS:
|
||||
#
|
||||
# Full Unix path name
|
||||
my( $path ) = @_;
|
||||
#
|
||||
# !CALLING SEQUENCE:
|
||||
# ( $file, $dir ) = &extractFile( $path );
|
||||
#
|
||||
# !REVISION HISTORY:
|
||||
# 26 Mar 2012 - R. Yantosca - Initial version
|
||||
#EOP
|
||||
#------------------------------------------------------------------------------
|
||||
#BOC
|
||||
#
|
||||
# !LOCAL VARIABLES:
|
||||
#
|
||||
my $pos = -1;
|
||||
my $lastPos = -1;
|
||||
my $dir = "";
|
||||
my $file = "";
|
||||
|
||||
# Search for the last "/" character in the file path
|
||||
# This is the place where to split the file & directory
|
||||
while ( ( $pos = index( $path, '/', $pos ) ) > -1 ) {
|
||||
$lastPos = $pos;
|
||||
$pos++;
|
||||
}
|
||||
|
||||
# Directory part of the path
|
||||
$dir = substr( $path, 0, $lastPos+1 );
|
||||
|
||||
# Filename part of the path
|
||||
$file = substr( $path, $lastPos+1, length( $path ) - $lastPos );
|
||||
|
||||
# Return substrings
|
||||
return( $file, $dir );
|
||||
}
|
||||
#EOC
|
||||
END {}
|
Reference in New Issue
Block a user