annotate mayachemtools/bin/TextFilesToHTML.pl @ 9:ab29fa5c8c1f draft default tip

Uploaded
author deepakjadmin
date Thu, 15 Dec 2016 14:18:03 -0500
parents 73ae111cf86f
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1 #!/usr/bin/perl -w
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
2 #
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
3 # $RCSfile: TextFilesToHTML.pl,v $
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
4 # $Date: 2015/02/28 20:46:21 $
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
5 # $Revision: 1.41 $
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
6 #
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
7 # Author: Manish Sud <msud@san.rr.com>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
8 #
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
9 # Copyright (C) 2015 Manish Sud. All rights reserved.
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
10 #
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
11 # This file is part of MayaChemTools.
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
12 #
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
13 # MayaChemTools is free software; you can redistribute it and/or modify it under
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
14 # the terms of the GNU Lesser General Public License as published by the Free
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
15 # Software Foundation; either version 3 of the License, or (at your option) any
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
16 # later version.
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
17 #
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
18 # MayaChemTools is distributed in the hope that it will be useful, but without
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
19 # any warranty; without even the implied warranty of merchantability of fitness
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
20 # for a particular purpose. See the GNU Lesser General Public License for more
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
21 # details.
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
22 #
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
23 # You should have received a copy of the GNU Lesser General Public License
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
24 # along with MayaChemTools; if not, see <http://www.gnu.org/licenses/> or
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
25 # write to the Free Software Foundation Inc., 59 Temple Place, Suite 330,
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
26 # Boston, MA, 02111-1307, USA.
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
27 #
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
28
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
29 use strict;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
30 use FindBin; use lib "$FindBin::Bin/../lib";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
31 use Getopt::Long;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
32 use File::Basename;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
33 use Text::ParseWords;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
34 use Benchmark;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
35 use FileUtil;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
36 use TextUtil;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
37 use HTMLUtil;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
38
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
39 my($ScriptName, %Options, $StartTime, $EndTime, $TotalTime);
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
40
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
41 # Autoflush STDOUT
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
42 $| = 1;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
43
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
44 # Starting message...
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
45 $ScriptName = basename($0);
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
46 print "\n$ScriptName: Starting...\n\n";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
47 $StartTime = new Benchmark;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
48
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
49 # Get the options and setup script...
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
50 SetupScriptUsage();
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
51 if ($Options{help} || @ARGV < 1) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
52 die GetUsageFromPod("$FindBin::Bin/$ScriptName");
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
53 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
54
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
55 my(@TextFilesList);
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
56 @TextFilesList = ExpandFileNames(\@ARGV, "csv tsv");
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
57
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
58 print "Processing options...\n";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
59 my(%OptionsInfo);
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
60 ProcessOptions();
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
61
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
62 print "Checking input text file(s)...\n";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
63 my(%TextFilesInfo);
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
64 RetrieveTextFilesInfo();
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
65 SetupCoulmnsTablesAndMiscInfo();
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
66
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
67 # Generate output files...
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
68 my($FileIndex);
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
69 if (@TextFilesList > 1) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
70 print "\nProcessing text files...\n";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
71 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
72 for $FileIndex (0 .. $#TextFilesList) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
73 if ($TextFilesInfo{FileOkay}[$FileIndex]) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
74 print "\nProcessing file $TextFilesList[$FileIndex]...\n";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
75 GenerateHTMLTable($FileIndex);
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
76 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
77 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
78 print "\n$ScriptName:Done...\n\n";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
79
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
80 $EndTime = new Benchmark;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
81 $TotalTime = timediff ($EndTime, $StartTime);
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
82 print "Total time: ", timestr($TotalTime), "\n";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
83
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
84 ###############################################################################
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
85
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
86 # Generate HTML table(s)...
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
87 sub GenerateHTMLTable {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
88 my($Index) = @_;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
89
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
90 if ($TextFilesInfo{MultipleHTMLTables}[$Index]) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
91 GenerateMultipleHTMLTable($Index);
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
92 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
93 else {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
94 GenerateOneHTMLTable($Index);
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
95 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
96 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
97
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
98 # Generate one table...
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
99 sub GenerateOneHTMLTable {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
100 my($Index) = @_;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
101 my($TextFile, $TopHTMLDir, $HTMLFile, $Line, $StartRowNum, $EndRowNum, $CSSFile, $CSSFilePath, $CSSRef);
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
102
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
103 $HTMLFile = $TextFilesInfo{HTMLRoot}[$Index] . ".html";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
104 $TextFile = $TextFilesList[$Index];
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
105
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
106 # Setup data directories...
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
107 ($TopHTMLDir) = SetupDataDirs($Index);
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
108
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
109 # Setup stylesheet file...
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
110 $CSSRef = "";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
111 if ($Options{stylesheet} =~ /^new$/i) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
112 $CSSFile = $TextFilesInfo{HTMLRoot}[$Index] . ".css"; $CSSRef = ".\/" . "$CSSFile";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
113 $CSSFilePath = "$TopHTMLDir" . "\/" . $CSSFile;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
114 GenerateStyleSheetFile($CSSFilePath);
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
115 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
116 elsif ($Options{stylesheet} =~ /^old$/i) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
117 $CSSRef = $Options{stylesheetname};
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
118 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
119 # Set HTML file location...
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
120 $HTMLFile = "$TopHTMLDir" . "\/" . $HTMLFile;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
121
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
122 print "Generating HTML file $HTMLFile...\n";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
123 open HTMLFILE, ">$HTMLFile" or die "Error: Can't open $HTMLFile: $! \n";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
124 open TEXTFILE, "$TextFile" or die "Error: Can't open $TextFile: $! \n";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
125
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
126 # Write out HTML page header...
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
127 print HTMLFILE SetupHTMLPageHeader($TextFilesInfo{HTMLTitle}[$Index], $CSSRef);
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
128 if ($OptionsInfo{TitleDisplay}) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
129 print HTMLFILE SetupHTMLPageTitle($TextFilesInfo{HTMLTitle}[$Index]);
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
130 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
131 else {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
132 print HTMLFILE SetupHTMLEmptyLines(1);
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
133 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
134
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
135 # Start the table...
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
136 print HTMLFILE SetupHTMLAlignmentBegin("center");
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
137 print HTMLFILE SetupHTMLTableHeader($OptionsInfo{TableBorder}, $OptionsInfo{TableCellPadding}, $OptionsInfo{TableCellSpacing});
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
138
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
139 WriteColLabels($Index, \*TEXTFILE, \*HTMLFILE);
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
140
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
141 # Skip the labels and write out all the other rows...
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
142 $Line = <TEXTFILE>;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
143 $StartRowNum = 1;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
144 $EndRowNum = $TextFilesInfo{LineCount}[$Index];
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
145 WriteRowValues($Index, $StartRowNum, $EndRowNum, \*TEXTFILE, \*HTMLFILE);
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
146
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
147 # Finish up the table...
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
148 print HTMLFILE SetupHTMLTableEnd();
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
149 print HTMLFILE SetupHTMLAlignmentEnd("center");
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
150
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
151 # Write out HTML page end...
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
152 print HTMLFILE SetupHTMLPageEnd($OptionsInfo{Footer});
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
153
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
154 close HTMLFILE;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
155 close TEXTFILE;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
156 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
157
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
158 # Generate multiple tables...
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
159 sub GenerateMultipleHTMLTable {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
160 my($Index) = @_;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
161 my($TopHTMLDir, $SubHTMLDir, $TextFile, $HTMLFile, $TableNum, $TableCount, $TableIndex, $TableStartLineNum, $TableEndLineNum, $Line, $InSubHTMLDir, $PrintMsg, $CSSFile, $CSSFilePath, $CSSRef, $NewStyleSheet);
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
162
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
163 # Open text file and skip over label line...
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
164 $TextFile = $TextFilesList[$Index];
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
165 open TEXTFILE, "$TextFile" or die "Error: Can't open $TextFile: $! \n";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
166 $Line = <TEXTFILE>;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
167
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
168 # Set up data directories to hold various html files...
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
169 ($TopHTMLDir, $SubHTMLDir) = SetupDataDirs($Index);
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
170
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
171 # Create stylesheet file...
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
172 $CSSRef = "";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
173 $NewStyleSheet = 0;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
174 if ($Options{stylesheet} =~ /^new$/i) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
175 $NewStyleSheet = 1;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
176 $CSSFile = $TextFilesInfo{HTMLRoot}[$Index] . ".css";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
177 $CSSFilePath = "$TopHTMLDir" . "\/" . $CSSFile;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
178 GenerateStyleSheetFile($CSSFilePath);
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
179 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
180 elsif ($Options{stylesheet} =~ /^old$/i) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
181 $CSSRef = $Options{stylesheetname};
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
182 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
183
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
184 $PrintMsg = 1;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
185 # Generate HTML files for all the tables...
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
186 $TableCount = $TextFilesInfo{TableCount}[$Index];
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
187 for $TableNum (1 .. $TableCount) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
188 $TableIndex = $TableNum - 1;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
189 $HTMLFile = ${$TextFilesInfo{TableHTMLFiles}[$Index]}[$TableIndex];
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
190 $TableStartLineNum = ${$TextFilesInfo{TableStartLineNum}[$Index]}[$TableIndex];
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
191 $TableEndLineNum = ${$TextFilesInfo{TableEndLineNum}[$Index]}[$TableIndex];
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
192
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
193 # Setup file name...
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
194 if ($TableNum == 1) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
195 $HTMLFile = "$TopHTMLDir" . "\/" . $HTMLFile;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
196 print "Generating HTML file $HTMLFile...\n";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
197 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
198 else {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
199 $HTMLFile = "$SubHTMLDir" . "\/" . $HTMLFile;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
200 if ($PrintMsg) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
201 $PrintMsg = 0;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
202 if ($TableCount == 2) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
203 print "Generating HTML file $HTMLFile...\n";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
204 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
205 else {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
206 print "Generating ", ($TableCount - 1), " other HTML files: $SubHTMLDir\/$TextFilesInfo{HTMLRoot}[$Index]\*.html...\n";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
207 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
208 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
209 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
210 # Setup stylesheet reference...
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
211 if ($NewStyleSheet) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
212 $CSSRef = ($TableNum == 1) ? ".\/" : "..\/";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
213 $CSSRef .= $CSSFile;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
214 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
215
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
216 open HTMLFILE, ">$HTMLFile" or die "Error: Can't open $HTMLFile: $! \n";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
217 # Write out HTML page header...
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
218 print HTMLFILE SetupHTMLPageHeader($TextFilesInfo{HTMLTitle}[$Index], $CSSRef);
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
219
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
220 # Set up the navigation links for this table...
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
221 if ($OptionsInfo{NavLinksAtTop}) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
222 WriteNavigationLinks($Index, $TableNum, \*HTMLFILE);
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
223 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
224 # Setup page title...
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
225 if ($OptionsInfo{TitleDisplay}) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
226 print HTMLFILE SetupHTMLPageTitle($TextFilesInfo{HTMLTitle}[$Index]);
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
227 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
228 else {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
229 print HTMLFILE SetupHTMLEmptyLines(1);
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
230 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
231
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
232 # Start the table...
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
233 print HTMLFILE SetupHTMLAlignmentBegin("center");
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
234 print HTMLFILE SetupHTMLTableHeader($OptionsInfo{TableBorder}, $OptionsInfo{TableCellPadding}, $OptionsInfo{TableCellSpacing});
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
235
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
236 WriteColLabels($Index, \*TEXTFILE, \*HTMLFILE);
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
237
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
238 # Write out appropriate row data for this table...
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
239 WriteRowValues($Index, $TableStartLineNum, $TableEndLineNum, \*TEXTFILE, \*HTMLFILE);
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
240
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
241 # Finish up the table...
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
242 print HTMLFILE SetupHTMLTableEnd();
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
243 print HTMLFILE SetupHTMLAlignmentEnd("center");
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
244
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
245 # Set up the navigation links for this table...
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
246 if ($OptionsInfo{NavLinksAtBottom}) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
247 print HTMLFILE SetupHTMLEmptyLines(1);
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
248 WriteNavigationLinks($Index, $TableNum, \*HTMLFILE);
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
249 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
250
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
251 # Write out HTML page end...
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
252 print HTMLFILE SetupHTMLPageEnd($OptionsInfo{Footer});
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
253 close HTMLFILE;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
254 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
255 close TEXTFILE;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
256
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
257 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
258
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
259 # Create stylesheet file...
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
260 sub GenerateStyleSheetFile {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
261 my($CSSFile) = @_;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
262 print "Generating stylesheet file $CSSFile...\n";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
263 open CSSFILE, ">$CSSFile" or die "Error: Can't open $CSSFile: $! \n";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
264 print CSSFILE SetupHTMLStyleSheetTags();
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
265 close CSSFILE;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
266 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
267
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
268 # Write out table header using column labels...
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
269 sub WriteColLabels {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
270 my($Index, $TextFileRef, $HTMLFileRef) = @_;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
271 my(@ColLabels, $Label);
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
272
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
273 print $HTMLFileRef $TextFilesInfo{TableRowHeaderTags};
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
274
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
275 @ColLabels = @{$TextFilesInfo{ColLabels}[$Index]};
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
276 for $Label (@ColLabels) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
277 print $HTMLFileRef SetupHTMLTableRowHeaderValue($Label);
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
278 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
279 print $HTMLFileRef $TextFilesInfo{RowEndTags};
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
280 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
281
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
282 #Write out the rows value...
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
283 sub WriteRowValues {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
284 my($Index, $StartRowNum, $EndRowNum, $TextFileRef, $HTMLFileRef) = @_;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
285 my($ColNum, $BackgroundColor, $FontColor, $LineCount, $Line, @RowValues, $Value, $InDelim, $LastColNum);
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
286
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
287 $InDelim = $TextFilesInfo{InDelim}[$Index];
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
288 $LastColNum = @{$TextFilesInfo{ColLabels}[$Index]} - 1;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
289
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
290 for $LineCount ($StartRowNum .. $EndRowNum) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
291 $Line = GetTextLine($TextFileRef);
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
292
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
293 if ($OptionsInfo{ShadeRowsStatus}) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
294 print $HTMLFileRef ($LineCount % 2) ? $TextFilesInfo{BgFilledOddRowHeaderTags} : $TextFilesInfo{BgFilledEvenRowHeaderTags};
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
295 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
296 else {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
297 print $HTMLFileRef $TextFilesInfo{RowHeaderTags};
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
298 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
299 @RowValues = quotewords($InDelim, 0, $Line);
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
300 for $ColNum (0 .. $LastColNum) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
301 $Value = ($ColNum <= $#RowValues) ? $RowValues[$ColNum] : "";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
302 $BackgroundColor = ""; $FontColor = "";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
303 if ($OptionsInfo{HighlightStatus}) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
304 if (exists($TextFilesInfo{HightlightColNumMap}[$Index]{$ColNum})) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
305 ($BackgroundColor, $FontColor) = GetValueHighlightColors($Index, $ColNum, $Value);
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
306 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
307 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
308 print $HTMLFileRef SetupHTMLTableRowDataValue($Value, $BackgroundColor, $FontColor);
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
309 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
310 print $HTMLFileRef $TextFilesInfo{RowEndTags};
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
311 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
312 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
313
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
314 # Setup navigation link information for each table.
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
315 #
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
316 # All table sets besides first and last have these links: FirstTable, Previous, Current-1,Current,Current+1, Next, and LastTable
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
317 # First set: Current, Next, and LastTable
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
318 # Last set: FirstTable, Previous and Current.
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
319 #
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
320 sub WriteNavigationLinks {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
321 my($Index, $CurTableNum, $HTMLFileRef) = @_;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
322 my($TableNum, $StartTableNum, $EndTableNum, $TableIndex, $BorderWidth, $CellPadding, $CellSpacing,$HTMLFile, $HTMLRefFile, $RelativeFileDir, $HTMLRefValue, $FirstTableNum, $FirstTableIndex, $LastTableNum, $LastTableIndex, $TableStartLineNum, $TableEndLineNum, $LastLineNum, $BGColor, $LinksOffSet);
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
323
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
324 $LinksOffSet = 10;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
325
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
326 $FirstTableNum = 1; $FirstTableIndex = $FirstTableNum - 1;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
327 $LastTableNum = $TextFilesInfo{TableCount}[$Index]; $LastTableIndex = $LastTableNum - 1;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
328 $LastLineNum = ${$TextFilesInfo{TableEndLineNum}[$Index]}[$LastTableIndex];
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
329
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
330 # Figure out which links to display for a particular table...
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
331 $StartTableNum = $CurTableNum - $LinksOffSet + 1;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
332 $StartTableNum = ($StartTableNum < $FirstTableNum) ? $FirstTableNum : $StartTableNum;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
333 if ($CurTableNum < $LinksOffSet) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
334 $EndTableNum = $LinksOffSet;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
335 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
336 else {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
337 $EndTableNum = $CurTableNum + $LinksOffSet - 1;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
338 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
339 $EndTableNum = ($EndTableNum > $LastTableNum) ? $LastTableNum : $EndTableNum;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
340
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
341 my($InactiveLinkNumColor, $InactiveLinkFontBold) = ("#8e2323", "1");
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
342 my($LinkTextColor, $LinkBGColor, $LinkFontBold) = ("", "", "1");
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
343
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
344 # Start link table...
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
345 $BorderWidth = 0; $CellPadding = 2; $CellSpacing = 2;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
346 print $HTMLFileRef SetupHTMLAlignmentBegin("center");
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
347 print $HTMLFileRef SetupHTMLDivBegin("tablenav");
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
348 print $HTMLFileRef SetupHTMLTableHeader($BorderWidth, $CellPadding, $CellSpacing);
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
349 print $HTMLFileRef $TextFilesInfo{RowHeaderTags};
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
350
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
351 if ($OptionsInfo{NavLinksTableInfo} && $OptionsInfo{NavLinksLineInfo}) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
352 print $HTMLFileRef SetupHTMLTableRowDataValue("Showing table $CurTableNum of $LastTableNum");
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
353 print $HTMLFileRef SetupHTMLTableRowDataValue("&nbsp");
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
354 print $HTMLFileRef SetupHTMLTableRowDataValue("&nbsp");
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
355 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
356
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
357 print $HTMLFileRef SetupHTMLTableRowDataValue("Tables: ");
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
358 # Setup a link to first table...
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
359 if ($StartTableNum != $FirstTableNum) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
360 $HTMLFile = ${$TextFilesInfo{TableHTMLFiles}[$Index]}[$FirstTableIndex];
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
361 $HTMLRefFile = GetRelativeFileDir($CurTableNum, $FirstTableNum, $FirstTableNum) . $HTMLFile;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
362 $TableStartLineNum = ${$TextFilesInfo{TableStartLineNum}[$Index]}[$FirstTableIndex];
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
363 $TableEndLineNum = ${$TextFilesInfo{TableEndLineNum}[$Index]}[$FirstTableIndex];
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
364 $HTMLRefValue = SetupHTMLHRef("First", $HTMLRefFile, "First Table Containing Lines $TableStartLineNum To $TableEndLineNum");
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
365 print $HTMLFileRef SetupHTMLTableRowDataValue($HTMLRefValue, $LinkBGColor, $LinkTextColor, $LinkFontBold);
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
366 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
367
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
368 # Setup link to previous table...
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
369 if ($CurTableNum != $FirstTableNum) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
370 my($PreviousTableNum, $PreviousTableIndex);
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
371 $PreviousTableNum = $CurTableNum - 1; $PreviousTableIndex = $PreviousTableNum - 1;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
372 $HTMLFile = ${$TextFilesInfo{TableHTMLFiles}[$Index]}[$PreviousTableIndex];
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
373 $HTMLRefFile = GetRelativeFileDir($CurTableNum, $PreviousTableNum, $FirstTableNum) . $HTMLFile;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
374 $TableStartLineNum = ${$TextFilesInfo{TableStartLineNum}[$Index]}[$PreviousTableIndex];
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
375 $TableEndLineNum = ${$TextFilesInfo{TableEndLineNum}[$Index]}[$PreviousTableIndex];
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
376 $HTMLRefValue = SetupHTMLHRef("Previous", $HTMLRefFile, "Previous Table Containing Lines $TableStartLineNum To $TableEndLineNum");
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
377 print $HTMLFileRef SetupHTMLTableRowDataValue($HTMLRefValue, $LinkBGColor, $LinkTextColor, $LinkFontBold);
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
378 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
379
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
380 for $TableNum ($StartTableNum .. $EndTableNum) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
381 $TableIndex = $TableNum - 1;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
382 $HTMLFile = ${$TextFilesInfo{TableHTMLFiles}[$Index]}[$TableIndex];
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
383 if ($TableNum == $CurTableNum) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
384 print $HTMLFileRef SetupHTMLTableRowDataValue($TableNum, $LinkBGColor, $InactiveLinkNumColor, $InactiveLinkFontBold);
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
385 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
386 else {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
387 # Setup the link...
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
388 my($RefTitle);
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
389 $TableStartLineNum = ${$TextFilesInfo{TableStartLineNum}[$Index]}[$TableIndex];
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
390 $TableEndLineNum = ${$TextFilesInfo{TableEndLineNum}[$Index]}[$TableIndex];
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
391 $RefTitle = AddNumberSuffix($TableNum) . " Table Containing Lines $TableStartLineNum To $TableEndLineNum";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
392 $HTMLRefFile = GetRelativeFileDir($CurTableNum, $TableNum, $FirstTableNum) . $HTMLFile;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
393 $HTMLRefValue = SetupHTMLHRef($TableNum, $HTMLRefFile, $RefTitle);
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
394 print $HTMLFileRef SetupHTMLTableRowDataValue($HTMLRefValue);
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
395 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
396 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
397
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
398 # Setup link to next table...
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
399 if ($CurTableNum != $LastTableNum) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
400 my($NextTableNum, $NextTableIndex);
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
401 $NextTableNum = $CurTableNum + 1; $NextTableIndex = $NextTableNum - 1;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
402 $HTMLFile = ${$TextFilesInfo{TableHTMLFiles}[$Index]}[$NextTableIndex];
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
403 $HTMLRefFile = GetRelativeFileDir($CurTableNum, $NextTableNum, $FirstTableNum) . $HTMLFile;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
404 $TableStartLineNum = ${$TextFilesInfo{TableStartLineNum}[$Index]}[$NextTableIndex];
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
405 $TableEndLineNum = ${$TextFilesInfo{TableEndLineNum}[$Index]}[$NextTableIndex];
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
406 $HTMLRefValue = SetupHTMLHRef("Next", $HTMLRefFile, "Next Table Containing Lines $TableStartLineNum To $TableEndLineNum");
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
407 print $HTMLFileRef SetupHTMLTableRowDataValue($HTMLRefValue, $LinkBGColor, $LinkTextColor, $LinkFontBold);
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
408 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
409
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
410 # Setup link to last table...
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
411 if ($EndTableNum != $LastTableNum) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
412 $HTMLFile = ${$TextFilesInfo{TableHTMLFiles}[$Index]}[$LastTableIndex];
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
413 $HTMLRefFile = GetRelativeFileDir($CurTableNum, $LastTableNum, $FirstTableNum) . $HTMLFile;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
414 $TableStartLineNum = ${$TextFilesInfo{TableStartLineNum}[$Index]}[$LastTableIndex];
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
415 $TableEndLineNum = ${$TextFilesInfo{TableEndLineNum}[$Index]}[$LastTableIndex];
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
416 $HTMLRefValue = SetupHTMLHRef("Last", $HTMLRefFile, "Last Table Containing Lines $TableStartLineNum To $TableEndLineNum");
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
417 print $HTMLFileRef SetupHTMLTableRowDataValue($HTMLRefValue, $LinkBGColor, $LinkTextColor, $LinkFontBold);
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
418 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
419 # Setup current table info text....
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
420 print $HTMLFileRef SetupHTMLTableRowDataValue("&nbsp");
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
421 print $HTMLFileRef SetupHTMLTableRowDataValue("&nbsp");
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
422 $TableStartLineNum = ${$TextFilesInfo{TableStartLineNum}[$Index]}[$CurTableNum - 1];
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
423 $TableEndLineNum = ${$TextFilesInfo{TableEndLineNum}[$Index]}[$CurTableNum - 1];
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
424 if ($OptionsInfo{NavLinksLineInfo}) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
425 print $HTMLFileRef SetupHTMLTableRowDataValue("Showing lines $TableStartLineNum to $TableEndLineNum of $LastLineNum");
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
426 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
427 else {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
428 print $HTMLFileRef SetupHTMLTableRowDataValue("Showing table $CurTableNum of $LastTableNum");
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
429 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
430
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
431 print $HTMLFileRef $TextFilesInfo{RowEndTags};
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
432 # End link table...
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
433 print $HTMLFileRef SetupHTMLTableEnd();
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
434 print $HTMLFileRef SetupHTMLDivEnd();
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
435 print $HTMLFileRef SetupHTMLAlignmentEnd("center");
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
436 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
437
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
438 # Generate relative directory path...
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
439 sub GetRelativeFileDir {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
440 my($FromTableNum, $ToTableNum, $FirstTableNum) = @_;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
441 my($RelativeFileDir) = "";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
442
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
443 if ($FromTableNum == $FirstTableNum) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
444 $RelativeFileDir = ($ToTableNum == $FirstTableNum) ? ".\/" : ".\/html\/";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
445 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
446 else {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
447 $RelativeFileDir = ($ToTableNum == $FirstTableNum) ? "..\/" : ".\/";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
448 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
449 return $RelativeFileDir;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
450 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
451
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
452 # Based on hightlight stype, return appropriate colors for background or text...
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
453 sub GetValueHighlightColors {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
454 my($FileIndex, $ColNum, $Value) = @_;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
455 my($DataType, $Criterion, $CriterionValue, $BgColor, $FontColor, $ValueOk, $Nothing);
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
456
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
457 $BgColor = ""; $FontColor = "";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
458 $DataType = ${$TextFilesInfo{HightlightDataMap}[$FileIndex]{$ColNum}}[0];
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
459 $Criterion = ${$TextFilesInfo{HightlightDataMap}[$FileIndex]{$ColNum}}[1];
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
460 $CriterionValue = ${$TextFilesInfo{HightlightDataMap}[$FileIndex]{$ColNum}}[2];
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
461
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
462 $ValueOk = 0;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
463 if ($DataType =~ /^numeric$/i) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
464 NUMSWITCH: {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
465 if ($Criterion =~ /^ge$/i) { $ValueOk = ($Value >= $CriterionValue) ? 1 : 0; last NUMSWITCH; }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
466 if ($Criterion =~ /^le$/i) { $ValueOk = ($Value <= $CriterionValue) ? 1 : 0; last NUMSWITCH; }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
467 if ($Criterion =~ /^eq$/i) { $ValueOk = ($Value == $CriterionValue) ? 1 : 0; last NUMSWITCH; }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
468 $Nothing = 1;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
469 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
470 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
471 else {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
472 TEXTSWITCH: {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
473 if ($Criterion =~ /^ge$/i) { $ValueOk = ($Value ge $CriterionValue) ? 1 : 0; last TEXTSWITCH; }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
474 if ($Criterion =~ /^le$/i) { $ValueOk = ($Value le $CriterionValue) ? 1 : 0; last TEXTSWITCH; }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
475 if ($Criterion =~ /^eq$/i) { $ValueOk = ($Value eq $CriterionValue) ? 1 : 0; last TEXTSWITCH; }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
476 $Nothing = 1;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
477 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
478 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
479 $BgColor = $ValueOk ? $OptionsInfo{ValueOkColor} : $OptionsInfo{ValueNotOkColor};
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
480 if ($Options{highlightstyle} =~ /^text$/i) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
481 $BgColor = "";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
482 $FontColor = $ValueOk ? $OptionsInfo{ValueOkColor} : $OptionsInfo{ValueNotOkColor};
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
483 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
484 return ($BgColor, $FontColor);
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
485 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
486
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
487 # Setup columns, tables and other information...
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
488 sub SetupCoulmnsTablesAndMiscInfo {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
489 SetupColumnsToHighlightInfo();
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
490 SetupMultipleTablesInfo();
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
491 SetupHTMLTagsInfo();
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
492 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
493
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
494 # Setup columns to highlight information...
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
495 sub SetupColumnsToHighlightInfo {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
496 my($ColID, $DataType, $Criterion, $Value, $Index, $ColNum, $ColLabel, $ColIndex);
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
497
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
498 @{$TextFilesInfo{HightlightColNumMap}} = ();
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
499 @{$TextFilesInfo{HightlightDataMap}} = ();
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
500
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
501 for $Index (0 .. $#TextFilesList) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
502 %{$TextFilesInfo{HightlightColNumMap}[$Index]} = ();
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
503 %{$TextFilesInfo{HightlightDataMap}[$Index]} = ();
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
504 if ($TextFilesInfo{FileOkay}[$Index]) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
505 SPECIFIEDCOLS: for $ColIndex (0 .. $#{$OptionsInfo{SpecifiedColIds}}) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
506 $ColID = $OptionsInfo{SpecifiedColIds}[$ColIndex];
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
507 $DataType = $OptionsInfo{SpecifiedColDataTypes}[$ColIndex];
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
508 $Criterion = $OptionsInfo{SpecifiedColCriteria}[$ColIndex];
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
509 $Value = $OptionsInfo{SpecifiedColValues}[$ColIndex];
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
510 if (!$OptionsInfo{HighlightStatus}) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
511 next SPECIFIEDCOLS;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
512 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
513 if ($Options{highlightby} =~ /^colnum$/i) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
514 $ColNum = $ColID;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
515 if ($ColNum > 0 && $ColNum <= $TextFilesInfo{ColCount}[$Index]) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
516 $ColNum -= 1;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
517 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
518 else {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
519 warn "Warning: Ignoring column number, $ColID, specifed in quartet, \"$ColID,$DataType,$Criterion,$Value\", using \"--highlight\" option for $TextFilesList[$Index]: it doesn't exists \n";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
520 next SPECIFIEDCOLS;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
521 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
522 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
523 else {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
524 $ColLabel = $ColID;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
525 if (exists($TextFilesInfo{ColLabelToNumMap}[$Index]{$ColLabel})) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
526 $ColNum = $TextFilesInfo{ColLabelToNumMap}[$Index]{$ColLabel};
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
527 } else {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
528 warn "Warning: Ignoring column label, $ColID, specifed in quartet, \"$ColID,$DataType,$Criterion,$Value\", using \"--highlight\" option for $TextFilesList[$Index]: it doesn't exists \n";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
529 next SPECIFIEDCOLS;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
530 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
531 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
532 $TextFilesInfo{HightlightColNumMap}[$Index]{$ColNum} = $ColNum;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
533 @{$TextFilesInfo{HightlightDataMap}[$Index]{$ColNum}} =();
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
534 push @{$TextFilesInfo{HightlightDataMap}[$Index]{$ColNum}}, ($DataType, $Criterion, $Value);
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
535 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
536 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
537 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
538 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
539
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
540 # Setup navigation link information for multiple tables...
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
541 sub SetupMultipleTablesInfo {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
542 my($Index, $LinesPerTable);
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
543
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
544 $LinesPerTable = $Options{numrows};
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
545 @{$TextFilesInfo{TableCount}} = ();
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
546 @{$TextFilesInfo{TableHTMLFiles}} = ();
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
547 @{$TextFilesInfo{TableStartLineNum}} = ();
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
548 @{$TextFilesInfo{TableEndLineNum}} = ();
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
549
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
550 for $Index (0 .. $#TextFilesList) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
551 $TextFilesInfo{TableCount}[$Index] = 1;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
552 @{$TextFilesInfo{TableHTMLFiles}[$Index]} = ();
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
553 @{$TextFilesInfo{TableStartLineNum}[$Index]} = ();
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
554 @{$TextFilesInfo{TableEndLineNum}[$Index]} = ();
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
555
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
556 if ($TextFilesInfo{FileOkay}[$Index]) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
557 if ($TextFilesInfo{MultipleHTMLTables}[$Index]) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
558 my($TableIndex, $TotalLines, $TableCount, $TableStartLineNum, $TableEndLineNum, $Name);
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
559
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
560 $TotalLines = $TextFilesInfo{LineCount}[$Index];
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
561 $TableCount = ($TotalLines % $LinesPerTable) ? (int($TotalLines/$LinesPerTable) + 1) : ($TotalLines/$LinesPerTable);
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
562 $TextFilesInfo{TableCount}[$Index] = $TableCount;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
563 for $TableIndex (1 .. $TableCount) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
564 $TableStartLineNum = ($TableIndex - 1) * $LinesPerTable + 1;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
565 $TableEndLineNum = ($TableIndex == $TableCount) ? $TotalLines : ($TableIndex * $LinesPerTable);
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
566 push @{$TextFilesInfo{TableStartLineNum}[$Index]}, $TableStartLineNum;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
567 push @{$TextFilesInfo{TableEndLineNum}[$Index]}, $TableEndLineNum;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
568
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
569 # Setup HTML file names for all the tables...
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
570 $Name = "Lines" . "$TableStartLineNum" . "To" . "$TableEndLineNum";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
571 if ($TableIndex == 1) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
572 $Name = "";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
573 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
574 $Name = $TextFilesInfo{HTMLRoot}[$Index] . $Name . ".html";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
575 push @{$TextFilesInfo{TableHTMLFiles}[$Index]}, $Name;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
576 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
577 #print "$TextFilesList[$Index]: $TableCount - @{$TextFilesInfo{TableStartLineNum}[$Index]} - @{$TextFilesInfo{TableEndLineNum}[$Index]} - @{$TextFilesInfo{TableHTMLFiles}[$Index]}\n";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
578 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
579 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
580 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
581 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
582
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
583 # Setup HTML tags information...
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
584 sub SetupHTMLTagsInfo {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
585 # Setup row tags...
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
586 $TextFilesInfo{RowHeaderTags} = "";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
587 $TextFilesInfo{RowEndTags} = "";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
588 $TextFilesInfo{BgFilledOddRowHeaderTags} = "";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
589 $TextFilesInfo{BgFilledEvenRowHeaderTags} = "";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
590 $TextFilesInfo{TableRowHeaderTags} = "";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
591
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
592 $TextFilesInfo{RowHeaderTags} = SetupHTMLTableRowHeader($OptionsInfo{RowHAlignment}, "", $OptionsInfo{RowVAlignment});
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
593 $TextFilesInfo{RowEndTags} = SetupHTMLTableRowEnd();
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
594
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
595 if ($OptionsInfo{ShadeRowsStatus}) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
596 $TextFilesInfo{BgFilledOddRowHeaderTags} = SetupHTMLTableRowHeader($OptionsInfo{RowHAlignment}, $OptionsInfo{OddRowsShadeColor}, $OptionsInfo{RowVAlignment});
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
597 $TextFilesInfo{BgFilledEvenRowHeaderTags} = SetupHTMLTableRowHeader($OptionsInfo{RowHAlignment}, $OptionsInfo{EvenRowsShadeColor}, $OptionsInfo{RowVAlignment});
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
598 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
599
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
600 $TextFilesInfo{TableRowHeaderTags} = SetupHTMLTableRowHeader($OptionsInfo{TableHeaderRowHAlignment}, $OptionsInfo{TableHeaderRowColor}, $OptionsInfo{TableHeaderRowVAlignment});
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
601
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
602 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
603
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
604 #Make sure appropriate mode specific option values are specified...
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
605 sub ProcessOptions {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
606
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
607 %OptionsInfo = ();
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
608
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
609 $OptionsInfo{RowHAlignment} = "left"; $OptionsInfo{RowVAlignment} = "middle";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
610 if (exists($Options{align})) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
611 my (@AlignValues) = split ",", $Options{align};
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
612 if (@AlignValues == 2) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
613 $OptionsInfo{RowHAlignment} = $AlignValues[0];
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
614 $OptionsInfo{RowVAlignment} = $AlignValues[1];
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
615 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
616 elsif (@AlignValues == 1) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
617 $OptionsInfo{RowHAlignment} = $AlignValues[0];
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
618 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
619 else {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
620 die "Error: Invalid number of values, ", scalar(@AlignValues) , ", specified by \"-a --align\" option.\nIt must contain only one or two value.\n";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
621 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
622 if ($OptionsInfo{RowHAlignment} !~ /^(left|center|right)$/i) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
623 die "Error: The horizontal alignment value specified, $Options{align}, for option \"-a --align\" is not valid. Allowed values: left, center, or right\n";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
624 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
625 if ($OptionsInfo{RowVAlignment} !~ /^(top|middle|bottom)$/i) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
626 die "Error: The horizontal alignment value specified, $Options{align}, for option \"-a --align\" is not valid. Allowed values: top, middle, or bottom\n";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
627 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
628 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
629
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
630 $OptionsInfo{TableHeaderRowHAlignment} = "center"; $OptionsInfo{TableHeaderRowVAlignment} = "middle";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
631 if (exists($Options{headeralign})) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
632 my (@AlignValues) = split ",", $Options{headeralign};
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
633 if (@AlignValues == 2) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
634 $OptionsInfo{TableHeaderRowHAlignment} = $AlignValues[0];
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
635 $OptionsInfo{TableHeaderRowVAlignment} = $AlignValues[1];
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
636 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
637 elsif (@AlignValues == 1) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
638 $OptionsInfo{TableHeaderRowHAlignment} = $AlignValues[0];
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
639 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
640 else {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
641 die "Error: Invalid number of values, ", scalar(@AlignValues) , ", specified by \"--headeralign\" option.\nIt must contain only one or two value.\n";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
642 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
643 if ($OptionsInfo{TableHeaderRowHAlignment} !~ /^(left|center|right)$/i) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
644 die "Error: The horizontal alignment value specified, $Options{headeralign}, for option \"--headeralign\" is not valid. Allowed values: left, center, or right\n";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
645 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
646 if ($OptionsInfo{TableHeaderRowVAlignment} !~ /^(top|middle|bottom)$/i) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
647 die "Error: The horizontal alignment value specified, $Options{headeralign}, for option \"-a --headeralign\" is not valid. Allowed values: top, middle, or bottom\n";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
648 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
649 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
650
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
651 $OptionsInfo{TitleDisplay} = ($Options{titledisplay} =~ /^yes$/i) ? 1 : 0;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
652
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
653 if (exists($Options{border})) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
654 $OptionsInfo{TableBorder} = $Options{border};
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
655 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
656 else {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
657 $OptionsInfo{TableBorder} = ($Options{mode} =~ /^(plain|highlight)$/i) ? 1 : 0;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
658 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
659 $OptionsInfo{TableCellPadding} = $Options{cellpadding};
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
660 $OptionsInfo{TableCellSpacing} = $Options{cellspacing};
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
661 $OptionsInfo{Footer} = $Options{footer} ? $Options{footer} : "";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
662
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
663 if ($Options{headercolor}) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
664 $OptionsInfo{TableHeaderRowColor} = $Options{headercolor};
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
665 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
666 else {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
667 $OptionsInfo{TableHeaderRowColor} = ($Options{mode} =~ /^plain$/i) ? "" : "#ccccff";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
668 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
669
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
670 $OptionsInfo{NavLinksAtBottom} = 1; $OptionsInfo{NavLinksAtTop} = 0;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
671 if ($Options{displaylinks} =~ /^(both|top)$/i) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
672 $OptionsInfo{NavLinksAtTop} = 1;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
673 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
674 $OptionsInfo{NavLinksTableInfo} = 1; $OptionsInfo{NavLinksLineInfo} = 0;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
675 if ($Options{displaylinksinfo} =~ /^both$/i) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
676 $OptionsInfo{NavLinksLineInfo} = 1;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
677 $OptionsInfo{NavLinksTableInfo} = 1;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
678 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
679 elsif ($Options{displaylinksinfo} =~ /^line$/i) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
680 $OptionsInfo{NavLinksLineInfo} = 1;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
681 $OptionsInfo{NavLinksTableInfo} = 0;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
682 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
683
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
684 if ($Options{stylesheet} =~ /^old$/i ) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
685 if (!$Options{stylesheetname}) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
686 die "Error: No stylesheet name specified using \"--stylesheetname\" option: It is required for \"old\" value of \"-s --stylesheet\" option. \n";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
687 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
688 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
689
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
690 my(@ColorValues);
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
691 $OptionsInfo{OddRowsShadeColor} = ""; $OptionsInfo{EvenRowsShadeColor} = ""; $OptionsInfo{ShadeRowsStatus} = 0;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
692 if ($Options{mode} =~ /^(shade|shadedhighlight)$/i) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
693 $OptionsInfo{OddRowsShadeColor} = "#ffffff";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
694 $OptionsInfo{EvenRowsShadeColor} = "#e0e0eb";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
695 $OptionsInfo{ShadeRowsStatus} = 1;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
696 if ($Options{shadecolor}) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
697 # Make sure only two value are specified...
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
698 @ColorValues = split ",", $Options{shadecolor};
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
699 if (@ColorValues == 2) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
700 $OptionsInfo{OddRowsShadeColor} = $ColorValues[0];
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
701 $OptionsInfo{EvenRowsShadeColor} = $ColorValues[1];
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
702 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
703 else {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
704 die "Error: Invalid number of values, ", scalar(@ColorValues) , ", specified by \"--shadecolor\" option.\nIt must contain only two values.\n";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
705 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
706 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
707 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
708 $OptionsInfo{ValueOkColor} = ""; $OptionsInfo{ValueNotOkColor} = ""; $OptionsInfo{HighlightStatus} = 0;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
709 if ($Options{mode} =~ /^(highlight|shadedhighlight)$/i) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
710 my($HighlightMode, $HighlightBy);
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
711 $HighlightMode = $Options{mode}; $HighlightBy = $Options{highlightby};
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
712
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
713 $OptionsInfo{HighlightStatus} = 1;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
714 $OptionsInfo{ValueOkColor} = "#0fff0f";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
715 $OptionsInfo{ValueNotOkColor} = "#ff0f0f";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
716 if ($Options{highlightstyle} =~ /^text$/i) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
717 $OptionsInfo{ValueOkColor} = "#0fbb0f";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
718 $OptionsInfo{ValueNotOkColor} = "#ff0f0f";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
719 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
720 if ($Options{highlightcolor}) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
721 # Make sure two values are specified...
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
722 @ColorValues = split ",", $Options{highlightcolor};
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
723 if (@ColorValues == 2) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
724 $OptionsInfo{ValueOkColor} = $ColorValues[0];
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
725 $OptionsInfo{ValueNotOkColor} = $ColorValues[1];
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
726 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
727 else {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
728 die "Error: Invalid number of values, ", scalar(@ColorValues), ", specified by \"--highlightcolor\" option.\nIt must contain only two value for $HighlightMode value specified using \"-m --mode\" option.\n";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
729 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
730 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
731 if (!$Options{highlight}) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
732 die "Error: Specify columns to be highlighted using \"--hightlight\" option\n";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
733 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
734 # Retrieve quartet values from "hightlight" option...
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
735 my(@HighlightValueQuartets);
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
736
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
737 @HighlightValueQuartets = ();
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
738 @HighlightValueQuartets = split ",", $Options{highlight};
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
739 if ((@HighlightValueQuartets % 4)) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
740 die "Error: Quartets not found in values specified using \"--highlight\" option for $HighlightMode \"-m --mode\"\n";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
741 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
742 # Process quartets...
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
743 my($Index, $Col, $DataType, $Criterion, $Value);
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
744
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
745 @{$OptionsInfo{SpecifiedColIds}} = ();
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
746 @{$OptionsInfo{SpecifiedColDataTypes}} = ();
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
747 @{$OptionsInfo{SpecifiedColCriteria}} = ();
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
748 @{$OptionsInfo{SpecifiedColValues}} = ();
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
749 for ($Index = 0; $Index < @HighlightValueQuartets; $Index = $Index + 4) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
750 $Col = $HighlightValueQuartets[$Index];
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
751 $DataType = $HighlightValueQuartets[$Index + 1];
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
752 $Criterion = $HighlightValueQuartets[$Index + 2];
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
753 $Value = $HighlightValueQuartets[$Index + 3];
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
754 if ($Options{highlightby} =~ /^colnum$/i ) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
755 if (!IsPositiveInteger($Col)) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
756 die "Error: Invalid column id, $Col, specified in quartet, \"$Col,$DataType,$Criterion,$Value\", using \"--hightlight\" option: It must be an integer value > 0 for $HighlightMode \"-m --mode\" and $HighlightBy \"--highlightby\" option values.\n";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
757 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
758 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
759 if ($DataType !~ /^(numeric|text)$/i) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
760 die "Error: Invalid column data type, $DataType, specified in quartet, \"$Col,$DataType,$Criterion,$Value\", using \"--hightlight\" option: Valid values: numeric or text\n";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
761 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
762 if ($Criterion !~ /^(eq|le|ge)$/i) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
763 die "Error: Invalid criterion value, $Criterion, specified in quartet, \"$Col,$DataType,$Criterion,$Value\", using \"--hightlight\" option: Valid values: le, ge, or eq\n";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
764 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
765 if ($DataType =~ /^numeric$/i) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
766 if (!IsFloat($Value)) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
767 die "Error: Invalid criterion value, $Value, specified in quartet, \"$Col,$DataType,$Criterion,$Value\", using \"--hightlight\" option: numeric value required for numeric data type\n";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
768 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
769 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
770 push @{$OptionsInfo{SpecifiedColIds}}, $Col;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
771 push @{$OptionsInfo{SpecifiedColDataTypes}}, $DataType;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
772 push @{$OptionsInfo{SpecifiedColCriteria}}, $Criterion;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
773 push @{$OptionsInfo{SpecifiedColValues}}, $Value;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
774 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
775 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
776 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
777
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
778 # Retrieve information about input text files...
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
779 sub RetrieveTextFilesInfo {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
780 my($LineCount, $TextFile, $FileDir, $FileName, $HTMLFile, $CSSFile, $HTMLRoot, $HTMLTitle, $FileExt, $Index, $ColIndex, $ColNum, $ColLabel, $LinesCount, $InDelim, $Line, @LineWords, @ColLabels, $TopHTMLDir);
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
781
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
782 %TextFilesInfo = ();
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
783
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
784 @{$TextFilesInfo{FileOkay}} = ();
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
785 @{$TextFilesInfo{ColCount}} = ();
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
786 @{$TextFilesInfo{ColLabels}} = ();
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
787 @{$TextFilesInfo{ColLabelToNumMap}} = ();
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
788 @{$TextFilesInfo{LineCount}} = ();
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
789 @{$TextFilesInfo{InDelim}} = ();
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
790
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
791 @{$TextFilesInfo{HTMLRoot}} = ();
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
792 @{$TextFilesInfo{HTMLTitle}} = ();
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
793 @{$TextFilesInfo{MultipleHTMLTables}} = ();
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
794
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
795 @{$TextFilesInfo{TopHTMLDir}} = ();
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
796 @{$TextFilesInfo{SubHTMLDir}} = ();
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
797
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
798 FILELIST: for $Index (0 .. $#TextFilesList) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
799 $TextFile = $TextFilesList[$Index];
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
800
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
801 $TextFilesInfo{FileOkay}[$Index] = 0;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
802 $TextFilesInfo{ColCount}[$Index] = 0;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
803 $TextFilesInfo{LineCount}[$Index] = 0;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
804 $TextFilesInfo{InDelim}[$Index] = "";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
805 $TextFilesInfo{HTMLRoot}[$Index] = "";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
806 $TextFilesInfo{HTMLTitle}[$Index] = "";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
807 $TextFilesInfo{MultipleHTMLTables}[$Index] = 0;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
808
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
809 @{$TextFilesInfo{ColLabels}[$Index]} = ();
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
810 %{$TextFilesInfo{ColLabelToNumMap}[$Index]} = ();
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
811
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
812 if (!(-e $TextFile)) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
813 warn "Warning: Ignoring file $TextFile: It doesn't exist\n";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
814 next FILELIST;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
815 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
816 if (!CheckFileType($TextFile, "csv tsv")) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
817 warn "Warning: Ignoring file $TextFile: It's not a csv or tsv file\n";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
818 next FILELIST;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
819 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
820 ($FileDir, $FileName, $FileExt) = ParseFileName($TextFile);
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
821 if ($FileExt =~ /^tsv$/i) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
822 $InDelim = "\t";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
823 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
824 else {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
825 $InDelim = "\,";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
826 if ($Options{indelim} !~ /^(comma|semicolon)$/i) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
827 warn "Warning: Ignoring file $TextFile: The value specified, $Options{indelim}, for option \"--indelim\" is not valid for csv files\n";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
828 next FILELIST;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
829 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
830 if ($Options{indelim} =~ /^semicolon$/i) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
831 $InDelim = "\;";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
832 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
833 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
834
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
835 if (!open TEXTFILE, "$TextFile") {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
836 warn "Warning: Ignoring file $TextFile: Couldn't open it: $! \n";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
837 next FILELIST;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
838 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
839
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
840 $Line = GetTextLine(\*TEXTFILE);
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
841 @ColLabels = quotewords($InDelim, 0, $Line);
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
842 $LineCount = 0;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
843 while (<TEXTFILE>) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
844 $LineCount++;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
845 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
846 close TEXTFILE;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
847
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
848 $FileDir = ""; $FileName = ""; $FileExt = "";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
849 ($FileDir, $FileName, $FileExt) = ParseFileName($TextFile);
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
850 $HTMLRoot = $FileName;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
851 if ($Options{root} && (@TextFilesList == 1)) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
852 my ($RootFileDir, $RootFileName, $RootFileExt) = ParseFileName($Options{root});
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
853 if ($RootFileName && $RootFileExt) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
854 $HTMLRoot = $RootFileName;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
855 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
856 else {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
857 $HTMLRoot = $Options{root};
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
858 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
859 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
860 $HTMLTitle = $HTMLRoot;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
861 if ($Options{title} && (@TextFilesList == 1)) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
862 $HTMLTitle = $Options{title};
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
863 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
864 $HTMLFile = lc($HTMLRoot) . "-html";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
865 if (!$Options{overwrite}) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
866 if (-d $HTMLFile) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
867 warn "Warning: Ignoring file $TextFile: The directory $HTMLFile already exists\n";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
868 next FILELIST;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
869 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
870 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
871
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
872 $TextFilesInfo{FileOkay}[$Index] = 1;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
873 $TextFilesInfo{InDelim}[$Index] = $InDelim;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
874 $TextFilesInfo{HTMLRoot}[$Index] = "$HTMLRoot";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
875 $TextFilesInfo{HTMLTitle}[$Index] = "$HTMLTitle";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
876
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
877 $TextFilesInfo{ColCount}[$Index] = @ColLabels;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
878 push @{$TextFilesInfo{ColLabels}[$Index]}, @ColLabels;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
879 for $ColNum (0 .. $#ColLabels) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
880 $ColLabel = $ColLabels[$ColNum];
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
881 $TextFilesInfo{ColLabelToNumMap}[$Index]{$ColLabel} = $ColNum;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
882 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
883 $TextFilesInfo{LineCount}[$Index] = $LineCount;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
884
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
885 if ($Options{numrows} == 0 || $LineCount <= $Options{numrows}) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
886 $TextFilesInfo{MultipleHTMLTables}[$Index] = 0;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
887 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
888 else {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
889 $TextFilesInfo{MultipleHTMLTables}[$Index] = 1;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
890 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
891 # Setup HTML data directories paths...
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
892 $TopHTMLDir = lc($TextFilesInfo{HTMLRoot}[$Index]) . "-html";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
893 $TextFilesInfo{TopHTMLDir}[$Index] = "$TopHTMLDir";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
894 $TextFilesInfo{SubHTMLDir}[$Index] = "$TopHTMLDir\/html";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
895 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
896 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
897
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
898 # Setup various data directories to hold HTML and other related files...
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
899 sub SetupDataDirs {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
900 my($Index) = @_;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
901 my($TopHTMLDir, $SubHTMLDir, $CreateTopHTMLDir, $CreateSubHTMLDir);
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
902
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
903 $TopHTMLDir = $TextFilesInfo{TopHTMLDir}[$Index];
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
904 $SubHTMLDir = $TextFilesInfo{SubHTMLDir}[$Index];
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
905
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
906 # Clean up existing directories...
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
907 if (-d $TopHTMLDir) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
908 unlink "<$TopHTMLDir/*.html>";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
909 unlink "<$TopHTMLDir/*.css>";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
910 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
911 if (-d $SubHTMLDir) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
912 unlink "<$SubHTMLDir/*.html>";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
913 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
914 # What directories need to be created...
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
915 $CreateTopHTMLDir = (-d $TopHTMLDir) ? 0 : 1;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
916
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
917 $CreateSubHTMLDir = 0;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
918 if ($TextFilesInfo{MultipleHTMLTables}[$Index]) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
919 $CreateSubHTMLDir = (-d $SubHTMLDir) ? 0 : 1;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
920 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
921
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
922 # Create appropriate directories...
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
923 if ($CreateTopHTMLDir) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
924 mkdir $TopHTMLDir or die "Couldn't mkdir $TopHTMLDir: $! \n";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
925 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
926 if ($CreateSubHTMLDir) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
927 mkdir $SubHTMLDir or die "Error: Couldn't mkdir $SubHTMLDir: $! \n";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
928 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
929 else {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
930 unlink <$SubHTMLDir/*.html>;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
931 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
932 return ($TopHTMLDir, $SubHTMLDir);
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
933 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
934
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
935 # Setup script usage and retrieve command line arguments specified using various options...
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
936 sub SetupScriptUsage {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
937
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
938 # Retrieve all the options...
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
939 %Options = ();
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
940 $Options{indelim} = "comma";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
941 $Options{numrows} = 50;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
942
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
943 $Options{mode} = "shade";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
944 $Options{highlightby} = "colnum";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
945 $Options{highlightstyle} = "background";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
946
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
947 $Options{cellpadding} = 2;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
948 $Options{cellspacing} = 1;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
949
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
950 $Options{displaylinks} = "both";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
951 $Options{displaylinksinfo} = "both";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
952 $Options{stylesheet} = "new";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
953
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
954 $Options{titledisplay} = "yes";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
955
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
956 if (!GetOptions(\%Options, "align|a=s", "border|b=i", "cellpadding=i", "cellspacing=i", "color|c=s", "footer=s", "displaylinks|d=s", "displaylinksinfo=s", "help|h", "headeralign=s", "headercolor=s", "highlight=s", "highlightby=s", "highlightcolor=s", "highlightstyle=s", "indelim=s", "mode|m=s", "numrows|n=i", "overwrite|o", "root|r=s", "shadecolor=s", "stylesheet=s", "stylesheetname=s", "title|t=s", "titledisplay=s", "workingdir|w=s")) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
957 die "\nTo get a list of valid options and their values, use \"$ScriptName -h\" or\n\"perl -S $ScriptName -h\" command and try again...\n";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
958 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
959
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
960 if ($Options{workingdir}) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
961 if (! -d $Options{workingdir}) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
962 die "Error: The value specified, $Options{workingdir}, for option \"-w --workingdir\" is not a directory name.\n";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
963 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
964 chdir $Options{workingdir} or die "Error: Couldn't chdir $Options{workingdir}: $! \n";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
965 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
966 if ($Options{displaylinks} !~ /^(top|bottom|both)$/i) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
967 die "Error: The value specified, $Options{displaylinks}, for option \"-d --displaylinks\" is not valid. Allowed values: top, bottom, or both\n";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
968 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
969 if ($Options{displaylinksinfo} !~ /^(line|table|both)$/i) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
970 die "Error: The value specified, $Options{displaylinksinfo}, for option \"--displaylinksinfo\" is not valid. Allowed values: line, table, or both\n";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
971 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
972 if ($Options{indelim} !~ /^(comma|semicolon)$/i) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
973 die "Error: The value specified, $Options{indelim}, for option \"--indelim\" is not valid. Allowed values: comma or semicolon\n";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
974 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
975 if ($Options{highlightby} !~ /^(colnum|collabel)$/i) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
976 die "Error: The value specified, $Options{highlightby}, for option \"--highlightby\" is not valid. Allowed values: colnum or collabel\n";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
977 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
978 if ($Options{highlightstyle} !~ /^(background|text)$/i) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
979 die "Error: The value specified, $Options{highlightstyle}, for option \"--highlightstyle\" is not valid. Allowed values: background or text\n";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
980 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
981 if ($Options{mode} !~ /^(plain|shade|highlight|shadedhighlight)$/i) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
982 die "Error: The value specified, $Options{mode}, for option \"-m --mode\" is not valid. Allowed values: plain, shade, hightlight, or shadedhighlight\n";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
983 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
984 if ($Options{stylesheet} !~ /^(old|new|none)$/i) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
985 die "Error: The value specified, $Options{stylesheet}, for option \"-s --stylesheet\" is not valid. Allowed values: old, new, or none\n";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
986 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
987 if ($Options{numrows} < 0) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
988 die "Error: The value specified, $Options{numrows}, for option \"-n --numrows\" is not valid. Allowed values: >= 0 \n";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
989 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
990 if ($Options{titledisplay} !~ /^(yes|no)$/i) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
991 die "Error: The value specified, $Options{titledisplay}, for option \"--titledisplay\" is not valid. Allowed values: yes or no\n";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
992 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
993 if (exists($Options{border})) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
994 if ($Options{border} < 0) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
995 die "Error: The value specified, $Options{border}, for option \"--border\" is not valid. Allowed values: >= 0 \n";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
996 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
997 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
998 if ($Options{cellpadding} < 0) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
999 die "Error: The value specified, $Options{cellpadding}, for option \"--cellpadding\" is not valid. Allowed values: >= 0 \n";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1000 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1001 if ($Options{cellspacing} < 0) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1002 die "Error: The value specified, $Options{cellspacing}, for option \"--cellspacing\" is not valid. Allowed values: >= 0 \n";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1003 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1004 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1005
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1006 __END__
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1007
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1008 =head1 NAME
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1009
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1010 TextFilesToHTML.pl - Generate HTML table file(s) from TextFile(s)
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1011
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1012 =head1 SYNOPSIS
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1013
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1014 TextFilesToHTML.pl ... TextFile(s)...
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1015
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1016 TextFilesToHTML.pl [B<-a, --align> left | center | right,[top | middle | bottom]] [B<-b, --border> borderwidth] [B<--cellpadding> padding]
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1017 [B<--cellspacing> spacing] [B<--footer> string] [B<-d, --displaylinks> top | bottom | both]
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1018 [B<--displaylinksinfo> line | table | both] [B<-h, --help>]
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1019 [B<--headeralign> left | center | right,[top | middle | bottom]] [B<--headercolor> "#RRGGBB"]
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1020 [B<--highlight> "fieldlabel,datatype,criterion,value,[fieldlabel,datatype,criterion,value,]..."]
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1021 [B<--highlightby> colnum | collabel] [B<--highlightcolor> "#RRGGBB,#RRGGBB"]
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1022 [B<--highlightstyle> text | background] [B<--indelim> comma | semicolon] [B<-m, --mode> plain | shade | highlight | shadedhighlight]
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1023 [B<-n, --numrows> number] [B<-o, --overwrite>] [B<-r, --root> rootname]
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1024 [B<--stylesheet> old | new | none] [B<--stylesheetname> filename] [B< --shadecolor> "#RRGGBB,#RRGGBB"]
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1025 [B<-t, --title> string] [B<--titledisplay> yes | no] [B<-w, --workingdir> dirname] TextFile(s)...
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1026
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1027 =head1 DESCRIPTION
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1028
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1029 Generate HTML file(s) from I<TextFile(s)>. The HTML file(s) contain data tables and appropriate
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1030 navigational links to view other tables. These files can be generated for local viewing or
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1031 deployment on a web server. A variety of options are provided to control style and
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1032 appearence of tables.
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1033
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1034 Multiple I<TextFile(s)> names are separated by spaces. The valid file extensions are I<.csv> and
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1035 I<.tsv> for comma/semicolon and tab delimited text files respectively. All other file names
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1036 are ignored. All the text files in a current directory can be specified by I<*.csv>,
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1037 I<*.tsv>, or the current directory name. The B<--indelim> option determines the
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1038 format of I<TextFile(s)>. Any file which doesn't correspond to the format indicated
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1039 by B<--indelim> option is ignored.
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1040
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1041 =head1 OPTIONS
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1042
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1043 =over 4
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1044
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1045 =item B<-a, --align> I<left | center | right,[top | middle | bottom]>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1046
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1047 Horizontal and vertical alignment for table rows except for header row which is specified
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1048 using B<--headeralign> option. Possible horizontal alignment values: I<left, center, or right>.
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1049 Possible vertical alignment values: I<top, middle, or bottom>.
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1050
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1051 Default values: I<left,middle>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1052
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1053 =item B<-b, --border> I<borderwidth>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1054
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1055 Table border width. Default value: 1 for I<plain> and I<highlight> mode; 0 for I<shade>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1056 and I<shadedhightlight> mode. Zero indicates no border.
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1057
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1058 =item B<--cellpadding> I<padding>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1059
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1060 Table cell padding. Default value: I<2>.
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1061
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1062 =item B<--cellspacing> I<spacing>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1063
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1064 Table cell spacing. Default value: I<1>.
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1065
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1066 =item B<--footer> I<string>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1067
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1068 Text string to be included at bottom of each HTML file. Default: none.
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1069
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1070 =item B<-d, --displaylinks> I<top | bottom | both>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1071
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1072 Specify where to display navigation links in each HTML file for accessing all other HTML
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1073 files. Possible values: I<top, bottom, or both>. Default value: I<both>. This option is
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1074 only valid during multiple HTML files generation for an input file.
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1075
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1076 =item B<--displaylinksinfo> I<line | table | both>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1077
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1078 Control display of additional information along with navigational links: Showing line
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1079 n of m is displyed for line and showing table n of m for table. Possible values: I<line
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1080 | table | both>. Default: I<both>. This option is only valid during multiple HTML files generation.
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1081
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1082 =item B<-h, --help>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1083
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1084 Print this help message
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1085
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1086 =item B<--headeralign> I<left | center | right,[top | middle | bottom]>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1087
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1088 Horizontal and vertical alignment for table header rows. Possible horizontal alignment
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1089 values: I<left, center, or right>. Possible vertical alignment values: I<top, middle, or bottom>.
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1090
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1091 Default values: I<center,middle>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1092
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1093 =item B<--headercolor> I<"#RRGGBB">
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1094
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1095 Color used to fill background of table header row containing column labels
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1096 represented as a hexadecimal string. None for B<-m, --mode> option value
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1097 of I<plain> and I<#ccccff>, light blue, for others.
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1098
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1099 =item B<--highlight> I<"fieldlabel,datatype,criterion,value,[fieldlabel,datatype,criterion,value,]...">
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1100
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1101 This value is mode specific. It specifies how to highlight various column values
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1102 for each text file. Same set of quartets values are applied to all I<TextFile(s)>.
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1103
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1104 For I<highlightbycolnum> mode, input text format contains these quartets:
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1105 I<colnum,datatype,criterion,value,...>. Possible datatype values: I<numeric or text>.
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1106 Possible criterion values: I<le, ge, or eq>. Examples: "1,numeric,le,450>" or
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1107 "2,numeric,ge,150,6,numeric,le,10".
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1108
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1109 For I<highlightbycollabel> mode, input text format contains these quartets:
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1110 I<collabel,datatype,criterion,value,...>.
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1111
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1112 =item B<--highlightby> I<colnum | collabel>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1113
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1114 This value is mode specific. It indicates how columns to be highlighted are specified
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1115 using B<--hightlight> option. Possible values: I<colnum or collabel>. Default value: I<colnum>.
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1116
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1117 =item B<--highlightcolor> I<"#RRGGBB,#RRGGBB">
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1118
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1119 Colors used to highlight column values during I<highlight> and I<shadedhightlight>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1120 mode represented as hexadecimal strings.
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1121
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1122 For B<--highlighstyle> option values of I<text> and I<background>, these colors represent
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1123 text or background colors respectively. For a specific column, first color string is used for
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1124 values which meet criterion indicated by B<--highlight> option; the second color is used
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1125 for rest of the values.
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1126
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1127 Default values for I<background> B<--highlightstyle>: I<#0fff0f,#ff0f0f>. And default values for
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1128 I<text> B<--highlightstyle>: I<#0fbb0f,#ff0f0f>. Hexadecimal strings for both B<--highlightstyle>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1129 colors correspond to I<reddish> and I<greenish>.
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1130
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1131 =item B<--highlightstyle> I<text | background>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1132
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1133 This value is mode specific. It indicates highlight style used to differentiate column
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1134 values which pass a specified criterion from others. Possible values: I<text or
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1135 background>. Default: I<background>.
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1136
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1137 =item B<--indelim> I<comma | semicolon>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1138
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1139 Input delimiter for CSV I<TextFile(s)>. Possible values: I<comma or semicolon>.
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1140 Default value: I<comma>. For TSV files, this option is ignored and I<tab> is used as a
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1141 delimiter.
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1142
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1143 =item B<-m, --mode> I<plain | shade | highlight | shadedhighlight>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1144
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1145 Specify how to generate HTML table(s): plain tables with line borders, background of
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1146 alternate rows filled with a specified color, column values hightlighted using a specified
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1147 criteria, or combination of previous two styles.
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1148
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1149 Possible values: I<plain, shade, highlight, or shadedhighlight>. Default: I<shade>.
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1150
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1151 =item B<-n, --numrows> I<number>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1152
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1153 Maximum number of rows per table. Default value: I<100>. Use 0 to put all rows into
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1154 one table. For I<TextFile(s)> with more than maximum number of specified rows,
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1155 multiple HTML tables, with appropriate navigation links, are created.
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1156
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1157 =item B<-o, --overwrite>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1158
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1159 Overwrite existing files.
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1160
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1161 =item B<-r, --root> I<rootname>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1162
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1163 New file or directory name is generated using the root: <root>.html or <root>-html.
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1164 Default new file name: <InitialTextFileName>.html. Default directory name:
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1165 <InitialTextFileName>-html.
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1166
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1167 For I<TextFile(s)> with more than maximum number of rows specified per table,
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1168 this directory tree is generated using <Name> where <Name> corresponds to <root>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1169 or <InitialTextFileName>:Top dir - <Name>-html; Sub dirs - html and mols. <Top dir> contains
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1170 <Name>.html and <Name>.css files and <sub dir> html conatins various
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1171 <Name>Lines<Start>To<End>.html files; <sub dir> mols is created as needed and contains
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1172
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1173 This option is ignored for multiple input files.
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1174
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1175 =item B<--stylesheet> I<old | new | none>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1176
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1177 Controls usage of stylesheet for newly generated HTML file(s). Possible values: I<old,
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1178 new, or none>. Default value: I<new>.
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1179
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1180 Stylesheet file contains various properties which control apperance of HTML pages:
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1181 type, size, and color of fonts; background color; and so on.
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1182
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1183 For I<old> value, an existing stylesheet file specified by B<--stylesheetname> option is
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1184 used for each HTML file; no new stylesheet file is created. This option is quite handy
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1185 for deploying HTML file(s) on a web server: assuming you specify a valid stylesheet
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1186 file location relative to your WWWRoot, a reference to this stylesheet is added to each
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1187 HTML file. For local deployment of HTML file(s), a complete path to a local stylesheet
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1188 is fine as well.
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1189
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1190 For I<create> value, a new stylesheet is created and reference to this local stylesheet
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1191 is added to each HTML file. Use option B<--stylesheetname> to specify name.
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1192
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1193 For I<none> value, stylesheet usage is completely ignored.
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1194
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1195 =item B<--stylesheetname> I<filename>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1196
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1197 Stylesheet file name to be used in conjunction with B<-s --stylesheet> option. It is only
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1198 valid for I<old> value of B<-s --stylesheet> option. Specify a valid stylesheet file location
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1199 relative to your WWWRoot and a reference to this stylesheet is added to each HTML
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1200 file. Example: "/stylesheets/MyStyleSheet.css". Or a complete path name to a local
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1201 stylesheet file.
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1202
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1203 For I<create> value of B<-s --stylesheet> option, a new stylesheet file is created using
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1204 B<-r --root> option. And value of B<--stylesheetname> is simply ignored.
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1205
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1206 =item B< --shadecolor> I<"#RRGGBB,#RRGGBB">
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1207
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1208 Colors used to fill background of rows during I<shade> and I<shadedhightlight> mode
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1209 represented as a pair of hexadecimal string; the first and second color values
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1210 are used for odd and even number rows respectively.
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1211
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1212 Default value: I<"#ffffff,#e0e9eb"> - it's white and very light blue for odd and even number rows.
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1213
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1214 =item B<-t, --title> I<string>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1215
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1216 Title for HTML table(s). Default value: <TextFileName>. For multiple input files,
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1217 B<-r --root> option is used to generate appropriate titles.
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1218
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1219 =item B<--titledisplay> I<yes | no>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1220
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1221 Display title for HTML table(s). Possible values: I<yes or no>. Default value: I<yes>.
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1222
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1223 =item B<-w, --workingdir> I<dirname>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1224
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1225 Location of working directory. Default: current directory.
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1226
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1227 =back
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1228
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1229 =head1 EXAMPLES
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1230
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1231 To generate HTML tables with rows background filled with white and greyish colors and
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1232 navigation links on top and botton of each page, type:
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1233
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1234 % TextFilesToHTML.pl -o Sample1.csv
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1235
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1236 To generate HTML tables with rows background filled with golden and greyish colors,
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1237 navigation links on top and botton of each page, 10 rows in each table, greyish header
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1238 row color, and cell spacing of 1, type:
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1239
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1240 % TextFilesToHTML.pl -o -n 10 --headeralign "center" --headercolor
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1241 "#a1a1a1" --shadecolor "#ddd700,#d1d1d1" --cellspacing 1
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1242 Sample1.csv
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1243
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1244 To generate plain HTML tables with 10 rows in each table and navigation links only at
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1245 the bottom, type:
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1246
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1247 % TextFilesToHTML.pl -o -n 10 --displaylinks bottom -m plain
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1248 Sample1.csv
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1249
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1250 To highlight values in column 3 using specified highlight criteria and fill in default background
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1251 colors, type:
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1252
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1253 % TextFilesToHTML.pl -n 10 --highlight "3,numeric,le,450"
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1254 --highlightby colnum --highlightstyle background -m
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1255 shadedhighlight -o Sample1.csv
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1256
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1257 To highlight values in column MolWeight using specified highlight criteria, color the text using
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1258 default colors, and add a footer message in every page, type:
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1259
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1260 % TextFilesToHTML.pl -n 4 --highlight "MolWeight,numeric,le,500"
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1261 --highlightby collabel --highlightstyle text -m shadedhighlight -o
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1262 --footer "Copyright (C) MayaChemTools" --cellspacing 1 Sample1.csv
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1263
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1264 =head1 AUTHOR
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1265
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1266 Manish Sud <msud@san.rr.com>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1267
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1268 =head1 SEE ALSO
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1269
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1270 JoinTextFiles.pl, MergeTextFilesWithSD.pl, ModifyTextFilesFormat.pl, SplitTextFiles.pl, SortTextFiles.pl
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1271
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1272 =head1 COPYRIGHT
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1273
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1274 Copyright (C) 2015 Manish Sud. All rights reserved.
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1275
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1276 This file is part of MayaChemTools.
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1277
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1278 MayaChemTools is free software; you can redistribute it and/or modify it under
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1279 the terms of the GNU Lesser General Public License as published by the Free
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1280 Software Foundation; either version 3 of the License, or (at your option)
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1281 any later version.
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1282
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1283 =cut