Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
HomeAnnouncementsWhite Papers
Discussion GroupsFirst AidDatabasesJavaBeansGUIJava 3DVirtual MachineCORBASecurityToolsGeneral
Java DirectoryOpen Source ProjectsSample Book ChaptersUser GroupsWeb Resources
Related Topics
Databases.NETMore Topics ...

Java Forum / First Aid / March 2005

Tip: Looking for answers? Try searching our database.

How to populate HTML table from local text file.

Thread view: 
alex - 27 Mar 2005 06:13 GMT
Hi,

I am looking for a way to populate an HTML table from an external
local text file which looks like this:

DATE/TIME                  LAT.       LON.       DEPTH.      ML.
--------------------   ----------  ----------   -------   -------  
21/03/2005-04:06:03       XX,XX      XX,XX        171       3,42      
21/03/2005-12:23:53       XX,XX      XX,XX        500       5,4
21/03/2005-12:43:10       XX,XX      XX,XX        553       5,38      
21/03/2005-18:47:51       XX,XX      XX,XX        162       3,91      
21/03/2005-19:29:49       XX,XX      XX,XX        500       3,51      
21/03/2005-20:04:51       XX,XX        X,X         75       3,72      

The file could have more rows (DATA) that I show here. The file is
provided to me on a daily basis and I have to update a web page daily
with the contents of the file.

I considered using JavaScript embedded in the HTML page but I am a
newbie on what scripting for the web it refers.

How can I populate the HTML table with this text file which changes
everyday.

Also, is it possible to use php client-side only, without a server?

Your help, suggestions and feedback questions will be much
appreciated.

Thanks.

Alex.
Malcolm Dew-Jones - 27 Mar 2005 07:34 GMT
: Hi,

: I am looking for a way to populate an HTML table from an external
: local text file which looks like this:

: DATE/TIME                  LAT.       LON.       DEPTH.      ML.
: --------------------   ----------  ----------   -------   -------  
[quoted text clipped - 4 lines]
: 21/03/2005-19:29:49       XX,XX      XX,XX        500       3,51      
: 21/03/2005-20:04:51       XX,XX        X,X         75       3,72      

the absolutely easiest way is to simply wrap the above text with the <pre>
</pre> tags.

<html>
<head> <title> data from 21/03/2005 </title> </head>
<body>
<pre>
DATE/TIME                  LAT.       LON.       DEPTH.      ML.
--------------------   ----------  ----------   -------   -------
21/03/2005-04:06:03       XX,XX      XX,XX        171       3,42
21/03/2005-12:23:53       XX,XX      XX,XX        500       5,4
</pre>
</body>
</html>

--

This space not for rent.
McKirahan - 27 Mar 2005 15:58 GMT
> : Hi,
>
[quoted text clipped - 12 lines]
> the absolutely easiest way is to simply wrap the above text with the <pre>
> </pre> tags.

I like Malcom's solution for its ease.

Or do you *need* the data in a table for some reason?

Perhaps to right-align numbers or hyperlink cells?

Also, I'm not familiar with Lat/Lon presented as "XX,XX";

Per http://jan.ucc.nau.edu/~cvm/latlongdist.html

Valid formats for Latitudes and Longitudes are:

option 1: dddmmssD or ddd mm'ss" D

where ddd = 1-3 digits for degrees, mm = 2 digits for minutes, ss = 2 digits
for seconds and D = N,S,E, or W. The seconds and special characters (spaces,
apostrophes, quotes) are all optional in this format. This leads to quite a
large number of possible valid formats.

option 2: ddd.ffffD

where ddd = 0-3 digits, ffff = 0-10 digits and D = N,S,E, or W. This format
represents a decimal number of degrees. If the number of degrees is a whole
number, the decimal point is optional.

option3: ddd mm.ffff'D

where ddd = 0-3 digits for degrees, mm = 2 digits for minutes, ffff = 0-10
digits for decimal portion of minutes and D = N,S,E, or W. This format
represents degrees and a decimal number of minutes.
alex - 28 Mar 2005 05:34 GMT
> > : Hi,
> >
[quoted text clipped - 11 lines]
>
> Or do you *need* the data in a table for some reason?

Thanks for your answer, McKirahan. Just as a follow-up to some
questions...
I do need the data in a table in order to hyperlink some cells.

> Also, I'm not familiar with Lat/Lon presented as "XX,XX";

