Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] BAT Либо что-то с заменой строк в файле

Ответить
Настройки темы
CMD/BAT - [решено] BAT Либо что-то с заменой строк в файле

Новый участник


Сообщения: 9
Благодарности: 0

Профиль | Отправить PM | Цитировать


Изменения
Автор: ASIDS
Дата: 17-09-2012
Описание: Дополнение
Здравствуйте, появилась задача в которой нужно заменить в файле куча текста


Вот пример текста

String_ID Skill_Description
640002002 3초 마다 HP <VALUE_FLOAT!op_div=-100>% 감소
640002109 3초 마다 HP <VALUE_FLOAT!op_div=-100>% 감소
640009925 이동 불가
640010116 모든 행동 불가
640010319 이동 속도 <VALUE_FLOAT!op_div=-100>% 감소
640010432 이동 불가

String_ID Skill_Description
640002004 Every 3Sec HP <VALUE_FLOAT!op_div=-100>% Decrease
640002106 Every 3Sec HP <VALUE_FLOAT!op_div=-100>% Decrease
640009919 Cannot Move
640010110 Cannot perform a action
640010316 Move Speed <VALUE_FLOAT!op_div=-100>% Decrease
640010430 Cannot Move


Помогите как с этим можно разобраться, в оригинале каждый раз меняется ID строчек и получается весь перевод нужно менять каждый раз, и притом меняется очерёдность строк, и поэтому тупое копирование в ексель и замена всех айди на оригенал не получится, нужно менять оригенал текста на перевод например из файла где строки стоят паралельно оригенал и перевод, и заменять именно этот текст.




3초 마다 HP <VALUE_FLOAT!op_div=-100>% 감소 <------ Every 3Sec HP <VALUE_FLOAT!op_div=-100>% Decrease
3초 마다 HP <VALUE_FLOAT!op_div=-100>% 감소 <------ Every 3Sec HP <VALUE_FLOAT!op_div=-100>% Decrease
이동 불가 <------ Cannot Move
모든 행동 불가 <------ Cannot perform a action
이동 속도 <VALUE_FLOAT!op_div=-100>% 감소 <------ Move Speed <VALUE_FLOAT!op_div=-100>% Decrease
이동 불가 <------ Cannot Move


Менять в ручную не реал, так как там 503 строки с этим... а в новом оригинале уже 530, и всё конечно перемешано и имеет новые ID


Есть логические идеи на счет этого но реализацию их я не знаю
Чисто текст который нужно заменить я могу положить в один фаил, а текст на который нужно заменить я могу положить в другой, и они будут иденьтичны по строчкам, тоесть строка 1 будет соответствовать строке в файле в котором лежит замена, то есть взять например первую строчку заменить и перейти к другой:
Найти строчку с текстом из файла "B" в файле "A" и заменить строчкой с текстом из файла "С" не заменяя всего содержимого строчки а заменяя только текст из файла "B" и переход на следующую строчку из файла "B" вот так...
Извените что так дотошно описываю, но это как бы и для меня, что я описал точно что я хотел сказать...


Плииз помогите!

Отправлено: 09:03, 17-09-2012

 

Аватара для gora

Ушёл из жизни


Сообщения: 6021
Благодарности: 3491

Профиль | Отправить PM | Цитировать


Цитата ASIDS:
BAT Либо что-то с заменой строк в файле »
Попробуйте vbs:
Код: Выделить весь код
' файл скрипта в кодировке UTF-16
Set FSO = CreateObject("Scripting.FileSystemObject")
' исходный файл в кодировке UTF-16
F = "e:\Temp\test.txt"
' получаемый файл в кодировке UTF-16
F2 = "e:\Temp\test2.txt"
Dim dict(4,1)
' словарь исходных фраз
dict(0,0) = "3초 마다"
dict(1,0) = "감소"
dict(2,0) = "이동 불가"
dict(3,0) = "모든 행동 불가"
dict(4,0) = "이동 속도"
' словарь переведенных фраз
dict(0,1) = "Every 3Sec"
dict(1,1) = "Decrease"
dict(2,1) = "Cannot Move"
dict(3,1) = "Cannot perform a action"
dict(4,1) = "Move Speed"

Set rd_file = FSO.OpenTextFile(F, 1, , -1)
Buffer = rd_file.ReadAll
rd_file.Close
For i = 0 To UBound(dict, 1)
	Buffer = Replace(Buffer, dict(i,0), dict(i,1))
Next
Set wr_file = FSO.OpenTextFile(F2, 2, True, -1)
wr_file.Write Buffer
wr_file.Close
Это сообщение посчитали полезным следующие участники:

Отправлено: 12:49, 17-09-2012 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 9
Благодарности: 0

Профиль | Отправить PM | Цитировать


Эм... спс но я писал ещё про то что "словарь исходных фраз" и "словарь переведенных фраз" он довольно велик...
Их аж 503 строк... и это перед каждым нужно будет писать dict(0,0) = ""?

Отправлено: 13:06, 17-09-2012 | #3


Новый участник


Сообщения: 9
Благодарности: 0

Профиль | Отправить PM | Цитировать


ну вроде как сделал
Спс за помощь!

Добавил ко всем 503 строкам это dict(0,0) через эксель XD

Последний раз редактировалось ASIDS, 17-09-2012 в 14:02.


Отправлено: 13:44, 17-09-2012 | #4



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] BAT Либо что-то с заменой строк в файле

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
VBS/WSH/JS - Удаление строк в REG файле gen0m.rsw Скриптовые языки администрирования Windows 9 28-09-2011 18:03
[решено] Количество строк в файле 0xDEADBEEF AutoIt 3 25-01-2010 21:47
какой BIOS лучше на мамку ASUS P5B-VM 1004 либо 0901 либо 0504 либо 0405 либо 0307 paljch Материнские платы и память 1 12-11-2009 23:27
VBS/WSH/JS - Обработка строк в файле с помошью VBS rfcr Программирование и базы данных 3 07-03-2006 22:40
Как оставить в файле Х первых строк? Dan Вебмастеру 10 19-10-2002 00:41




 
Переход