iMacro 스크립팅 - JavaScript를 사용하여 로컬 .txt 파일을 읽는 방법

StackOverflow https://stackoverflow.com/questions/1239650

  •  11-09-2019
  •  | 
  •  

문제

이것이 있습니다 이마 크로 스크립팅 도구, JavaScript를 사용하여 웹 페이지 방문을 자동화하려는 경우.

로컬 .txt 파일 (.CVS 파일이 아니라 잘 형식화되지 않은 것은 아니고 정규 표현으로 검색하고 싶습니다 ..)에서 내 JavaScript를 읽고 싶습니다. Imacros에서 일을 할 것입니다 .. (예 : 일부 웹 사이트 URL 등에 전화하십시오 ..)

너희들은 어떻게 이런 일을 할 수 있는지 아십니까? 나는 현지에서 모든 일을하고 있는데 그것은 내 지역 하드 드라이브에서 내 지역 브라우저를 읽는 것입니다. 어떻게 든 가능해야합니다 .. 그러나 어떻게?

도움이 되었습니까?

해결책

예, 당신은 imacros로 그것을 할 수 있지만 javaScript.js 파일에서 호출해야합니다. 콘텐츠를 하나의 블록으로로드 한 다음 JavaScript indexof 메소드를 사용하여 텍스트에서 문자열을 찾고 IF 문을 수행 할 수 있습니다. 텍스트 예제 (TXT 파일 내부) : "안녕하세요 세계!"

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;
}

다른 팁

XML HTTP 요청을 사용하여 파일의 ActiveX 객체가 IE보다 다른 브라우저에서 지원되지 않기 때문에 사용해야합니다.

이 코드는 로컬 txt 또는 다른 파일도 읽는 동안 완벽하게 작동합니다.

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)
}

나는 구식 방식으로 해결했다 - 라인별로 읽기 :

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');

미래의 독자들에게 도움이되기를 바랍니다 ^_ ^

Firefox에서는 파일을 직접 읽을 수 있습니다.

더 많은 정보 https://developer.mozilla.org/en-us/add-ons/code_snippets/file_i_o#line_by_line

한 줄씩 파일을 읽으려면 다음을 사용하십시오

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);
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top