Java Forum / First Aid / March 2005
How to populate HTML table from local text file.
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>&#149; Mystery Data &#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 MagazinesGet 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 ...
|
|
|