Sorry, I only made a representation of Lat/Lon in order not to reveal
actual values of Lat/Lon that correspond to data in my organization.
The values for Lat/Lon given to me are according to option 2 below,
decimal number of degrees. Thanks for the good input.

> Per http://jan.ucc.nau.edu/~cvm/latlongdist.html
>
[quoted text clipped - 3 lines]
> represents a decimal number of degrees. If the number of degrees is a whole
> number, the decimal point is optional.
RobG - 28 Mar 2005 13:46 GMT
[...]

> Also, I'm not familiar with Lat/Lon presented as "XX,XX";
>
> Per http://jan.ucc.nau.edu/~cvm/latlongdist.html
>
> Valid formats for Latitudes and Longitudes are:
[...]

 Whilst your reference to the Northern Arizona University may have
 appropriate formats for the OP's purposes, the international standard
 is ISO 6709:1983.

 There are 2 main difference between ISO and your quoted source;

 1. Hemispheres are denoted by "-" for W and S and "+" for E and N.  I
 suppose the mathematical symbols are more widely understood than
 letters from the English alphabet.

 2. The ISO formats are unambiguous.

 A free version of the standard can be found here:

   <URL:http://en.wikipedia.org/wiki/ISO_6709>

 Though to ensure full compliance (if required), a copy should be
 purchased from ISO.

Signature

Rob

Alan Little - 27 Mar 2005 15:12 GMT
Carved in mystic runes upon the very living rock, the last words of alex
<alexanderelzinga@hotmail.com> of comp.lang.javascript make plain:

> I am looking for a way to populate an HTML table from an external
> local text file which looks like this:
[quoted text clipped - 3 lines]
>
> Also, is it possible to use php client-side only, without a server?

Yes and no. No, you can't run PHP locally and have it integrate with
pages served to your browser from somewhere else. Yes, you can install a
web server such as Apache on your local machine and have it serve pages
to you locally, integrating with PHP as desired. This is most likely what
I would do if my production server didn't have PHP (well, actually I
would get a different provider in that case); install Apache and PHP
locally, write a PHP script to read the file and generate the output,
upload static content to production server.

Signature

Alan Little
Phorm PHP Form Processor
http://www.phorm.com/

Mick White - 27 Mar 2005 16:07 GMT
> Hi,
>
[quoted text clipped - 16 lines]
> I considered using JavaScript embedded in the HTML page but I am a
> newbie on what scripting for the web it refers.

<div id="foo"><--INCLUDE FILE HERE--></div>
<script type="text/JavaScript">
onload= function(){
var d=document.getElementById("foo").innerHTML.split(/\s+/)
document.getElementById("foo").innerHTML=table_maker(5,d);
}
function table_maker(columns,array){
var  txt="<TABLE cellpadding=1 cellspacing=1  border=1>"
var rows=Math.ceil(array.length/columns);
for(var r=0,t=0;r<rows;r++){
txt+="<TR>"
for(var c=0;c<columns;c++){
txt+="<TD>"+array[t++]+"</TD>"
}
txt+="</TR>"
}
txt+="</TR></TABLE>"
return txt;
}
</script>

Mick
alex - 29 Mar 2005 10:10 GMT
> > Hi,
> >
[quoted text clipped - 18 lines]
> >
> <div id="foo"><--INCLUDE FILE HERE--></div>

Forgive my ignorance, but, how do i include the file as dictated right
above?
Is there some kind of HTML statement that allows you to include an
external text file ? Please clarify as am a newbie on this.  Thanks
Mick.

Alex.

> <script type="text/JavaScript">
> onload= function(){
> var d=document.getElementById("foo").innerHTML.split(/\s+/)
> document.getElementById("foo").innerHTML=table_maker(5,d);
> }
[...]
Mick White - 31 Mar 2005 20:48 GMT
[...]

>><div id="foo"><--INCLUDE FILE HERE--></div>
>
[quoted text clipped - 5 lines]
>
> Alex.

Search for "SSI".

Mick

