Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 24.12.2012, 06:13
Аспирант
Отправить личное сообщение для Maxfashko Посмотреть профиль Найти все сообщения от Maxfashko
 
Регистрация: 08.12.2012
Сообщений: 31

write to txt. В определенную строку!!!
Здравствуйте!

Создаю эту тему второй раз, так как в первой мне не смогли ответить.

Мне необходимо сделать запись в 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');


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

Последний раз редактировалось Maxfashko, 24.12.2012 в 06:30.
Ответить с цитированием
  #2 (permalink)  
Старый 24.12.2012, 11:29
Профессор
Посмотреть профиль Найти все сообщения от godofjavascript
 
Регистрация: 11.12.2012
Сообщений: 265

Сообщение от Maxfashko
Создаю эту тему второй раз, так как в первой мне не смогли ответить.
ахха ипать ты логичный.

а какой браузер ты используешь или какой движок? Где выполняется вообще этот код?

что такое istFile ?

Последний раз редактировалось godofjavascript, 24.12.2012 в 11:33.
Ответить с цитированием
  #3 (permalink)  
Старый 24.12.2012, 11:54
Аспирант
Отправить личное сообщение для Maxfashko Посмотреть профиль Найти все сообщения от Maxfashko
 
Регистрация: 08.12.2012
Сообщений: 31

это не браузерный js

Выполняется он в Ps (Да и это не важно собственно)

ListFile это txt
Ответить с цитированием
  #4 (permalink)  
Старый 24.12.2012, 12:46
Профессор
Посмотреть профиль Найти все сообщения от godofjavascript
 
Регистрация: 11.12.2012
Сообщений: 265

А, это дополняшка на фотошоп)? ясно) щас посмотрим код.

upd1:

так если хочешь чтобы я те помог пришли ВЕСЬ код я запущу его в фотошопе и посмотрю что не так.

п.с. что у тя не работает то кстати? в чем прбелма то?

Последний раз редактировалось godofjavascript, 24.12.2012 в 12:48.
Ответить с цитированием
  #5 (permalink)  
Старый 24.12.2012, 13:00
Аспирант
Отправить личное сообщение для Maxfashko Посмотреть профиль Найти все сообщения от Maxfashko
 
Регистрация: 08.12.2012
Сообщений: 31

Все работает, все ок.
Нужно дописать в txt символ. см выше описание()

я пришлю код который отвечает за открытие txt, так как вся у меня проблема с ним.
Не могу дописать символ в строку txt
Сам код ничего не значит для Ps без файлов, фотографий, путей и psd исходников. Всё я присылать не вижу смысла, так как самое нужное ниже:

Тут нужен хотя бы тулкит

вот код
var workFolderName = 'D:\\work\\Script';
var listFileName = 'VAR.txt';
var separator = '\t';
var doneMark = '>'
var currentLine = "";

var workFolder =  new Folder(workFolderName);
var listFile = File (workFolder+ "/" + listFileName);




/ открываем тектовый файл для редактирования
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);

// делаем запись в конец currentLine через табуляцию
Ответить с цитированием
  #6 (permalink)  
Старый 24.12.2012, 13:12
Профессор
Посмотреть профиль Найти все сообщения от godofjavascript
 
Регистрация: 11.12.2012
Сообщений: 265

меня вот эта строчка интересовала на самом деле

var listFile = File (workFolder+ "/" + listFileName);


так ща глянем

все просто как 2 пальца об песца
var workFolderName = 'C:\\';
var listFileName = 'VAR.txt';

var workFolder =  new Folder(workFolderName);
var listFile = File (workFolder+ "/" + listFileName);

// открываем тектовый файл для редактирования
listFile.open("e", "TEXT", "????");

// добавляем в конец однерку
listFile.write("1");
// потом добавляем в конец еще и двойку
listFile.write("2");

// закрываем файл
listFile.close();

Последний раз редактировалось godofjavascript, 24.12.2012 в 13:31.
Ответить с цитированием
  #7 (permalink)  
Старый 24.12.2012, 13:32
Профессор
Посмотреть профиль Найти все сообщения от godofjavascript
 
Регистрация: 11.12.2012
Сообщений: 265

а, так понял, тепе надо в конец определенной строки, прочитал не внимательно, щас сделаем)
Ответить с цитированием
  #8 (permalink)  
Старый 24.12.2012, 13:50
Профессор
Посмотреть профиль Найти все сообщения от godofjavascript
 
Регистрация: 11.12.2012
Сообщений: 265

Давай так, напишу функцию где указываешь номер строки и символ который туда вбить в конец, норм ?
Ответить с цитированием
  #9 (permalink)  
Старый 24.12.2012, 14:04
Аспирант
Отправить личное сообщение для Maxfashko Посмотреть профиль Найти все сообщения от Maxfashko
 
Регистрация: 08.12.2012
Сообщений: 31

В том то и дело)

текущую строку определяет сам скрипт ( я не знаю какая строка в данный момент обрабатывается, только когда открываю txt и вижу (donemark) на месте первой табуляции)

Ты хочешь чтобы я сам указывал номер строки?
Ответить с цитированием
  #10 (permalink)  
Старый 24.12.2012, 14:48
Профессор
Посмотреть профиль Найти все сообщения от godofjavascript
 
Регистрация: 11.12.2012
Сообщений: 265

а скажи что ты хочешь?

Последний раз редактировалось godofjavascript, 24.12.2012 в 15:02.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Считывание из txt файла Esca Оффтопик 8 24.06.2015 18:58
Обрезаем строку по словам gJam Общие вопросы Javascript 4 22.11.2012 17:57
Как сделать определенную область окна ссылкой Igorbek Общие вопросы Javascript 3 08.08.2012 11:49
Практика: Перевернуть строку. Magneto Учебные материалы 14 20.09.2011 00:44
Как найти определенную строку в документе? Paska Events/DOM/Window 9 04.03.2010 00:08