1

Тема: JS: write to txt/ определенная строка

Здравствуйте!

Уже на двух форумах я потерпел неудачу, никто не смог толком ничего сказать

Мне необходимо сделать запись в txt файл в определённую строку (в конец)


Вот код, который считывает определённую строку отмеченную знаком
А в неё мне нужно сделать запись.
Именно в текстовик! Так как запись будет читать другая программа



код открывает текстовик данного вида
1015\t9999\t10x15
3000\t8789\t10x15
и т.д

и проставляет вместо первой табуляции любой знак ("DoneMark")
далее переходит на след строку, и удаляя старый, снова ставит знак
для того чтобы отметить выполняемую в данный момент строку

У меня возникла острая нужда дописать в текущую выполняемую строку через знак \t один символ.

чтобы получилось данное:
1015\t9999\t10x15\tV


Прошу помощи у знатоков.

listFile.open("e", "TEXT", "????");

// ищем последнее выполненную строчку, отмеченную знаком ">"
do {
    var previousPos = listFile.tell();
    currentLine = listFile.readln();
    var currentPos = listFile.tell();
    var seekDelta = currentPos - previousPos - currentLine.length;
} while(!listFile.eof && currentLine.search(doneMark) < 0);

// запоминаем, добрались ли мы до конца файла (т.к. в дальнейшем будем пользоваться сдвигом, и .eof может поменять значение)

var endOfFile = false;
if (listFile.eof) endOfFile = true;

if (currentLine.search(doneMark) > 0) {
// если в файле найден знак ">"
// заменяем его на пробел
    var signPos = currentLine.indexOf(doneMark) - currentLine.length - seekDelta;
    listFile.seek(signPos, 1);
    listFile.write(separator);
};

// если мы уперлись в конец файла, сдвигаемся в начало
if (endOfFile) {
    listFile.seek (0,0);
    previousPos = 0 } 
else {
    previousPos = currentPos;
    listFile.seek(- signPos - 1, 1);};
    
// считываем строчку, с которой будем работать
currentLine = listFile.readln();

currentPos = listFile.tell();
seekDelta = currentPos - previousPos - currentLine.length;

// заменяем в рабочей строке пробел на знак ">"
var signPos = currentLine.indexOf(separator) - currentLine.length - seekDelta;
listFile.seek(signPos, 1);
listFile.write(doneMark);

Пробовал сделать так

var XPos =currentLine.length;
listFile.seek(XPos, 1);
listFile.write('V');

Но пишет не совсем в конец строки

Если ошибся разделом и мне в java, прошу прощения

2

Re: JS: write to txt/ определенная строка

Maxfashko пишет:

Если ошибся разделом и мне в java, прошу прощения

Всё-таки это больше пошоже на JS (какой в java тип данных var?), но не браузерный. Зачем в браузерном JS методы работы с файлами, да и незнакомые какие-то. Может это серверный JS или встроенный в какое либо приложение (Photoshop?).

3

Re: JS: write to txt/ определенная строка

Да, он используется в Ps

4

Re: JS: write to txt/ определенная строка

Перенёс.

5

Re: JS: write to txt/ определенная строка

Мне необходимо сделать запись в txt файл в определённую строку (в конец)

и проставляет вместо первой табуляции любой знак ("DoneMark")
далее переходит на след строку, и удаляя старый, снова ставит знак
для того чтобы отметить выполняемую в данный момент строку

У меня возникла острая нужда дописать в текущую выполняемую строку через знак \t один символ.

Так пробовали?


Прочитать файл построчно, запоминая каждую строку в массиве
Обработать каждый элемент массива (изменить, удалить, добавить строку или части строк)
Добавить (если необходимо) новый элемент в конец массива
Записать весь массив в тот же файл
( 2 * b ) || ! ( 2 * b )