• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

Работа с файлами

  • Автор темы AnaStas
  • Дата начала
A

AnaStas

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

Vovochka

О_о
Я так полагаю речь идет о XmlHttpRequest? (IE версия).
Или о чем вообще?

Код хоть показали бы, с таким описанием проблемы вам вряд ли кто что доброго скажет.
 
A

AnaStas

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

Vovochka

Использовать веб-страницу для работы с локальными данными: неверный инструмент для решения задачи.
Лучше сразу откажитесь от этой затеи.
 
A

AnaStas

Дорогие мои консультанты, это не моя прихоть, а постановка задачи главным программистом - разработать Web-интерфейс для обработки данных на клиентской машине с минимумом обращений к серверной базе данных.
 
V

Vovochka

Вообще говоря, видно что вы не занимаетесь программированием.
for (i=0; flag="false"; i++){
Две проблемы:
1) flag="false" - Это присвоение значения. Результатом которого будет строчка "false", которая в свою очередь почти равна true.
т.е. a = "false" == true
2) Учитываю используемую строчку "false", вы наверно хотели использовать булевое значение false. Пишется без кавычек.
 
A

AnaStas

Вообще говоря, видно что вы не занимаетесь программированием.

Две проблемы:
1) flag="false" - Это присвоение значения. Результатом которого будет строчка "false", которая в свою очередь почти равна true.
т.е. a = "false" == true
2) Учитываю используемую строчку "false", вы наверно хотели использовать булевое значение false. Пишется без кавычек.
Теперь придется. Молодежь в институт не идет, а я в отделе единственный профессионльный (МИФИ) инженер-системотехник. Реформаторы института почему-то посчитали, что если понизить мне ставку на 4000р (вместо 13000) то я с огоньком проявлю себя на поприще программирования. Так что, хоть мне и за 60, а учиться придеться. (Однако, понимание, что Шекспиром в области программирования мне уже не быть, это понимание есть.)

Но тем не менее, результат на лицо! Заработал код так как надо. Я восхищен Вами! Теперь остается понять - как flag, будучи строковой, а не булевской, влиял на работу кода с файлами.
Весьма признателен. Спасибо.

Да тут фор совсем не к месту.
Второй день смотрю :blink: и понять не могу, для чего все это и где ошибка то?
Есть несколько текстовых файлов с данными. Эти данные загружаются в многомерные массивы по определенному закону (алгоритму). А функции, реализующие этот алгоритм, работают так как описано в теме. Смотрите, как красиво и тонко Vovochka решил проблему.
 
A

AnaStas

Работа, разумеется, не в интернете. Есть физическая установка. Есть сервер с базой режимов работы и управления ею. Главный программист в купе с физиками и инженерами определил и разработал общую стратегию некой автоматизированной системы на базе персональных и промышленных компьютеров для этой установки. Мне выдается задание по кодированию отдельных моментов. Точно знаю, что по-мимо JS, впереди меня ждут Perl, PHP, TCL и SQL. (от одной только аббревиатуры последние волосы выпадут)
Если интересно: вот здесь я отработал более 40 лет
Реформы затеянные Киреенко в нашей отрасли коснулись нашего института не в лучшую сторону и меня перекинули вот сюда: link removed
Ну, а в принципе, мы вот это:
 
A

AnaStas

Не так страшен черт как его намалевали. Для когото физика посложнее программирования будет. ;)
Спасибо за помощь и поддержку. Можно считать тему закрытой. И как говорится - ждите новых тем. :)
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!