Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Работа с файлами, Не считываются данные из файла 
V
    Опции темы
AnaStas
Дата 18.9.2008, 20:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 16.9.2008

Репутация: нет
Всего: нет



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

На всякий случай привожу код: Так выглядит страница .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.9.2008, 09:24
PM MAIL   Вверх
bars80080
Дата 18.9.2008, 20:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 15
Всего: 315



1. а функции полностью выполняются? до самого конца?
2. как ты видишь, что массив загрузился?
3. попробуй вызов второй функции засунуть в самый конец первой

пользуйся кнопкой код, пожалуйста

PM MAIL WWW   Вверх
AnaStas
Дата 19.9.2008, 09:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 16.9.2008

Репутация: нет
Всего: нет



Цитата(bars80080 @  18.9.2008,  20:26 Найти цитируемый пост)
2. как ты видишь, что массив загрузился?

Для просмотра точек отладки использую alert().
Цитата(bars80080 @  18.9.2008,  20:26 Найти цитируемый пост)
1. а функции полностью выполняются? до самого конца?

Здесь этого не могу понять, ибо даже при входе в функцию, после закрытия предыдущего файла, alert() не высвечивается.
Цитата(bars80080 @  18.9.2008,  20:26 Найти цитируемый пост)
3. попробуй вызов второй функции засунуть в самый конец первой

Попробовал - результат прежний (нет общения с файлом)

PM MAIL   Вверх
bars80080
Дата 19.9.2008, 10:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 15
Всего: 315



Цитата(AnaStas @  19.9.2008,  09:43 Найти цитируемый пост)
Здесь этого не могу понять, ибо даже при входе в функцию, после закрытия предыдущего файла, alert() не высвечивается

вот у тебя здесь облом и происходит. попробуй отследить в первой функции алертами, какая именно команда сбоит
PM MAIL WWW   Вверх
AnaStas
Дата 19.9.2008, 15:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 16.9.2008

Репутация: нет
Всего: нет



Удивительное дело, но ошибка оказывается в коде:
Код

// Функция загрузки списка групп каналов
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();
...

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

Так как все заработало, тему можно считать закрытой.
Спасибо за внимание и помощь.
PM MAIL   Вверх
bars80080
Дата 19.9.2008, 16:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 15
Всего: 315



for (i=0; false; i++) - здесь он у тебя вообще не должен работать или наоборот бесконечно

используй так:
Код

for (i=0; flag == false; i++) {}

PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0742 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.