如何在.sxt文件中搜索Unityscript中的关键字?

时间:2010-07-29 00:59:25

标签: unity3d unityscript

在JavaScript中搜索.txt文件中关键字的正确语法是什么?

编辑:我正在一个名为Unity3D的程序中使用名为UnityScript的JavaScript子集。它输出.exe程序。这是UnityScript的一个例子:

import System.IO;

function ReadFile () {
    var sr = new StreamReader(Application.dataPath + "/" + readFilePath);
    var fileContents = sr.ReadToEnd();
    sr.Close();

    var lines = fileContents.Split("~"[0]);
    for (line in lines) {
        Debug.Log (line);
    }
}

我认为如果我能从JavaScript获得一个函数,我可以将它导入我的程序。我现在看到也许我错了。

谢谢 - Elliot Bonneville

3 个答案:

答案 0 :(得分:3)

在现代浏览器中,有一些方法可以访问本地存储的文件(意味着与查看网页的用户在同一台​​机器上)。但是,如果文件存储在服务器端,这意味着托管网站的机器,仅仅javascript是不够的。

如果文件托管在客户端计算机上,请查看here

但是,如果文件托管在服务器计算机上,则可以向服务器发起AJAX请求,并让服务器反馈文本文件。 (只需将文件打印到STDOUT即可将其作为对HTTP请求的响应发送)。

http://en.wikipedia.org/wiki/Ajax_%28programming%29 http://www.w3schools.com/Ajax/Default.Asp

收到数据后,您可以使用xmlhttpobject.responsetext.match(“keyword”)查找是否存在。

答案 1 :(得分:1)

Javascript无权访问文件系统。不是没有ActiveX插件或Flash。

听起来您需要桌面应用程序或PowerShell脚本。

答案 2 :(得分:1)

试试这个:

function process(url, send, RegExp) 
{ 
    with(new XMLHttpRequest) { 
        open((send) ? "POST" : "GET", url , false);
        setRequestHeader("Content-Type:","text/Plain");
        send(send);
        if(readyState == 4)
            return RegExp != null ? responseText.match(RegExp) : responseText
    }
}

例如

file.txt:

name=frank&id=12&foo=a

调用函数

process("file.txt", null, /name=([^&]+).id=(\d+)&foo=([^\n]+)/g)
相关问题