Уверен, что данная тема поднималась, но лично мои поиски ничего не дали,
В интернете такая функция нигде разжёвана не была, хотя знаю, что она где-то есть.

Я хочу:
Чтобы Imacros считывал мой txt файл и брал данные логин (первая колонка)/ pass (вторая колонка),
а затем удалял верхнею строку.

Текущий код выглядит так:

скрытый текст

Выделить код

Код:

SET !DATASOURCE Login_pass.txt
    SET !DATASOURCE_LINE 1
    SET !DATASOURCE_COLUMNS 3
    SET USER1 {{!COL1}}
    SET PASS1 {{!COL2}}
    TAG POS=1 TYPE=INPUT:TEXT FORM=ID:check_form ATTR=ID:cabinet-login CONTENT = USER1 
    TAG POS=1 TYPE=INPUT:PASSWORD FORM=ID:check_form ATTR=ID:cabinet-password- CONTENT=PASS1


Мне бы не хотелось записывать в переменную весь текстовый документ
(например у меня там несколько тысяч пар логин/пасс).
Как мне удалить верхнюю строку?

Почитал, посмотрел, нет такой возможности.
Уважаемый форум, а на javascript как такое можно реализовать?
Я совсем недавно стал учиться js и для меня работа с массивами пока довольно сложна.

Появилась идея создания отдельных файлов логинов и отдельных паролей.

Взял за основу скрипт вот с этого сайта:

скрытый текст
Войдите или зарегистрируйтесь, чтобы увидеть скрытый текст.


Скрипт:
скрытый текст

Выделить код

Код:

var loadFile = function (fileName) {
    var fileDescriptor = imns.FIO.openNode(fileName);
    var text = imns.FIO.readTextFile(fileDescriptor);
    return {
        text: text,
        strings: text.split('\r\n') // стандартные символы перевода каретки и новой строки в текстовых файлах
    };
}
 
// Пример использования
 
var strings = loadFile("C:\\Users\\ReD\\Desktop\\login.txt").strings; // Массив строк
var Login = (strings[0]);
window.console.log(Login); 
delete strings[0];
window.console.log(Login);


Тут я немного решил добавить функцию удаления  (delete)
Но строка всё равно не стирается. Где я неправ?

17-03-2017 18:16:46
Придумал костыли. Ещё один текстовый файл, который будет перезаписываться и являться счётчиком указывая на номер строки откуда взять логин,
Но это жутко неудобно

А зачем удалять? И iim и js-скрипты  вполне могут считывать из файлов данные построчно.

Ramzes28
нельзя удалить одну строку
можно удалить все и записать заново, но уже без ненужной строки, вот только поддержу вопрос udalov'a - зачем?

Ramzes28, спасибо что читаете мой блог!

Вы все делаете почти правильно, но метод delete работает иначе и применяется для других целей.
Я добавил функцию сохранения и немного изменил ваш код, проблем с удалением строки нету, все очень просто.

Удаление из файла первой строки и дальнейшее сохранение на iMacros+JS:

скрытый текст

Выделить код

Код:

/*  HELPERS  */
var loadFile = function (fileName) {
    var fileDescriptor = imns.FIO.openNode(fileName);
    var text = imns.FIO.readTextFile(fileDescriptor);
    return {
        text: text,
        strings: text.split('\r\n') // стандартные символы перевода каретки и новой строки в текстовых файлах
    };
}

var saveToFile = function (fileName, text) {
    var fileDescriptor = imns.FIO.openNode(fileName);
    imns.FIO.writeTextFile(fileDescriptor, text);
}



/*  APPLICATION  */
var strings = loadFile("C:\\Users\\ReD\\Desktop\\login.txt").strings;
var Login = (strings[0]);
// Делаем что угодно с первой строкой
window.console.log(Login);

// strings - это массив, в JS полным-полно функций для работы с массивами
// Удаляем одним легким движением первый элемент в массиве строк
strings.splice(0, 1); // Удаляем из массива строк один элемент, начиная с первого(индекс=0)

saveToFile("C:\\Users\\ReD\\Desktop\\login.txt", strings.join('\r\n'));

// Метод join() превращает массив строк в текст и добавляет в нашем случае перевод строки между элементами массива
// ["одна", "строка"].join('\r\n') превращается в:
// "одна
// строка"