Гость
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Replace без учёта регистра символов / 7 сообщений из 7, страница 1 из 1
05.05.2012, 00:18
    #37782978
zenk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Replace без учёта регистра символов
Добрый день!

Работаю в PowerDesigner, он позволяет использовать скрипты на Visual Basic.

Есть в базе данных таблица, она, в частности, характеризуется двумя параметрами - Code (системное имя таблицы в базе данных), например LIST_OF_EMPLOYEES,
и Name, которое поясняет назначение таблицы для неподготовленного пользователя, например, "Справочник сотрудников".

Поскольку PowerDesigner не позволяет ОДНОВРЕМЕННО отображать Code и Name,
Name может вводиться как
"Справочник сотрудников LIST_OF_EMPLOYEES",
или как "Справочник сотрудников List_Of_Employees",
или как "Справочник сотрудников List_of_Employees".

Стоит задача из поля Name вырезать Code независими от регистра, в котором оно было когда-то введено в поле Name.

Replace(Name, Code, "") не находит вхождений при несовпадении регистра.

Не в цикле же обрабатывать строку с позиции InStr(UCase(Name), UCase(Code))
(оставим такую возможность на самый крайний случай).

Не поможете?
...
Рейтинг: 0 / 0
05.05.2012, 00:55
    #37782999
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Replace без учёта регистра символов
Может просто поиск с конца до первого пробела? Ведь имя таблицы не может содержать пробелов?
...
Рейтинг: 0 / 0
05.05.2012, 07:11
    #37783080
скукотища
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Replace без учёта регистра символов
> zenk
> Replace(Name, Code, "") не находит вхождений при несовпадении регистра.

Находит, надо только попросить
Код: vbnet
1.
2.
?replace("Справочник сотрудников List_of_Employees","LIST_OF_EMPLOYEES","", , ,1)
Справочник сотрудников 
...
Рейтинг: 0 / 0
05.05.2012, 08:31
    #37783123
zenk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Replace без учёта регистра символов
скукотища,

К сожалению, в моём диалекте VB это не проходит:

Код: vbnet
1.
Name = Trim(Replace(Name, Code, ""))


отрабатывает нормально (все вхождения, если они совпали по регистру символов, заменяются), а

Код: vbnet
1.
Name = Trim(Replace(Name, Code, "", , ,1)) 


выдаёт:
Ошибка выполнения Microsoft VBScript
Несоответствие типа (0x800A000D)
At line 57, character 16

К сожалению, не смог найти, какая версия VB включена в PowerDesigner в качестве встроенного редактора скриптов.

Нашёл только вот это упоминание:

авторYou can access PowerDesigner objects using any scripting language such as Java, VBScript or C# (C Sharp). However, the scripting language used to illustrate our examples in this chapter is VBScript.

VBScript is a Microsoft scripting language. PowerDesigner provides integrated support for Microsoft VBScript so that you can write and run scripts to interact with metamodel objects in a development environment using properties and methods .
...
Рейтинг: 0 / 0
05.05.2012, 09:07
    #37783139
studieren
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Replace без учёта регистра символов
zenk,

А в Вашей версии VB "Option Compare Binary" проходит?
...
Рейтинг: 0 / 0
05.05.2012, 09:35
    #37783174
zenk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Replace без учёта регистра символов
скукотища, studieren

Большое спасибо!

Подтолкнули к правильному решению:

Код: vbnet
1.
Name = Trim(Replace(Name, Code, "", 1, -1, 1))



Ещё раз спасибо
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
13.11.2016, 11:11
    #39346319
andreymx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Replace без учёта регистра символов
Бойцы парили несколько лет мне мозг, что вба-ёхель не заменяет построку без учета регистра
ща уже сам залез и шо я увидел :)
Код: vbnet
1.
s = Replace(s, ParName(i), ParVal(i), vbTextCompare)
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Replace без учёта регистра символов / 7 сообщений из 7, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]