PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Ищу в txt файле в строке слово и заменяю его
Axiles
Отправлено: 19 Октября, 2018 - 05:48:56
Post Id


Гость


Покинул форум
Сообщений всего: 86
Дата рег-ции: Дек. 2009  


Помог: 0 раз(а)




Здравствуйте. Только постигаю VBS.
Есть файл 111.txt в котором в столбец записаны имена компов.
Комп грузится, находит своё имя и стирает его.
В принципе поиск своего имени реалезован, но не могу сообразить как его стереть.
пытаюсь так:
CODE (htmlphp):
скопировать код в буфер обмена
  1. Set tf = fso.OpenTextFile("с:111.txt", 1)'открываю файл
  2. Do Until tf.AtEndOfStream 'пока не наступит конец файла
  3. str = tf.ReadLine'читаю строку
  4.  

если строка соответствует имени компа то нужно её стереть, перезаписать
вот тут то и не могу сообразить, что мне теперь делать с
 
 Top
Строитель
Отправлено: 19 Октября, 2018 - 16:27:34
Post Id



Участник


Покинул форум
Сообщений всего: 1363
Дата рег-ции: Февр. 2014  
Откуда: Украина


Помог: 55 раз(а)




Набросал пример на VBA, проверил в MS Word - работает корректно. При необходимости допилите его под VBS. В переменную need запишете искомую подстроку, а в переменную repl - значение для замены. Если замена не требуется (только удаление), тогда оставьте переменную repl как есть:
CODE (html):
скопировать код в буфер обмена
  1. Sub StrReplace()
  2. '
  3. ' Поиск и замена подстрок в текстовом файле
  4. '
  5.     Dim fso, txtFile As Object
  6.     Dim str, need, repl, fname As String
  7.     Set fso = CreateObject("Scripting.FileSystemObject")
  8.        
  9.     fname = "С:\111.txt"
  10.     need = "" 'Что ищем
  11.     repl = "" 'На что меняем
  12.    
  13.     Set txtFile = fso.OpenTextFile(fname, 1)
  14.     str = txtFile.ReadAll
  15.     txtFile.Close
  16.    
  17.     str = Replace(str, need, repl)
  18.     Kill fname
  19.    
  20.     Set txtFile = fso.CreateTextFile(fname, True)
  21.     txtFile.Write (str)
  22.     txtFile.Close
  23.    
  24. End Sub
 
 Top
Axiles
Отправлено: 22 Октября, 2018 - 10:01:22
Post Id


Гость


Покинул форум
Сообщений всего: 86
Дата рег-ции: Дек. 2009  


Помог: 0 раз(а)




Хммм.
Если я правильно понял:
-открыли файл для чтения
-считали всё содержимое
-закрыли файл
-заменили найденные подстроки (кстати не знал что реплейс может вот так вот сразу весь массив реплеснуть. думал нада по строкам...)
-Kill fname это что? удалили файл?
-создали файл заново
-записали в него
-закрыли

я уже хотел примерно по такому же пути идти, только через одно место ), а оказывается всё гораздо проще)
 
 Top
Строитель
Отправлено: 22 Октября, 2018 - 11:55:13
Post Id



Участник


Покинул форум
Сообщений всего: 1363
Дата рег-ции: Февр. 2014  
Откуда: Украина


Помог: 55 раз(а)




Axiles пишет:
Если я правильно понял ...
Да, правильно.
Axiles пишет:
Kill fname это что? удалили файл?
Да, это удаление файла.
 
 Top
Axiles
Отправлено: 23 Октября, 2018 - 05:33:08
Post Id


Гость


Покинул форум
Сообщений всего: 86
Дата рег-ции: Дек. 2009  


Помог: 0 раз(а)




А вот такой вопрос.
Может получиться так, что один комп запустил скрипт с ервера, удалил файл, но ещё не создал новый, в это время другой комп запускает этот же скрипт, а файла то нету!
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« JavaScript & VBScript »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB