Writing data to a local text file with javascript

130,425

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.

Share:
130,425
Madhu Dollu
Author by

Madhu Dollu

A software developer C++, Java, PHP, MySql, Oracle

Updated on August 20, 2022

Comments

  • Madhu Dollu
    Madhu Dollu almost 2 years

    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.

  • akinuri
    akinuri almost 8 years
    @Everyone_Else This is no surprise. The OP is using ActiveX which works in IE. Besides, other browsers wouldn't allow accessing local files.
  • CashCow
    CashCow over 7 years
    It's sitll a bad answer. Good answers are useful for others who ask the same question, and don't use IE.