comparison mayachemtools/docs/modules/man3/TextUtil.3 @ 0:73ae111cf86f draft

Uploaded
author deepakjadmin
date Wed, 20 Jan 2016 11:55:01 -0500
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:73ae111cf86f
1 .\" Automatically generated by Pod::Man 2.25 (Pod::Simple 3.22)
2 .\"
3 .\" Standard preamble:
4 .\" ========================================================================
5 .de Sp \" Vertical space (when we can't use .PP)
6 .if t .sp .5v
7 .if n .sp
8 ..
9 .de Vb \" Begin verbatim text
10 .ft CW
11 .nf
12 .ne \\$1
13 ..
14 .de Ve \" End verbatim text
15 .ft R
16 .fi
17 ..
18 .\" Set up some character translations and predefined strings. \*(-- will
19 .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
20 .\" double quote, and \*(R" will give a right double quote. \*(C+ will
21 .\" give a nicer C++. Capital omega is used to do unbreakable dashes and
22 .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
23 .\" nothing in troff, for use with C<>.
24 .tr \(*W-
25 .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
26 .ie n \{\
27 . ds -- \(*W-
28 . ds PI pi
29 . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
30 . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
31 . ds L" ""
32 . ds R" ""
33 . ds C` ""
34 . ds C' ""
35 'br\}
36 .el\{\
37 . ds -- \|\(em\|
38 . ds PI \(*p
39 . ds L" ``
40 . ds R" ''
41 'br\}
42 .\"
43 .\" Escape single quotes in literal strings from groff's Unicode transform.
44 .ie \n(.g .ds Aq \(aq
45 .el .ds Aq '
46 .\"
47 .\" If the F register is turned on, we'll generate index entries on stderr for
48 .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
49 .\" entries marked with X<> in POD. Of course, you'll have to process the
50 .\" output yourself in some meaningful fashion.
51 .ie \nF \{\
52 . de IX
53 . tm Index:\\$1\t\\n%\t"\\$2"
54 ..
55 . nr % 0
56 . rr F
57 .\}
58 .el \{\
59 . de IX
60 ..
61 .\}
62 .\"
63 .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
64 .\" Fear. Run. Save yourself. No user-serviceable parts.
65 . \" fudge factors for nroff and troff
66 .if n \{\
67 . ds #H 0
68 . ds #V .8m
69 . ds #F .3m
70 . ds #[ \f1
71 . ds #] \fP
72 .\}
73 .if t \{\
74 . ds #H ((1u-(\\\\n(.fu%2u))*.13m)
75 . ds #V .6m
76 . ds #F 0
77 . ds #[ \&
78 . ds #] \&
79 .\}
80 . \" simple accents for nroff and troff
81 .if n \{\
82 . ds ' \&
83 . ds ` \&
84 . ds ^ \&
85 . ds , \&
86 . ds ~ ~
87 . ds /
88 .\}
89 .if t \{\
90 . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
91 . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
92 . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
93 . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
94 . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
95 . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
96 .\}
97 . \" troff and (daisy-wheel) nroff accents
98 .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
99 .ds 8 \h'\*(#H'\(*b\h'-\*(#H'
100 .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
101 .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
102 .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
103 .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
104 .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
105 .ds ae a\h'-(\w'a'u*4/10)'e
106 .ds Ae A\h'-(\w'A'u*4/10)'E
107 . \" corrections for vroff
108 .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
109 .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
110 . \" for low resolution devices (crt and lpr)
111 .if \n(.H>23 .if \n(.V>19 \
112 \{\
113 . ds : e
114 . ds 8 ss
115 . ds o a
116 . ds d- d\h'-1'\(ga
117 . ds D- D\h'-1'\(hy
118 . ds th \o'bp'
119 . ds Th \o'LP'
120 . ds ae ae
121 . ds Ae AE
122 .\}
123 .rm #[ #] #H #V #F C
124 .\" ========================================================================
125 .\"
126 .IX Title "TEXTUTIL 1"
127 .TH TEXTUTIL 1 "2015-03-29" "perl v5.14.2" "MayaChemTools"
128 .\" For nroff, turn off justification. Always turn off hyphenation; it makes
129 .\" way too many mistakes in technical documents.
130 .if n .ad l
131 .nh
132 .SH "NAME"
133 TextUtil
134 .SH "SYNOPSIS"
135 .IX Header "SYNOPSIS"
136 use TextUtil;
137 .PP
138 use TextUtil qw(:all);
139 .SH "DESCRIPTION"
140 .IX Header "DESCRIPTION"
141 \&\fBTextUtil\fR module provides the following functions:
142 .PP
143 AddNumberSuffix, ContainsWhiteSpaces, GetTextFileDataByNonUniqueKey,
144 GetTextFileDataByUniqueKey, GetTextLine, HashCode, IsEmpty, IsFloat, IsInteger,
145 IsNotEmpty, IsNumberPowerOfNumber, IsNumerical, IsPositiveInteger, JoinWords,
146 QuoteAWord, RemoveLeadingAndTrailingWhiteSpaces, RemoveLeadingWhiteSpaces,
147 RemoveTrailingWhiteSpaces, SplitWords, WrapText
148 .SH "FUNCTIONS"
149 .IX Header "FUNCTIONS"
150 .IP "\fBAddNumberSuffix\fR" 4
151 .IX Item "AddNumberSuffix"
152 .Vb 1
153 \& $NumberWithSuffix = AddNumberSuffix($IntegerValue);
154 .Ve
155 .Sp
156 Returns number with appropriate suffix: 0, 1st, 2nd, 3rd, 4th, and so on.
157 .IP "\fBContainsWhiteSpaces\fR" 4
158 .IX Item "ContainsWhiteSpaces"
159 .Vb 1
160 \& $Status = ContainsWhiteSpaces($TheString);
161 .Ve
162 .Sp
163 Returns 1 or 0 based on whether the string contains any white spaces.
164 .IP "\fBGetTextLine\fR" 4
165 .IX Item "GetTextLine"
166 .Vb 1
167 \& $Line = GetTextLine(\e*TEXTFILE);
168 .Ve
169 .Sp
170 Reads next line from an already opened text file, takes out any carriage return,
171 and returns it as a string. \s-1NULL\s0 is returned for \s-1EOF\s0.
172 .IP "\fBGetTextFileDataByNonUniqueKey\fR" 4
173 .IX Item "GetTextFileDataByNonUniqueKey"
174 .Vb 2
175 \& GetTextFileDataByNonUniqueKey($TextDataFile, $TextDataMapRef,
176 \& $DataKeyColNum, $InDelim);
177 .Ve
178 .Sp
179 Load data from a text file into the specified hash reference using a specific
180 column for non-unique data key values.
181 .Sp
182 The lines starting with # are treated as comments and ignored. First line
183 not starting with # must contain column labels and the number of columns in
184 all other data rows must match the number of column labels.
185 .Sp
186 The first column is assumed to contain data key value by default; all other columns
187 contain data as indicated in their column labels.
188 .Sp
189 In order to avoid dependence of data access on the specified column labels, the
190 column data is loaded into hash with Column<Num> hash keys, where column number
191 start from 1. The data key column is not available as Colnum<Num> hash key;
192 .Sp
193 The format of the data structure loaded into a specified hash reference is:
194 .Sp
195 .Vb 7
196 \& @{$TextDataMapRef\->{DataKeys}} \- Array of unique data keys
197 \& @{$TextDataMapRef\->{ColLabels}} \- Array of column labels
198 \& @{$TextDataMapRef\->{DataColIDs}} \- Array of data column IDs
199 \& $TextDataMapRef\->{NumOfCols} \- Number of columns
200 \& %{$TextDataMapRef\->{DataKey}} \- Hash keys pair: <DataKey, DataKey>
201 \& @{$TextDataMapRef\->{DataCol<Num>}} \- Hash keys pair with data as an array:
202 \& <DataCol<Num>, DataKey>
203 .Ve
204 .IP "\fBGetTextFileDataByUniqueKey\fR" 4
205 .IX Item "GetTextFileDataByUniqueKey"
206 .Vb 2
207 \& GetTextFileDataByUniqueKey($TextDataFile, $TextDataMapRef, $DataKeyColNum,
208 \& $InDelim);
209 .Ve
210 .Sp
211 Load data from a text file into the specified hash reference using a a specific
212 column for unique data key values.
213 .Sp
214 The lines starting with # are treated as comments and ignored. First line
215 not starting with # must contain column labels and the number of columns in
216 all other data rows must match the number of column labels.
217 .Sp
218 The first column is assumed to contain data key value by default; all other columns
219 contain data as indicated in their column labels.
220 .Sp
221 In order to avoid dependence of data access on the specified column labels, the
222 column data is loaded into hash with Column<Num> hash keys, where column number
223 start from 1. The data key column is not available as Colnum<Num> hash key;
224 .Sp
225 The format of the data structure loaded into a specified hash reference is:
226 .Sp
227 .Vb 6
228 \& @{$TextDataMapRef\->{DataKeys}} \- Array of unique data keys
229 \& @{$TextDataMapRef\->{ColLabels}} \- Array of column labels
230 \& @{$TextDataMapRef\->{DataColIDs}} \- Array of data column IDs
231 \& $TextDataMapRef\->{NumOfCols} \- Number of columns
232 \& %{$TextDataMapRef\->{DataKey}} \- Hash keys pair: <DataKey, DataKey>
233 \& %{$TextDataMapRef\->{DataCol<Num>}} \- Hash keys pair: <DataCol<Num>, DataKey>
234 .Ve
235 .IP "\fBHashCode\fR" 4
236 .IX Item "HashCode"
237 .Vb 1
238 \& $HashCode = HashCode($TheString);
239 .Ve
240 .Sp
241 Returns a 32 bit integer hash code using One-at-a-time algorithm By Bob Jenkins [Ref 38].
242 It's also implemented in Perl for internal hash keys in hv.h include file.
243 .IP "\fBIsEmpty\fR" 4
244 .IX Item "IsEmpty"
245 .Vb 1
246 \& $Status = IsEmpty($TheString);
247 .Ve
248 .Sp
249 Returns 1 or 0 based on whether the string is empty.
250 .IP "\fBIsInteger\fR" 4
251 .IX Item "IsInteger"
252 .Vb 1
253 \& $Status = IsInteger($TheString);
254 .Ve
255 .Sp
256 Returns 1 or 0 based on whether the string is a positive integer.
257 .IP "\fBIsPositiveInteger\fR" 4
258 .IX Item "IsPositiveInteger"
259 .Vb 1
260 \& $Status = IsPositiveInteger($TheString);
261 .Ve
262 .Sp
263 Returns 1 or 0 based on whether the string is an integer.
264 .IP "\fBIsFloat\fR" 4
265 .IX Item "IsFloat"
266 .Vb 1
267 \& $Status = IsFloat($TheString);
268 .Ve
269 .Sp
270 Returns 1 or 0 based on whether the string is a float.
271 .IP "\fBIsNotEmpty\fR" 4
272 .IX Item "IsNotEmpty"
273 .Vb 1
274 \& $Status = IsNotEmpty($TheString);
275 .Ve
276 .Sp
277 Returns 0 or 1 based on whether the string is empty.
278 .IP "\fBIsNumerical\fR" 4
279 .IX Item "IsNumerical"
280 .Vb 1
281 \& $Status = IsNumerical($TheString);
282 .Ve
283 .Sp
284 Returns 1 or 0 based on whether the string is a number.
285 .IP "\fBIsNumberPowerOfNumber\fR" 4
286 .IX Item "IsNumberPowerOfNumber"
287 .Vb 1
288 \& $Status = IsNumberPowerOfNumber($FirstNum, $SecondNum);
289 .Ve
290 .Sp
291 Returns 1 or 0 based on whether the first number is a power of second number.
292 .IP "\fBJoinWords\fR" 4
293 .IX Item "JoinWords"
294 .Vb 1
295 \& $JoinedWords = JoinWords($Words, $Delim, $Quote);
296 .Ve
297 .Sp
298 Joins different words using delimiter and quote parameters, and returns it
299 as a string.
300 .IP "\fBQuoteAWord\fR" 4
301 .IX Item "QuoteAWord"
302 .Vb 1
303 \& $QuotedWord = QuoteAWord($Word, $Quote);
304 .Ve
305 .Sp
306 Returns a quoted string based on \fIQuote\fR value.
307 .IP "\fBRemoveLeadingWhiteSpaces\fR" 4
308 .IX Item "RemoveLeadingWhiteSpaces"
309 .Vb 1
310 \& $OutString = RemoveLeadingWhiteSpaces($InString);
311 .Ve
312 .Sp
313 Returns a string without any leading and traling white spaces.
314 .IP "\fBRemoveTrailingWhiteSpaces\fR" 4
315 .IX Item "RemoveTrailingWhiteSpaces"
316 .Vb 1
317 \& $OutString = RemoveTrailingWhiteSpaces($InString);
318 .Ve
319 .Sp
320 Returns a string without any trailing white spaces.
321 .IP "\fBRemoveLeadingAndTrailingWhiteSpaces\fR" 4
322 .IX Item "RemoveLeadingAndTrailingWhiteSpaces"
323 .Vb 1
324 \& $OutString = RemoveLeadingAndTrailingWhiteSpaces($InString);
325 .Ve
326 .Sp
327 Returns a string without any leading and traling white spaces.
328 .IP "\fBSplitWords\fR" 4
329 .IX Item "SplitWords"
330 .Vb 1
331 \& @Words = SplitWords($Line, $Delimiter);
332 .Ve
333 .Sp
334 Returns an array \fIWords\fR ontaining unquoted words generated after spliting
335 string value \fILine\fR containing quoted or unquoted words.
336 .Sp
337 This function is used to split strings generated by JoinWords as replacement
338 for Perl's core module funtion \fIText::ParseWords::quotewords()\fR which dumps core
339 on very long strings.
340 .IP "\fBWrapText\fR" 4
341 .IX Item "WrapText"
342 .Vb 1
343 \& $OutString = WrapText($InString, [$WrapLength, $WrapDelimiter]);
344 .Ve
345 .Sp
346 Returns a wrapped string. By default, \fIWrapLenght\fR is \fI40\fR and \fIWrapDelimiter\fR
347 is Unix new line character.
348 .SH "AUTHOR"
349 .IX Header "AUTHOR"
350 Manish Sud <msud@san.rr.com>
351 .SH "SEE ALSO"
352 .IX Header "SEE ALSO"
353 FileUtil.pm
354 .SH "COPYRIGHT"
355 .IX Header "COPYRIGHT"
356 Copyright (C) 2015 Manish Sud. All rights reserved.
357 .PP
358 This file is part of MayaChemTools.
359 .PP
360 MayaChemTools is free software; you can redistribute it and/or modify it under
361 the terms of the \s-1GNU\s0 Lesser General Public License as published by the Free
362 Software Foundation; either version 3 of the License, or (at your option)
363 any later version.