请高手指点,有一个文本文件,它里面的文件内容如下:(有几万行)Navigator1-1,00-1E-40-7A-A8-CC,ChinaNet-A9R3,ghlqqyrb,192.168.1.1,useradmin,ewxhm,12VDC,1.25A,001E40-46900001E407AA8CC
Navigator1-1,00-1E-40-7A-A6-63,ChinaNet-HTcq,pzt3kpcy,192.168.1.1,useradmin,udd5i,12VDC,1.25A,001E40-4D900001E407AA663
Navigator1-1,00-1E-40-7A-A7-CE,ChinaNet-PGpt,yjavnfvf,192.168.1.1,useradmin,6rzxq,12VDC,1.25A,001E40-4F900001E407AA7CE
Navigator1-1,00-1E-40-7A-A4-C4,ChinaNet-bQVw,iydvciff,192.168.1.1,useradmin,qewgk,12VDC,1.25A,001E40-3D900001E407AA4C4
Navigator1-1,00-1E-40-7A-A5-4D,ChinaNet-4nfe,vt5wsawt,192.168.1.1,useradmin,m6sap,12VDC,1.25A,001E40-3B900001E407AA54D
Navigator1-1,00-1E-40-7A-A6-CA,ChinaNet-qvj5,4s6ejwyj,192.168.1.1,useradmin,zgbe5,12VDC,1.25A,001E40-4A900001E407AA6CA
Navigator1-1,00-1E-40-7A-A5-55,ChinaNet-XjrJ,tq5s2znk,192.168.1.1,useradmin,sdxsy,12VDC,1.25A,001E40-4B900001E407AA555
Navigator1-1,00-1E-40-7A-A5-4F,ChinaNet-g6Du,fz9vsxv2,192.168.1.1,useradmin,udjau,12VDC,1.25A,001E40-39900001E407AA54F
Navigator1-1,00-1E-40-7A-A5-8B,ChinaNet-amDf,tr3njmjp,192.168.1.1,useradmin,zxfmf,12VDC,1.25A,001E40-31900001E407AA58B
………………………………要求,客户从页面上输入一个值:00-1E-40-7A-A5-8B,利用javascript 技术根据页面传来的值,从文本文件中将00-1E-40-7A-A5-8B找到,并将其所在行的内容全部显示出来,
请高手帮忙,javascript如何将文本文件的数据逐行读取保存到一个数组中(容器),然后再对这个数组进行操作,找到指定的值并将其所在行的内容显示出来。
只用javascript,不要java的,java的我会写。
Navigator1-1,00-1E-40-7A-A6-63,ChinaNet-HTcq,pzt3kpcy,192.168.1.1,useradmin,udd5i,12VDC,1.25A,001E40-4D900001E407AA663
Navigator1-1,00-1E-40-7A-A7-CE,ChinaNet-PGpt,yjavnfvf,192.168.1.1,useradmin,6rzxq,12VDC,1.25A,001E40-4F900001E407AA7CE
Navigator1-1,00-1E-40-7A-A4-C4,ChinaNet-bQVw,iydvciff,192.168.1.1,useradmin,qewgk,12VDC,1.25A,001E40-3D900001E407AA4C4
Navigator1-1,00-1E-40-7A-A5-4D,ChinaNet-4nfe,vt5wsawt,192.168.1.1,useradmin,m6sap,12VDC,1.25A,001E40-3B900001E407AA54D
Navigator1-1,00-1E-40-7A-A6-CA,ChinaNet-qvj5,4s6ejwyj,192.168.1.1,useradmin,zgbe5,12VDC,1.25A,001E40-4A900001E407AA6CA
Navigator1-1,00-1E-40-7A-A5-55,ChinaNet-XjrJ,tq5s2znk,192.168.1.1,useradmin,sdxsy,12VDC,1.25A,001E40-4B900001E407AA555
Navigator1-1,00-1E-40-7A-A5-4F,ChinaNet-g6Du,fz9vsxv2,192.168.1.1,useradmin,udjau,12VDC,1.25A,001E40-39900001E407AA54F
Navigator1-1,00-1E-40-7A-A5-8B,ChinaNet-amDf,tr3njmjp,192.168.1.1,useradmin,zxfmf,12VDC,1.25A,001E40-31900001E407AA58B
………………………………要求,客户从页面上输入一个值:00-1E-40-7A-A5-8B,利用javascript 技术根据页面传来的值,从文本文件中将00-1E-40-7A-A5-8B找到,并将其所在行的内容全部显示出来,
请高手帮忙,javascript如何将文本文件的数据逐行读取保存到一个数组中(容器),然后再对这个数组进行操作,找到指定的值并将其所在行的内容显示出来。
只用javascript,不要java的,java的我会写。
{
for( var i=0;i<arr.length;i++)
{
if( arr[i].indexof(str) )
return arr[i];
}
return "没有找到";
}alert( find_arr("00-1E-40-7A-A5-8B") );
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>读MAC号软件</title><style>
table {
border:2 groove blue;
position:absolute;
top:100;
left:300;
}
td {
border:1 ridge green;
}
</style>
<script language="javascript">
function ck(obj){if(obj.value.length>0){
var af="txt,xls"; //设置文件的后缀名;
if(eval("with(obj.value)if(!/"+af.split(",").join("|")+"/ig.test(substring(lastIndexOf('.')+1,length)))1;")){alert("您选择的文件格式不符合要求!\n\n系统只接受:"+ af +"格式文件");obj.createTextRange().execCommand('delete')};
}}
//obj.form.reset()
</script>
</head>
<body><table width="437" height="157" border="0" align="center" cellpadding="0" cellspacing="0">
<tr><td width="433" height="28">
<input size="40" id="path" type="file" onpropertychange="ck(this)"></input><button onclick="view()">打开</button></td></tr><br/><tr> <td id="content" height="23"></td></tr>
</table><script language="javascript">
function view()
{
var fso, f1, ts, s ,file,str;
file = document.getElementById("path").value;
var ForReading = 1;
fso = new ActiveXObject("Scripting.FileSystemObject");
ts = fso.OpenTextFile(file, ForReading ,false);
// 这里新建一个数组
var array = new Array();
while(!ts.AtEndOfLine)
{
请高手再这里帮我添加代码,谢谢了。
将ts.ReadLine()的内容添加到数组 array 中,然后再遍历 array数组,将 00-1E-40-7A-A5-8B从array数组找到,显示出来就行了。
} document.getElementById("content").innerHTML= s ;
alert("File contents = '" + s + "'"); // 显示字符串信
ts.Close();
}
</script>
</body>
</html>
<iframe id="readfile" style="display:none;"></iframe>
<textarea id="rfcode" name="rfcode" style=" width:700px;height:480px;overflow:scroll;border-width:1;border-style:solid;border-color:#CADCDF;font-size:10pt;" wrap="off" ></textarea><!--font-family:Courier New;-->
<div id="p_display" name="p_display" style="top:6px;left:705px;width:280px;height:478px;overflow:scroll;border-width:1;border-style:solid;border-color:#CADCDF;position:absolute;white-space:nowrap;" > </div>
<br/>
<label >FileName/URL:<input type="text" name="acodes" id="acodes" value="1.txt" onKeyPress="if(event.keyCode==13){loadcode();}"/></label>
<input type="submit" name="Submit2" value="加载脚本" onClick="loadcode();"/>
<input type="submit" name="Submit" value="测试脚本" onClick="coderun();"/>
<label >输入要查找的类容:<input type="text" name="fid" id="fid" value="" onKeyPress="if(event.keyCode==13){findstr();}"/></label>
<input type="submit" name="Submit3" value="查找" onClick="findstr();"/>
<input type="submit" value="清除记录" onClick="document.getElementById('p_display').innerHTML='';"/>
</body>
<script>
var fobj = document.getElementById( "readfile" );
var codebox = document.getElementById( "rfcode" );
var dplay = document.getElementById( "p_display");
var find_in = document.getElementById( "fid" );
var arr; function loadcode()
{ try
{
if( document.getElementById("acodes").value == "" )
fobj.src = "1.txt" ;
else
fobj.src = document.getElementById("acodes").value;
}catch(e)
{ }
}
function getCodes()
{
try
{
if(fobj.contentWindow.document.body.innerHTML!="")
{ var textnode = fobj.contentWindow.document.body.firstChild.childNodes.item(0);
codebox.value = textnode.nodeValue.toLowerCase() ;
arr = textnode.nodeValue.toLowerCase().split("\n");
}
}catch(er)
{ alert("没有代码可获取"); }
}
function find_arr( str )
{
for( var i=0;i <arr.length;i++)
{
if( arr[i].indexOf(str)!=-1 )
return arr[i];
}
return "没有找到";
/* 如果你想匹配所有的,就把这里改一下:
var arr_rs
for( var i=0;i <arr.length;i++)
{
if( arr[i].indexOf(str)!=-1 )
arr_rs.push( arr[i] );
}
if(arr_rs.length)
return arr_rs;
else
return "没有找到"; */
}
function findstr( )
{
alert( arr[0] );
dplay.innerHTML+= find_arr( find_in.value.toLowerCase() )+ "<br/>";
}
if( typeof(fobj.onreadystatechange)=="object" ) //IE
fobj.onreadystatechange = function ()
{ if(fobj.readyState=="complete")
getCodes();
};
else //FireFox
fobj.onload = function ()
{ getCodes();
};
if( window.navigator.appName.localeCompare( "Netscape" )!=0 ) //IE
document.getElementById('p_display').style.height="480px";
document.getElementById('p_display').innerHTML='';
//loadcode();//一打开页面就加载文本文件
</script>
function findstr( )
{
//把这个去掉,刚才忘去掉了
alert( arr[0] );
dplay.innerHTML+= find_arr( find_in.value.toLowerCase() )+ "<br/>";
}
不过你的代码有点问题, 运行到getCodes()方法时,提示 "没有代码可获取",即if里的代码没被执行。我用的是IE浏览器。
function getCodes()
{
try
{
if(fobj.contentWindow.document.body.innerHTML!="")
{ var textnode = fobj.contentWindow.document.body.firstChild.childNodes.item(0);
codebox.value = textnode.nodeValue.toLowerCase() ;
arr = textnode.nodeValue.toLowerCase().split("\n");
}
}catch(er)
{ alert("没有代码可获取"); }
codebox.value = fobj.contentWindow.document.body.innerText.toLowerCase();
arr = fobj.contentWindow.document.body.innerText.toLowerCase().split("\n");
{
var fso, f1, ts, s ,file,str;
file = document.getElementById("path").value;
var ForReading = 1;
fso = new ActiveXObject("Scripting.FileSystemObject");
ts = fso.OpenTextFile(file, ForReading ,false);
// 这里新建一个数组
var array = new Array();
while(!ts.AtEndOfLine)
{
if(ts.readLine().indexOf(str)>0){
alert(ts);
}
} document.getElementById("content").innerHTML= s ;
alert("File contents = '" + s + "'"); // 显示字符串信
ts.Close();
}