ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Вопрос по Excel
  #1  
Старый 10.07.2009, 11:25
Аватар для BlackSilver
BlackSilver
Познающий
Регистрация: 30.01.2009
Сообщений: 30
Провел на форуме:
75077

Репутация: 14
По умолчанию Вопрос по Excel

Я настолько обыдлился, что генерирую исходник в Excel.
И столкнулся с такой проблемой: в одной ячейке есть строка типа IdTypeFactor. Нужно её программно преобразовать до строки id_type_factor. То есть самое сложное - перед каждой заглавной буквой ставить подчерк. Или наоборот, после каждого подчерка букву делать заглавной.
Есть идеи?
 
Ответить с цитированием

  #2  
Старый 10.07.2009, 11:38
Аватар для FireFenix
FireFenix
Постоянный
Регистрация: 03.06.2009
Сообщений: 385
Провел на форуме:
3178262

Репутация: 389
По умолчанию

1) Проверять коды символов, если относится к диапазону заглавных - то разделять подчёркиванием
2) Брать каждый символ, и принудительно делать его заглавным, и сравнивать с оригиналом, типа
VB : If char = UCase(char) Then ... Else ... End Id
PHP : if (char == strtoupper(char)) {} else {}
3) Юзать регулярку типа [A-ZА-Я]
a) С модом возврата смещения и по массиву смещений вхождений получаем позицию каждого заглавного символа и воротим что хотим
б) Заменять символ нижний регистр + подчёркивание

Последний раз редактировалось FireFenix; 10.07.2009 в 11:48..
 
Ответить с цитированием

  #3  
Старый 10.07.2009, 11:38
Аватар для m0nsieur
m0nsieur
Участник форума
Регистрация: 08.04.2008
Сообщений: 242
Провел на форуме:
2230263

Репутация: 229
По умолчанию

del...недопонял ТС
 
Ответить с цитированием

  #4  
Старый 10.07.2009, 12:37
Аватар для BlackSilver
BlackSilver
Познающий
Регистрация: 30.01.2009
Сообщений: 30
Провел на форуме:
75077

Репутация: 14
По умолчанию

под конец вышло такое
Код:
Function ToField(str) As String
    Dim res As String
    Dim subs As String
    For i = 0 To Len(str) - 1
        subs = str.Substring(i, 1)
        If subs = UCase(subs) Then res = res + "_"
        res = res + subs
    Next i
    ToField = res
End Function
Удаление подчерка в начале и опускание букв уже в ячейке сделаю.
Вот только как теперь заставить таблицу пользоваться этой функцией. Не видит...
 
Ответить с цитированием

  #5  
Старый 10.07.2009, 13:40
Аватар для FireFenix
FireFenix
Постоянный
Регистрация: 03.06.2009
Сообщений: 385
Провел на форуме:
3178262

Репутация: 389
По умолчанию

Что значит не видит?
Когда ты запускаешь функцию?
 
Ответить с цитированием

  #6  
Старый 10.07.2009, 13:50
Аватар для BlackSilver
BlackSilver
Познающий
Регистрация: 30.01.2009
Сообщений: 30
Провел на форуме:
75077

Репутация: 14
По умолчанию

Когда пишу в ячейке =ToField(A2)
 
Ответить с цитированием

  #7  
Старый 10.07.2009, 14:01
Аватар для FireFenix
FireFenix
Постоянный
Регистрация: 03.06.2009
Сообщений: 385
Провел на форуме:
3178262

Репутация: 389
По умолчанию

А чё оно должно собсно работать?
ToField функция не экзеля, а VBA
Приделая на событие к ячейки или добавь ещё контролы, которые по нажатию/изменению/etc будут вызывать функцию
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ВКонтакте "счастливый фермер" ЖенькО Социальные сети 309 22.07.2009 11:35
ESET: обнаружены трояны, использующие уязвимость в Excel tinyM Мировые новости 3 09.03.2009 03:31
Proxy FAQ foreva Чужие Статьи 12 04.01.2008 12:15
Интернетчики задали российскому президенту очень странные вопросы podkashey Мировые новости 4 07.07.2006 16:53
Microsoft warns of Excel 0-day attack Dracula4ever Forum for discussion of ANTICHAT 0 17.06.2006 15:03



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