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

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Работа с файлами (Не считываются данные из файла) (http://forum.oszone.net/showthread.php?t=117509)

AnaStas 17-09-2008 22:17 901981

Работа с файлами (Не считываются данные из файла)
 
Пожалуйста проконсультируйте.
При загрузки HTML-страницы два массива должны заполниться данными из двух файлов. Однако только один из них
(все равно какой!) загружает соответствующий массив. Ощущение такое, что функция обрабатывающая второй файл, после отработки первого просто игнорируется. Коллеги, в чем здесь особенность? ActiveXObject позволяет открывать (не одновременно, а после закрытия предыдущего) несколько файлов?
Заранее спасибо.

pva 18-09-2008 06:48 902185

где код? может в коде ошибка?

AnaStas 18-09-2008 10:29 902275

Так выглядит страница .shtml:
<script type="text/javascript" src="func2.js"></script>
<script type="text/javascript">
...
<!--
// ========создаем массив записей групп каналов
var grp_arr = new Array(); var chn_arr = new Array();
var file = new ActiveXObject("Scripting.FileSystemObject");
loadGrp(); loadChn();
// ==========================================================

//-->
</script>
...

Функции loadGrp(); loadChn(); обращаются к файлу func2.js.
Вот их коды:

// Функция загрузки списка групп каналов
function loadGrp() {
var grpfile = file.OpenTextFile("groups.txt",1);
var flag="false"; var grplong=0;
for (i=0; flag="false"; i++){
grp_arr[i] = new Array();
grplong = parseInt(grpfile.readLine());
for (j=0; j<grplong; j++){
grp_arr[i][j] = new Array()
for (k=0; k<3; k++){
grp_arr[i][j][k] = grpfile.readLine();
flag=grpfile.atEndOfStream;
}
}
grp_arr[i][0][0]=parseInt(grp_arr[i][0][0]);
}
grpfile.Close();
}
// Функция загрузки списка всех каналов
function loadChn() {
var chnfile = file.OpenTextFile("chanels.txt",1);
var flag="false";
for (i=0; flag="false"; i++){
chn_arr[i] = new Array();
for (j=0; j<3; j++){
chn_arr[i][j] = chnfile.readLine();
flag=chnfile.atEndOfStream;
}
chn_arr[i][0]=parseInt(chn_arr[i][0]);
}
chnfile.Close();
}

AnaStas 19-09-2008 16:23 903342

Ошибка действительно в коде:
Цитата:

Цитата AnaStas
function loadGrp() {
var grpfile = file.OpenTextFile("groups.txt",1);
var flag="false"; var grplong=0;
for (i=0; flag="false"; i++){
... »

Как видете flag="false" строковое значение, а должно быть булевое false, да и оператор for возможно у меня не к месту, а если уж использую, то желательно, чтобы было так:
for (i=0; false; i++). Рекомендуют вместо for использовать while.
Так как код заработал, тему можно считать закрытой.
Спасибо за внимание и помощь.


Время: 08:03.

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