Здравствуйте!
Создаю эту тему второй раз, так как в первой мне не смогли ответить.
Мне необходимо сделать запись в txt файл в определённую строку (в конец)
Вот код, который считывает определённую строку отмеченную знаком
А в неё мне нужно сделать запись.
Именно в текстовик! Так как запись будет читать другая программа
код открывает текстовик данного вида
1015\t9999\t10x15
3000\t8789\t10x15
и т.д
и проставляет вместо первой табуляции любой знак ("DoneMark")
далее переходит на след строку, и удаляя старый, снова ставит знак
для того чтобы отметить выполняемую в данный момент строку
У меня возникла острая нужда дописать в текущую выполняемую строку через знак \t один символ.
чтобы получилось данное:
1015\t9999\t10x15\tV
Прошу помощи у знатоков.
var separator ='\t'
var doneMark ='>'
istFile.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);
// где-то вот здесь необходимо сделать запись
// закрываем текстовик
listFile2.close();
Пробовал сделать так
var XPos =currentLine.length;
listFile.seek(XPos, 1);
listFile.write('V');
Но пишет не совсем в конец строки