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

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

Ответить
Настройки темы
Любой язык - [решено] Изменить текстовый файл

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


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

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


Вложения
Тип файла: zip GRAPHIC.zip
(1.3 Kb, 8 просмотров)
Доброго времени суток. Может кто поможет в решении такой вот задачки
Есть текстовый файл примерно на 2000 строк
в нем есть строка
Код: Выделить весь код
  MENUITEM "&Поликарпов П.П.|Поликарпов"
Нужно чтобы при запуске скажем bat файла у пользователя запрашивало ввод его фамилии и затем Поликарпов П.П. заменялся на ту фамилию которую ввел пользователь.
подскажите как это лучше сделать. Пример файла который нужно изменить во вложении

Отправлено: 15:35, 05-10-2011

 

Ветеран


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

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


PoltavaPGS, если без проверок, то примерно так:
читать дальше »
Код: Выделить весь код
Option Explicit

Const ForReading   = 1
Const ForWriting   = 2

Const TristateTrue       = -1


Dim strFIO

Dim strFileName
Dim strContent

Dim strFind
Dim strReplace


strFileName = WScript.Arguments.Item(0)

strFind    = "MENUITEM ""&Поликарпов П.П.|Поликарпов"""
strReplace = ""

With WScript.CreateObject("Scripting.FileSystemObject")
	If .FileExists(strFileName) Then
		strFIO = Trim(InputBox("Введите Ваши фамилию, имя, отчество в виде:" & vbCrLf & vbCrLf & _
			"Иванов И.И.", "Введите фамилию, имя, отчество", ""))
		
		If Len(strFIO) <> 0 Then
			strReplace = "MENUITEM ""&" & strFIO & "|" & Split(strFIO)(0) & """"
			
			With .OpenTextFile(strFileName, ForReading, False, TristateTrue)
				strContent = .ReadAll()
				
				.Close
			End With
			
			With .OpenTextFile(strFileName, ForWriting)
				.Write Replace(strContent, strFind, strReplace)
				
				.Close
			End With
		End If
	Else
		WScript.Echo "Файл [" & strFileName & "] не найден"
	End If
End With

WScript.Quit 0

Файл для обработки указываете аргументом скрипта:
Код: Выделить весь код
Script.vbs "c:\Sample folder\GRAPHIC.PMN"
либо непосредственно в коде вместо присвоения аргумента:
Код: Выделить весь код
strFileName = "c:\Sample folder\GRAPHIC.PMN"
P.S. Если Вам действительно надо будет регулярно менять, я бы вместо конкретной фамилии «&Поликарпов П.П.|Поликарпов» вставил шаблон-заполнитель, который бы потом искался и заменялся.
Это сообщение посчитали полезным следующие участники:

Отправлено: 17:06, 05-10-2011 | #2



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

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


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


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

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


Спасибо то что нужно!!!

Отправлено: 17:21, 05-10-2011 | #3


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


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

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


Так есть парочка проблем
1) Это то что файл после замены в нем строки таким образом получается в половину меньшего размера. Полагаю что то в кодировках зарыто ??? так вот после таких манипуляций программа для которой он непосредственно предназначен открывает его без проблем. И блокнот тоже без вопросов. А вот программа специально для удобного редактирования этого файла напрочь отказывается его открывать.
2)Как быть если нужно заменить несколько раз ввод еще одной строки ничего не дал что я не так делаю ???
Код: Выделить весь код
.Write Replace(strContent, strFind, strReplace)
.Write Replace(strContent, strFind2, strReplace2)

Отправлено: 12:23, 18-10-2011 | #4


Ветеран


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

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


Цитата PoltavaPGS:
1) Это то что файл после замены в нем строки таким образом получается в половину меньшего размера. »
Архив с файлом до, файлом после, и Ваш код скрипта.
Цитата PoltavaPGS:
2)Как быть если нужно заменить несколько раз ввод еще одной строки ничего не дал что я не так делаю ??? »
Для начала — расставлять знаки препинания до появления в предложении смысла.

Отправлено: 14:48, 18-10-2011 | #5


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


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

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


Всем спасибо! Во всем разобрался.

Отправлено: 16:56, 26-10-2011 | #6



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
добавить запись в текстовый файл не открывая его. GooDok AutoIt 3 19-10-2010 16:42
VBS/WSH/JS - Экспорт значений реестра в общий текстовый файл + добавление доп данных в этот файл fedko Скриптовые языки администрирования Windows 0 17-06-2010 11:52
Чем открыть текстовый файл dat Jurbell Хочу все знать 6 05-07-2007 14:59
Как прочитать на JavaScript текстовый файл? Efremov Вебмастеру 5 11-01-2006 11:27
mySQL или текстовый файл chem1 Программирование и базы данных 12 02-02-2004 03:56




 
Переход