Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 04.09.2010, 00:21
Новичок на форуме
Отправить личное сообщение для Binom Посмотреть профиль Найти все сообщения от Binom
 
Регистрация: 04.09.2010
Сообщений: 2

Внешний интерпретатор Javascript
День добрый может кто сталкивался с подобным вопросом и сможет проконсультировать или хотя бы направить.

Пример:

Имеется файл a.js
в нем скрипт:

<script language=JavaScript>
i = 0 
while (i <= 5){
 document.write('Шаг № ' + i)
 document.write('<br>')
 i++;
}
  </script>


В командной строке (ОС не важна) запускается внешний интерпретатор с путями к файлу в результате получаем другой файл с содержимым:


Код:
Шаг № 0
Шаг № 1
Шаг № 2
Шаг № 3
Шаг № 4
Шаг № 5

Может кто знает каким образом можно реализовать подобную задачу, заранее спасибо.
Ответить с цитированием
  #2 (permalink)  
Старый 04.09.2010, 00:30
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

WSH
Ответить с цитированием
  #3 (permalink)  
Старый 04.09.2010, 02:17
Профессор
Отправить личное сообщение для with-love-from-siberia Посмотреть профиль Найти все сообщения от with-love-from-siberia
 
Регистрация: 14.12.2009
Сообщений: 155

Сообщение от Gvozd
WSH
Код:
document.write
Из-за этого не будет работать. Там другие средства ввода/вывода есть. Хотя можно эмулировать. Для кроссплатформенности.
Ответить с цитированием
  #4 (permalink)  
Старый 04.09.2010, 02:41
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

' VBScript                                                  
Dim FSO, F, ExecuteInfo, ReadString, Counter
Const setRead = 1, setWrite = 2, useDefault = -2
Set FSO = WScript.CreateObject("Scripting.FileSystemObject")
	FSO.CreateTextFile "test.txt"
Set F = FSO.GetFile("test.txt")
Set ExecuteInfo=F.OpenAsTextStream(setWrite, useDefault)
	Counter = 0 
While Counter <= 5
	Counter = Counter +1
	ExecuteInfo.WriteLine "Строка " & Counter
Wend
	ExecuteInfo.Close
Set ExecuteInfo = F.OpenAsTextStream(setRead, useDefault)
	ReadString = ExecuteInfo.ReadLine
	ExecuteInfo.Close


Код на VBScript (WSH).
Сохраняется с расширением .vbs

Последний раз редактировалось monolithed, 04.09.2010 в 02:54.
Ответить с цитированием
  #5 (permalink)  
Старый 04.09.2010, 12:26
Новичок на форуме
Отправить личное сообщение для Binom Посмотреть профиль Найти все сообщения от Binom
 
Регистрация: 04.09.2010
Сообщений: 2

Сообщение от Gvozd
WSH
Сообщение от with-love-from-siberia
Из-за этого не будет работать. Там другие средства ввода/вывода есть. Хотя можно эмулировать. Для кроссплатформенности.
Сообщение от monolithed
Код на VBScript (WSH).
Сохраняется с расширением .vbs

Может я не корректно поставил вопрос, но смысл в том что бы выполнить именно Javascript (который используется в web проектировании)
Код который я предоставил всего лишь пример и не является прямой задачей которую нужно решить.

Посколку Javascript работает в браузере, может существую командная строка для работы с ними?
Или может существуют интерпретаторы на php или петоне (хотя в данном случае целый пласт функций не будет работать).
Ответить с цитированием
  #6 (permalink)  
Старый 04.09.2010, 12:47
Профессор
Отправить личное сообщение для with-love-from-siberia Посмотреть профиль Найти все сообщения от with-love-from-siberia
 
Регистрация: 14.12.2009
Сообщений: 155

Сообщение от Binom
может существую командная строка для работы с ними?
Да существует. Gvozd уже указал на один из них (Windows only):
Сообщение от Gvozd
WSH
Вам надо поискать информацию по этой аббревиатуре. Существуют и другие реализации, например, Rhino, Node.js, V8. Я же добавил, что document.write - это браузерный код вывода. В других реализациях языка функции ввода/вывода другие.
Ответить с цитированием
  #7 (permalink)  
