СообЧа > База Знаний > Программирование > Visual Basic > Файлы и папки

Вопрос

Как убрать запятые из текста, текст находящийся в <> и отсортировать остаток в столбик.

Ответ

Пишешь поиск символов "," через InStr. Вот так:

no_symbol=InStr(no_symbol, file, ",")

Загоняешь в цикл. Каждый раз будет выдавать новое место запятой в тексте, и удаляешь это место. Далее заменяешь значение.

Mid(file, no_symbol, 1) = "."

В данном случае на точку. Для текста в кавычках ищешь открывающуюся кавычку, и закрывающуюся.

no_symbol1=InStr(no_symbol2, file, "<")
no_symbol2=InStr(no_symbol1, file, ">")


Выдаст место открывающейся и закрывающейся кавычки. Далее надо это место удалить, поступаем другим образом:

file=mid(file,0,no_symbol1) & mid(file,no_symbol2,len(file))

Вот мы и удалили все что надо. Теперь то же самое, только полностью в программном коде, никаких переменных я не объявлял.

find_symbol = ","
'что ищем
change_symbol = " "
'на что меняем
no_symbol = 1
'с какого символа начинаем
If Len(find_symbol) <> Len(change_symbol) Then Exit Sub
'порверяем, чтобы длина того что меняем не была разной и длиной на что
'меняем
For a = 1 To Len(file)
'а вдруг у нас весь файл в запятых?
no_symbol = InStr(no_symbol, file, ",")
'где это у нас там запятая?
Mid(file, no_symbol, Len(find_symbol)) = change_symbol
'меняем то что ищем на то что меняем
Next a


Тут надо еще поставить, чтобы при не нахождении запятой в данном случае, не было ошибки, и еще кое-что — в каждом случае ошибки будут разные. Чтобы удалить что то между символами — меняем цикл на:

find_symbol1 = "<"
'первый символ
find_symbol2 = ">"
'второй символ
no_symbol2 = 1
'это тоде изменить надо
For a = 1 To Len(file)
no_symbol1=InStr(no_symbol2, file, find_symbol1)
'ищем положение первого символа
no_symbol2=InStr(no_symbol1, file, find_symbol2)
'и второго
file=mid(file,0,no_symbol1) & mid(file,no_symbol2,len(file))
'удаляем
Next a


Илья П.



Copyright © 2000-2004 Сообщество Чайников
Контактная информация