2010-07-29 3 views
1

Каков правильный синтаксис для поиска файла .txt для ключевого слова в JavaScript?Как я могу найти файл .txt для ключевого слова в Unityscript?

EDIT: Я работаю с подмножеством JavaScript под названием UnityScript в программе под названием Unity3D. Он выводит программы .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 я мог бы импортировать его в мою программу. Теперь я вижу, что, возможно, я ошибся.

Спасибо - Эллиот Bonneville

+0

Доступ к файлам традиционно не разрешен в JavaScript. Где находится файл? Обратите внимание, что это возможно в * некоторых * современных браузерах с HTML5. – Anurag

+0

Прямо на моем компьютере. Я использую подмножество Javascript под названием UnityScript, но я думал, что функция JS тоже будет работать. Они очень похожи. Был ли я неправ? –

+0

Более подробно, пожалуйста, нам нужно знать, что вы пытаетесь сделать, и то, что вы сделали до сих пор. –

ответ

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

Javascript не имеет доступа к файловой системе. Не без плагинов ActiveX или Flash.

Похоже, вам нужно настольное приложение или скрипт powershell.

+0

Что относительно System.IO? –

+2

@Elliot Это * не * Javascript! Java - это Javascript, как автомобиль для ковра. –

+0

Javascript не имеет System.IO, javascript - это совершенно другой язык для Java. Edit: Ой, Джош, ты избил меня. –

3

Это зависит от того, в современных браузерах есть некоторые способы доступа к локально сохраненным файлам (что означает на том же компьютере, что и пользователь, просматривающий вашу веб-страницу). Однако, если файл хранится на стороне сервера, то есть машина, на которой размещен сайт, недостаточно одного JavaScript-кода.

Если файл размещен на клиентской машине, пожалуйста, посмотрите here.

Однако, если файл размещен на серверной машине, вы можете запустить запрос AJAX на сервер и вернуть серверный текстовый файл. (Просто печать файла в STDOUT отправит его в ответ на HTTP-запрос).

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

После получения данных можно использовать xmlhttpobject.responsetext.match ("ключевое слово"), чтобы найти, существует ли оно.

+0

Я не работаю в браузере. Я запускаю .exe с встроенным JS. В этом случае я не работаю с AJAX. –

+0

О, интересно, можете ли вы дать более подробную информацию о том, как exe запрограммирован? Кажется, что лучше использовать exe для выполнения этой задачи. C/C++/C#/perl/все, что вы используете для программирования exe, будет намного более подходящим для выполнения этой задачи, чем javascript. –

+0

Я работаю с программой под названием Unity3D. Это моя программа, поскольку Visual - это приложение на C++. Я немного взломал систему, поскольку это 3D, но я создаю приложение для интерфейса. В любом случае, я закончил работу с подмножеством Javascript под названием Unityscript. Я думал, что если бы я мог получить функцию из Javascript, это сработало бы в США. –

Смежные вопросы