Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Scripting Runtime: Ошибка ReadLine из пустого файла (http://forum.oszone.net/showthread.php?t=106046)

Gamover jr 30-04-2008 20:52 792349

Scripting Runtime: Ошибка ReadLine из пустого файла
 
Как сначала проверить, есть ли в файле текст?

Busla 30-04-2008 22:57 792428

обычно, построчное чтение засовывают в цикл while по условию NOT EOF EOF - End Of File
соответственно для пустого файла программа не войдёт в этот цикл

Gamover jr 01-05-2008 00:33 792473

самое похожее на EOF что мне удалось найти - AtEndOfStream


По нажатию баттона выполняется примерно такой js код
f1 = fso.GetFile("c:\\textfile.txt");
ts = f1.OpenAsTextStream();

while (!(ts.AtEndOfStream))
{
s1 = ts.ReadLine();
alert (s1) ;
}

алерт не выполняется, баттон остаётся нажатый, IE зависает.
Если в файле есть >=1 символов всё ок.

Gamover jr 02-05-2008 10:19 793049

ts = fso.OpenTextFile("c:\\textfile.txt", 1, true);
while (!ts.AtEndOfStream)
{
s1 = ts.ReadLine();
alert ("s1") ;
}

тот же результат.

Приходится сначала дописывать в конец файла строку, чтобы исключить пустой файл.

Busla 03-05-2008 01:15 793547

Всё правильно - оно и есть.
Да нечему там зависать - ошибка в другом месте. Укажи явно тип кнопки и return обработчика.

Gamover jr 03-05-2008 11:56 793725

Да, ошибка в другом месте.
и тоже непонятно

var hd= '<html><head><meta http-equiv="Expires" content="Mon, 26 Jul 2010 05:00:00 GMT" /><title>Project</title><META http-equiv=Content-Type content="text/html; charset=windows-1251"><script type="text/javascript" charset="windows-1251" src = "localhost/PROJECT/scrpt.js"></script></head><body>'

var topbuttons = '<button onclick="acts( )">Доки</button>'

function acts()

{
var ts, s1 = "" ;
var fso = new ActiveXObject("Scripting.FileSystemObject");
document.writeln(hd); // <--------------------------------------------------- с этой строчкой виснет, без - нет.
document.writeln(topbuttons);
ts = fso.OpenTextFile("c:\\FileAkts.txt", 1, true);
while (!ts.AtEndOfStream)
{
s1 = s1 + ts.ReadLine();
}

ts.Close();
document.writeln(s1);
document.close();
}

Busla 04-05-2008 12:00 794360

естественно - в середину html документа пытаетесь вставить другой html-документ

Gamover jr 04-05-2008 19:56 794723

А как правильно?

В общем идея такая, в строке topbuttons много разных кнопок, все функции в одном js-файле, все функции первым делом пишут строки hd и topbuttons, а дальше по назначению нажатой кнопки.


Решение: поменял путь к скрипту на относительный.

Busla 05-05-2008 09:24 795016

Так неясно же, чего требуется добиться. "В общем идея такая" - это просто пересказ приведённого кода, а что он неправильный мы уже разобрались.


Время: 03:50.

Время: 03:50.
© OSzone.net 2001-