Frage

Es gibt dieses IMACRO Scripting-Tool, wenn Sie wollen automatisieren einige Web Seite Besuche von Javascript.

Ich mag meinen Javascript habe von einer lokalen TXT-Datei zu lesen (Kein CVS-Datei und nicht gut formatiert .. würde Ich mag wohl darin suchen, mit einem regulären Ausdruck ..) und auf der Grundlage dieser Lesung wird das Skript einige Job in imacros tun .. (z eine Website aufrufen url etc ..)

Haben Sie Jungs eine Ahnung, wie dies getan werden kann? Ich tue alles lokale und das ist mein lokaler Browser von meiner lokalen Festplatte zu lesen .. es sollte irgendwie möglich sein .. aber wie?

War es hilfreich?

Lösung

Ja, Sie können es mit imacros tun, aber Sie müssen es aus javascript.js Datei aufrufen. Laden Sie Ihre Inhalte als einen Block, dann können Sie Javascript indexOf Methode verwenden, um die Zeichenfolge im Text und führen if-Anweisung zu finden. Textbeispiel (in Ihrer txt-Datei): "Hallo Welt!"

var load;
load =  "CODE:";
load +=  "set !extract null" + "\n"; 
load +=  "SET !DATASOURCE text.txt" + "\n"; 
load +=  "SET !DATASOURCE_COLUMNS 1" + "\n"; 
load +=  "SET !DATASOURCE_LINE 1" + "\n"; 
load +=  "SET !extract {{!col1}}" + "\n";
iimPlay(load);
var s=iimGetLastExtract(0);
var index=s.indexOf("w");
if (index>0){
do your code;
}

Andere Tipps

Sie müssen xml HTTP-Anforderung als ActiveX-Objekt der Datei verwenden, wird von keinem anderen Browser als IE unterstützt wird.

Dieser Code funktioniert völlig in Ordnung, während die lokalen txt lesen oder andere zu Datei.

f();
function f()
{
    var allText =[];
    var allTextLines = [];
    var Lines = [];
    var txtFile = new XMLHttpRequest();

    txtFile.open("GET", "file://D:/test.csv", true);
    allText = txtFile.responseText;
    //allTextLines = allText.split(/\r\n|\n/);//splits ur file line by line.

    //alert(allTextLines);
    txtFile.onreadystatechange = function()
    {
        if (txtFile.readyState == 4)
        {
            // Makes sure it's found the file.
            allText = txtFile.responseText;
            allTextLines = allText.split(/\r\n|\n/);

            alert(allText);
        } else { //alert("Didn't work"); 
        }
    }
    txtFile.send(null)
}

ich es in der altmodischen Art und Weise gelöst - Lese Zeile für Zeile:

function read_file(path) {
    var content = '', l = 1, f, res = '';

    do {
        content += res && (res + "\n");
        f = "CODE: "+"\n";
        f += "SET !EXTRACT null" + "\n"; 
        f += "SET !DATASOURCE \""+path+"\" "+"\n";
        f += "SET !DATASOURCE_COLUMNS 1" + "\n"; 
        f += "SET !DATASOURCE_LINE " + l + "\n"; 
        f += "SET !EXTRACT {{!col1}}" + "\n";
        iimPlay(f);
        res = iimGetLastExtract();
        l++;
    } while (res && res != '#EANF#');

    return content;
}

var file_conten = read_file('/home/user/iMacros/templates/some_file.txt');

Hoffnung werde es künftig Leser ^ _ ^

Hilfe

in Firefox können Sie die Datei direkt lesen.

Weitere Informationen unter https: //developer.mozilla. org / en-US / Add-ons / Code_snippets / File_I_O # Line_by_line

Datei Zeile für Zeile verwenden Sie die folgende

lesen
var FileUtils = Components.utils.import("resource://gre/modules/FileUtils.jsm").FileUtils;

FileLocation = "C:\\myFile.txt"

var file   = new FileUtils.File( FileLocation );

// open an input stream from file
var istream = Components.classes["@mozilla.org/network/file-input-stream;1"].createInstance(Components.interfaces.nsIFileInputStream);
istream.init(file, 0x01, 0444, 0);
istream.QueryInterface(Components.interfaces.nsILineInputStream);

// read lines into array
var line = {}, lines = [], hasmore;
do {
  hasmore = istream.readLine(line);
  lines.push(line.value); 
} while(hasmore);

istream.close();

// do something with read data
alert(lines);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top