-1

javascript のような Web ページ (サーバー コードなし) でクライアント側スクリプトを使用して、txt ファイル内のテキストをインポート、編集、および置換するにはどうすればよいですか? 単純に 2 つの変数 (名前と 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>
4

1 に答える 1

1

2 つの制限を守れば、簡単に実行できます。

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

Excel スプレッドシートにあるさまざまなデータを組み立てる必要があるプロジェクトを行いました。私の入力ファイルは手動で編集された json ファイルで、ファイル名やパスなどを指定していました。json が読み込まれたら、ActiveXObject を使用して、VBA プログラムから実行する場合とまったく同じ方法で Excel を開いて制御します。

その結果、任意のファイル名から任意のデータをロードするコードがありません。ただし、このスニペットで十分に開始できます。

注:コードは、IE が Chrome で選択されたファイルの完全修飾パスを引き続き提供することを前提として<input type='file'/>います。

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 + "'");
}
于 2013-05-16T19:47:00.620 に答える