使用javascript将数据写入本地文本文件 [英] Writing data to a local text file with javascript

查看:1127
本文介绍了使用javascript将数据写入本地文本文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述



 < form id =我已经创建了一个将内容写入本地机器的文本文件的过程。的AddNew> 
< input type =textclass =id>
< input type =textclass =content>
< input type =submitvalue =Add>
< / form>
< script>
$ {
$('#form_addjts')。submit(function(){
writeToFile({
id:$(this).find(' .id')。val(),
content:$(this).find('。content')。val()
});
return false;
} );
函数writeToFile(data){
var fso = new ActiveXObject(Scripting.FileSystemObject);
var fh = fso.OpenTextFile(D:\\data.txt ,8);
fh.WriteLine(data.id +','+ data.content);
fh.Close();
}
});
< / script>

这工作正常,能够将新数据追加到文件中。 b
$ b

但是我想根据我传递的ID更新特定的行内容。

我搜索了很多,但是找不到任何内容。



如何根据ID更新文件中的某一行?

注意: - 我没有使用任何服务器。我有一个html文件(包含所有的功能),我将在本地机器上运行。

我们的HTML:

 < div id =addnew> 
< input type =textid =id>
< input type =textid =content>
< input type =buttonvalue =Addid =submit>
< / div>

< div id =check>
< input type =textid =input>
< input type =buttonvalue =Searchid =search>
< / div>

JS(写入txt文件):

  function writeToFile(d1,d2){
var fso = new ActiveXObject(Scripting.FileSystemObject);
var fh = fso.OpenTextFile(data.txt,8,false,0);
fh.WriteLine(d1 +','+ d2);
fh.Close();
}
var submit = document.getElementById(submit);
submit.onclick = function(){
var id = document.getElementById(id).value;
var content = document.getElementById(content)。value;
writeToFile(id,content);

检查特定行:

  function readFile(){
var fso = new ActiveXObject(Scripting.FileSystemObject);
var fh = fso.OpenTextFile(data.txt,1,false,0);
var lines =;
while(!fh.AtEndOfStream){
lines + = fh.ReadLine()+\r;
}
fh.Close();
回报行;
}
var search = document.getElementById(search);
search.onclick = function(){
var input = document.getElementById(input)。value;
if(input!=){
var text = readFile();
var lines = text.split(\r);
lines.pop();
var result;
for(var i = 0; i< lines.length; i ++){
if(lines [i] .match(new RegExp(input))){
result =Found :+ lines [i] .split(,)[1];


if(result){alert(result); }
else {alert(input +not found!); }




$ b $放置在 .hta 文件并运行它。测试了W7,IE11。它正在工作。另外,如果你想让我解释一下发生了什么事情,就这么说。


I have created a procedure to write content to a text file in my local machine.

<form id="addnew">
    <input type="text" class="id">
    <input type="text" class="content">
    <input type="submit" value="Add">
</form>
<script>
    jQuery(function($) {
        $('#form_addjts').submit(function(){
            writeToFile({
                id: $(this).find('.id').val(), 
                content: $(this).find('.content').val()
            });
            return false;
        }); 
        function writeToFile(data){
            var fso = new ActiveXObject("Scripting.FileSystemObject");
            var fh = fso.OpenTextFile("D:\\data.txt", 8);
            fh.WriteLine(data.id + ',' + data.content);
            fh.Close(); 
        } 
    }); 
</script>

This is working fine, and able to append my new data to the file.

But I want to update a particular row CONTENT based on the ID which I am passing.
I searched a lot, but could not find any.

How can update a particular row in the file based on the ID?

Note:- I am not using any server as such. I have a a html file (contains all the functionality) which I will be running on my local machine itself.

解决方案

Our HTML:

<div id="addnew">
    <input type="text" id="id">
    <input type="text" id="content">
    <input type="button" value="Add" id="submit">
</div>

<div id="check">
    <input type="text" id="input">
    <input type="button" value="Search" id="search">
</div>

JS (writing to the txt file):

function writeToFile(d1, d2){
    var fso = new ActiveXObject("Scripting.FileSystemObject");
    var fh = fso.OpenTextFile("data.txt", 8, false, 0);
    fh.WriteLine(d1 + ',' + d2);
    fh.Close();
}
var submit = document.getElementById("submit");
submit.onclick = function () {
    var id      = document.getElementById("id").value;
    var content = document.getElementById("content").value;
    writeToFile(id, content);
}

checking a particular row:

function readFile(){
    var fso = new ActiveXObject("Scripting.FileSystemObject");
    var fh = fso.OpenTextFile("data.txt", 1, false, 0);
    var lines = "";
    while (!fh.AtEndOfStream) {
        lines += fh.ReadLine() + "\r";
    }
    fh.Close();
    return lines;
}
var search = document.getElementById("search");
search.onclick = function () {
    var input   = document.getElementById("input").value;
    if (input != "") {
        var text    = readFile();
        var lines   = text.split("\r");
        lines.pop();
        var result;
        for (var i = 0; i < lines.length; i++) {
            if (lines[i].match(new RegExp(input))) {
                result = "Found: " + lines[i].split(",")[1];
            }
        }
        if (result) { alert(result); }
        else { alert(input + " not found!"); }
    }
}

Put these inside a .hta file and run it. Tested on W7, IE11. It's working. Also if you want me to explain what's going on, say so.

这篇关于使用javascript将数据写入本地文本文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