VBS: Удаление слов между первой запятыми

Программирование на Active Server Pages и VBScript.
DIMMon
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 13.04.2015 (Пн) 16:16

VBS: Удаление слов между первой запятыми

Сообщение DIMMon » 13.04.2015 (Пн) 16:47

Здравствуйте! Нужна помощь в решении задачи:
в каждой строке надо удалить слова между 1-ой и 2-ой, 2-ой и 3-й запятыми. Возможно ли это сделать на VBS?

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16473
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: VBS: Удаление слов между первой запятыми

Сообщение Хакер » 13.04.2015 (Пн) 17:02

Можно.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

DIMMon
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 13.04.2015 (Пн) 16:16

Re: VBS: Удаление слов между первой запятыми

Сообщение DIMMon » 13.04.2015 (Пн) 17:14

А можно подсказать как?

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: VBS: Удаление слов между первой запятыми

Сообщение alibek » 13.04.2015 (Пн) 17:41

Split/Join.
Lasciate ogni speranza, voi ch'entrate.

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 13.04.2015 (Пн) 17:46

Я бы регулярные выражения применил. (Вроде, в VBS они есть?)
При желании можно и через InStr сделать.
А вариант со Split-Join мне не нравится - там ещё пляска с выкидыванием элементов и ресайзом массива будет.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re:

Сообщение alibek » 13.04.2015 (Пн) 17:48

Qwertiy писал(а):там ещё пляска с выкидыванием элементов и ресайзом массива будет.

Какая еще пляска?
Ресайз вообще не нужен, достаточно обнулить элемент массива.
Lasciate ogni speranza, voi ch'entrate.

DIMMon
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 13.04.2015 (Пн) 16:16

Re: VBS: Удаление слов между первой запятыми

Сообщение DIMMon » 13.04.2015 (Пн) 17:49

кто-нибудь может привести пример двух вариантов, чтобы определиться?

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 13.04.2015 (Пн) 17:57

alibek писал(а):Ресайз вообще не нужен, достаточно обнулить элемент массива.

Если запятые надо оставить - то да, просто присвоить пустые строки.
А вот если тоже удалить, как я подумал сначала, то придётся постараться.

DIMMon писал(а):кто-нибудь может привести пример двух вариантов, чтобы определиться?

Я не помню, как в VBS делаются регулярки. Заменя такая (javascript): "123,456,789,012,345,678".replace(/^([^,]+),[^,]+,[^,]+,/, "$1,,,"), результат: 123,,,012,345,678
С InStr всё просто, только надо аккуратно просчитать индексы. В InStr можно последним параметром передавать позицию, откуда искать - вот туда передать позицию запятой плюс 1. Ну и аккуратненько это Mid$'ом повырезать и объединить.

DIMMon
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 13.04.2015 (Пн) 16:16

Re: VBS: Удаление слов между первой запятыми

Сообщение DIMMon » 14.04.2015 (Вт) 10:03

А что вариант на VBS никто не сможет предложить? Ну подскажите тогда как заменить все слова из списка в файле на пустые ? Ну очень надо очистить файл от ненужных данных.

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4147
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Re: VBS: Удаление слов между первой запятыми

Сообщение Mikle » 14.04.2015 (Вт) 10:29

DIMMon писал(а):вариант на VBS никто не сможет предложить?

InStr, Mid$ - это всё как раз на VBS.
DIMMon писал(а): Ну подскажите тогда как заменить все слова из списка в файле на пустые ? Ну очень надо очистить файл от ненужных данных.

Открываешь файл в блокноте, там есть функция замены одних слов на другие.
Только тебе на самом деле это не надо, тебе надо курсовик решить, а ты тут кого-то обмануть пытаешься.

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 14.04.2015 (Вт) 10:48

Mikle писал(а):тебе надо курсовик решить, а ты тут кого-то обмануть пытаешься

С каких пор скрипта на десяток строк для этого достаточно? :shock:

ALX_2002
Мега гуру
Мега гуру
 
Сообщения: 2054
Зарегистрирован: 25.11.2002 (Пн) 20:03

Re: VBS: Удаление слов между первой запятыми

Сообщение ALX_2002 » 14.04.2015 (Вт) 11:38

Один из вариантов решения.
Код: Выделить всё
Option Explicit
Dim s, a
s = "1,2,3,4,5,6,7"
'Делим строку по запятым и получаем массив.
a = Split(s, ",")
'Заменяем на пустоту элементы 1 и 2 так как отсчёт идёт с нуля
a(1) = ""
a(2) = ""
'Собираем строку обратно
s = Join(a, ",")
MsgBox s


Вернуться в ASP и VBScript

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3

    TopList