>><script type="text/JavaScript">
>>onload= function(){
[quoted text clipped - 3 lines]
>
> [...]
Jeff North - 29 Mar 2005 13:58 GMT
>| Hi,
>|
[quoted text clipped - 24 lines]
>| Your help, suggestions and feedback questions will be much
>| appreciated.

You could use javascript to open and read the file. If the user has
javascript disabled then they will see nothing.

Alternatively you could use an IFrame on your page to display your
file.

If the file extension is txt then browsers will display the text as it
appears in the file - no formatting.

If the file extension is csv then Internet Explorer will reformat the
text and display it in a limited Excel spreadsheet layout. Other
browsers (Firefox) will just show the text.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=iso-8859-1" />
<title>External text file</title>
</head>

<body>
<P>this is some text, menus etc</P>
<iframe src="pc-full.csv" width="100%" frameborder="1"
scrolling="auto" height="350px"></iframe>
</body>
</html>
---------------------------------------------------------------
jnorthau@yourpantsyahoo.com.au  : Remove your pants to reply
---------------------------------------------------------------
RobB - 31 Mar 2005 23:28 GMT
> Hi,
>
[quoted text clipped - 4 lines]
> --------------------   ----------  ----------   -------   -------
> 21/03/2005-04:06:03       XX,XX      XX,XX        171       3,42

> 21/03/2005-12:23:53       XX,XX      XX,XX        500       5,4
> 21/03/2005-12:43:10       XX,XX      XX,XX        553       5,38

> 21/03/2005-18:47:51       XX,XX      XX,XX        162       3,91

> 21/03/2005-19:29:49       XX,XX      XX,XX        500       3,51

> 21/03/2005-20:04:51       XX,XX        X,X         75       3,72

> The file could have more rows (DATA) that I show here. The file is
> provided to me on a daily basis and I have to update a web page daily
[quoted text clipped - 14 lines]
>
> Alex.

Server-based preprocessors were designed for this sort of thing; any
time you attempt it at the client, you're in the wild-wild-west, so to
speak, hoping for a reasonably controlled environment (unlikely).
Nevertheless: you could simply download that text file into a hidden
iframe in the page and extract the data from there...browser support
for this - and DOM table-building - is pretty good these days. See if
this does anything. You may have to find any control characters
inserted by googlegroups and s & r them....sorry about that.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<style type="text/css">

body {
font-size: 100%;
background: #9a9;
}
h3 {
width: 180px;
font: 18px "arial black";
color: #474;
margin: 80px auto 0 auto;
}
#stuff {
width: 600px;
margin: 10px auto;
}
#stuff th {
font: 11px "arial black";
color: #060;
letter-spacing: .4em;
border-left: 3px #000 solid;
border-right: 1px #000 solid;
background: #fff;
}
#stuff td {
font: normal 12px monospace;
text-align: center;
padding: 3px;
border-top: 1px #888 solid;
border-right: 1px #000 solid;
border-bottom: 1px #888 solid;
border-left: 3px #000 solid;
background: #d0d8d0;
}
#buffer {
display: none;
}

</style>
<script type="text/javascript">

onload = function()
{
if (!document.getElementById
|| !document.getElementsByTagName)
 return;
var frm = null,
prenode,
tbod = document.getElementById('tbod'),
data = '';
if ((frm = top.frames['buffer']) //iframe
&& frm.document)
{ //get <pre> parent
 prenode = frm.document.getElementsByTagName('pre').item(0);
 if (null != prenode
 && null != prenode.firstChild
 && /#text/.test(prenode.firstChild.nodeName)) //text node
 {
  data += prenode.firstChild.data; //read
  data = data.split(/[\n\r]/); //separate lines
  data.splice(0, 2); //lose first two (legend)
  var i = 0,
  l = data.length,
  rowdata,
  ii, ll, tr, td;
  for (; i < l; ++i)
  {
   tr = document.createElement('tr'); //new row
   tbod.appendChild(tr);
   rowdata = data[i].split(/\s{3,}/); //separate bits
   for (ii = 0, ll = rowdata.length; ii < ll; ++ii)
   {
    td = document.createElement('td'); //new cell
    td.appendChild(document.createTextNode(rowdata[ii]));
    tr.appendChild(td);
   }
  }
 }
}
}

</script>
</head>
<body>
<h3>&amp;#149; Mystery Data &amp;#149;</h3>
<table id="stuff">
<thead>
<tr>
<th>DATE/TIME</th>
<th>LAT.</th>
<th>LON.</th>
<th>DEPTH.</th>
<th>ML.</th>
</tr>
</thead>
<tbody id="tbod">
</tbody>
</table>
<iframe id="buffer" name="buffer" src="data.txt"></iframe>
</body>
</html>

Made some assumptions about the consistency of the text formatting.


Free Magazines

Get these publications absolutely FREE for up to 12 months. There are no hidden fees and no obligation. Simply choose a title, complete the application form and submit it. Read more ...

Oracle MagazineNetwork ComputingComputer WorldBio-IT WorldeWeekInformation WeekInfosecurity
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.