Старый 04.09.2010, 13:03
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Я написал в пример, одиного из способов как можн решить вашу проблему.
Этот код написан на VBScript, можно и на JScript, но во всех случаях это будет не кроссплатформенно.

На JScript:

var fso, f, setRead, setWrite = 2, counter = 0;
f = fso.CreateTextFile("c:\\text.txt", true);
fso = new ActiveXObject("Scripting.FileSystemObject");
setRead = fso.OpenTextFile("c:\\text.txt", setWrite, true);
function CreateFile(){
	var fso, useText;
	fso = new ActiveXObject("Scripting.FileSystemObject");
	useText = fso.CreateTextFile("c:\\text.txt", true);
	while(counter<= 5){
		useText.WriteLine("Строка");
	}
	useText.Close();
}



Если вам нужна кроссплатформенность, то как-то так можно

<form name="forma" action="$_SERVER['PHP_SELF']" method="post"> 
	<textarea style="width: 200px; height: 100px" name="text"></textarea>
	<input type="text" value="filename" name="name">
	<input type="submit" value="Ok"> 
	<input type="hidden" name="create" value="Ok"> 
</form>

<script type="text/javascript">
var counter = 0;
while(counter++ <= 5){
	document.forma.text.value += 'строка ' +counter+ '\n';
}
</script>

<?php
if ($create){ 
	$openfile = fopen("$name", "w"); 
	fwrite($openfile, $text); 
	fclose($openfile); 
} 
?>

Последний раз редактировалось monolithed, 04.09.2010 в 13:09.
Ответить с цитированием
  #8 (permalink)  
Старый 04.09.2010, 13:36
Аватар для subzey
Пионэр
Отправить личное сообщение для subzey Посмотреть профиль Найти все сообщения от subzey
 
Регистрация: 16.11.2009
Сообщений: 1,322

Вы можете использовать hta (Internet Explorer HTML Application) или виджет Оперы.

В обоих случаях получите stand-alone приложение с js + DOM + BOM.

Разница: эксплорер даст помимо этого вышеупомянутый WSH, да и сделать hta проще простого; Опера - нормальный яваскрипт и кроссплатформенность.

Так или иначе, любым из этих приложений можно получить адрес скрипта из командной стоки и запустить в себе.
Ответить с цитированием
  #9 (permalink)  
Старый 04.09.2010, 13:53
Профессор
Отправить личное сообщение для with-love-from-siberia Посмотреть профиль Найти все сообщения от with-love-from-siberia
 
Регистрация: 14.12.2009
Сообщений: 155

Сообщение от subzey
запустить в себе
о-о-ой! =)

Всем
Почему все ваши примеры завязаны на записи в файл? Ведь есть стандартный вывод на консоль. Система умеет перенаправлять его в файл:
Код:
cscript script.js > result.txt

Последний раз редактировалось with-love-from-siberia, 04.09.2010 в 13:57.
Ответить с цитированием
  #10 (permalink)  
Старый 04.09.2010, 14:25
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

В чем проблема создать скажем *.bat файл, и прописать путь в переменных средах (для Win), или установить *nginx и использовать Node.js (если уже так хочется JavaScript).
Но выводить данные через консоль лучше на стороне сервера с использованием PHP + SQL

Последний раз редактировалось monolithed, 04.09.2010 в 14:51.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Другой взгляд на javascript Дубров Олег Javascript под браузер 24 27.05.2017 09:15
Собрался силами, собираюсь освоить Javascript walker Общие вопросы Javascript 14 20.03.2012 16:17
JavaScript на Яндекс.Фотки - почему тормозит браузеры? ZavFirefox Javascript под браузер 23 27.09.2009 19:24
Программист на JavaScript (удалённо) Vadym Работа 1 28.01.2009 13:57
Нужен Старший разработчик JavaScript Yandex Работа 17 19.08.2008 16:43