如何导入,编辑和替换txt文件中的文本?

时间:2013-05-16 17:20:47

标签: javascript html5

在网页中使用客户端脚本(无服务器代码),如javascript,如何导入,编辑和替换txt文件中的文本?我只是尝试使用两个变量(名称和IP地址)并将其替换为文本文件。现有的文本文件很长,我想自动完成这个过程。每次提交脚本时,脚本也会自动创建新的文本文件。谢谢!

这是我的代码:

<html>
<head>
<title>TExt File Changer v1</title>
<script type="text/javascript">

function findaNamendReplaceAll() {
  var findaName = "Site_Name";
  var findaCIP = "192.168.0.5";
  var replaceaName = document.myInput.replaceWithName.value;
  var replaceaCIP = document.myInput.replaceWithCIP.value;
  var fulltexta = document.myInput.fulltext.value;
/* 
  var nr = new RegExp(findaName,"ig");
  var tmp = fulltexta.replace(/Site_Name/gi, replaceaName).replace(/192.168.0.5        /gi,replaceaCIP); 
  document.myInput.fulltext.value = tmp;
*/  

  document.myInput.fulltext.value = fulltexta.replace(/Site_Name/gi, replaceaName).replace(/192.168.0.5/gi,replaceaCIP);
}


var str     += ‘SECTION ethernet’/n;
   str      += ‘ETHERNET=UP’/n;
   str      += ‘BOOTP=server’/n;    
   str      += ‘HOSTNAME=Site_Name’/n;
   str      += ‘IPADDR=192.168.0.4’/n;
   str      += ‘NETMASK=255.255.255.0’/n;
   str      += ‘DNS=‘/n;
   str      += ‘DHCP_RANGE_L=192.168.0.20’/n;
   str      += ‘DHCP_RANGE_U=192.168.0.100’/n;
   str      += ‘SEARCH=‘/n;
   str      += ‘ZEROCONF=YES’/n;
   str      += ‘ETH0_ADD_DEFAULT=on’/n;
   str      += ‘ENDSECTION ethernet’/n;
   str      += ‘‘;
</script>
</head>
<body>
<form name="myInput" onsubmit="return false">
<h1>Configuration Tool</h1>

New Site Name: <input type="text" id="replaceWithName" name="replaceWithName" value="">
<br><br>
New Camera IP: <input type="text" id="replaceWithCIP" name="replaceWithCIP" value="">
<br><br>
<button onclick="findaNamendReplaceAll()">Go</button>
<br><br>

<textarea id="fulltext" name="fulltext" rows="20" cols="100">
SECTION ethernet
ETHERNET=UP
BOOTP=no
HOSTNAME=Site_Name
IPADDR=192.168.0.4
NETMASK=255.255.255.0
DNS=
DHCP_RANGE_L=
DHCP_RANGE_U=
SEARCH=
ZEROCONF=YES
ETH0_ADD_DEFAULT=on
ENDSECTION ethernet
</textarea>
<br>
<button onclick="document.getElementById('fulltext').value = ''">Clear</button>
<button onclick="document.getElementById('fulltext').value = str">Restore</button>

</form>
</body>
</html></pre>

1 个答案:

答案 0 :(得分:1)

如果您遵守两个限制,您可以轻松完成。

1)Windows上的Internet Explorer 2)使用ActiveXObjects

我做了一个项目,需要组装excel电子表格中的各种数据。我的输入文件是手工编辑的json文件 - 指定文件名和路径之类的东西。加载json之后,我使用ActiveXObject以与VBA程序中的方式相同的方式打开和控制Excel。

因此,我没有任何代码从任意文件名加载任意数据。 但是,这段代码应该足以让您开始使用。

注意:该代码假设IE仍为您提供了使用<input type='file'/> Chrome选择的任何文件的完全限定路径,FF和Opera仅为您提供文件名 - 他们不会告诉您你在哪个文件夹中。

function byId(e){return document.getElementById(e);}
function writeDataToFile()
{
    var mFSO = new ActiveXObject("Scripting.FileSystemObject");

    var mFile = mFSO.createtextfile(outputFilename);
    mFile.write( byId('outputTextArea').value );
    mFile.close();
    alert("text saved to '" + outputFilename + "'");
}