» Главная
eXcode.ru » Статьи » Базы данных
» Новости
» Опросы
» Файлы
» Журнал



Пользователей: 0
Гостей: 7





Работа со строками в MS Access




Автор: Dmitry Shakhov

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

Поиск последнего символа в строке, например, последней точки в имени файла для определения расширения или последнего слэша в пути к файлу для определения имени файла в пути.


′Вызов функции
MsgBox FndSmb(".","main.html")
′Сама функция
Public Function FndSmb(smb As String, stroka As String) As Long
Dim a As Long
Dim b As Long
a = 1
While a > 0
b = a
a = InStr(a + 1, stroka, smb)
Wend
FndSmb = b
End Function


Замена символа или последовательности символов, чем-то похоже на одноименную функцию в РНР. Пришлось написать, когда возникла необходимость в использовании формул, задаваемых пользователем. Проблема была в том, что внутри кода разделитель мантиссы запятая, а вот для фукнции Eval нужна точка. В итоге получилась гораздо более функциональная вещь.
P.S. Начиная с версии 2000 в MSA есть функция replace(). Так что можете пользоваться ею.


′Вызов функции
MsgBox str_replace(",",".","9,9*10,17")
′Сама функция
Public Function str_replace(s1 As String, s2 As String, s As String) As String
Dim n1 As Long
Dim n2 As Long
Dim v1 As String
Dim v2 As String
Dim v3 As String

v3 = s
n2 = 1
n1 = InStr(n2, s, s1)

If n1 > 0 Then
Do
v1 = Mid(v3, 1, n1 - 1)
v2 = Mid(v3, n1 + Len(s1), Len(v3) - n1)
v3 = v1 & s2 & v2
n2 = n1 + Len(s2)
n1 = InStr(n2, v3, s1)
Loop Until n1 < 1
End If

str_replace = v3
End Function


Более сложная функция для получения элемента из строки с разделителями. Возникла из задачи, когда в одном поле таблицы оказались данные, которые необходимо было разнести по разным столбцам.
Опять же в РНР такая функция есть (split), а вот в MSA нет.


′Вызов функции
MsgBox ExpandStr("Waw;2347859;dfskgdkf",";",2) ′2347859
′Сама функция
Public Function ExpandStr(stroka As String, Razdel As String, numpos As Long)
Dim n1 As Long
Dim s1 As String
Dim v1 As String
Dim v2 As String
Dim v3 As String
Dim i As Long

v3 = stroka
s1 = Razdel
n1 = InStr(1, v3, s1)
i = 0

If n1 > 0 Then
Do
v1 = Mid(v3, 1, n1 - 1) ′возвращает слово до поисковой строки
v2 = Mid(v3, n1 + Len(s1), Len(v3) - n1) ′возвращает слово после поисковой строки
v3 = v2 ′склейка
n1 = InStr(1, v3, s1) ′выполняем новый поиск подстроки
i = i + 1
Loop Until n1 < 1 Or i >= numpos ′если такой подстроки нет, то обрываем поиск
End If
If n1 < 1 And i < numpos Then
ExpandStr = v2
Else
ExpandStr = v1
End If
End Function
К началу статьи





Добавил: LedWormДата публикации: 2005-07-16 20:19:39
Рейтинг статьи:3.00 [Голосов 5]Кол-во просмотров: 51516

Комментарии читателей

Всего комментариев: 1887

2018-04-06 23:19:50
KennethBok
ВСЕГО ОДНА КАПСУЛА В ДЕНЬ
и ты будешь заниматься сексом ежедневно по 2-3 часа!
В любом возрасте и без побочных эффектов

ОСТАЛОСЬ: 14 УПАКОВОК

Гарантирует мощную, устойчивую эрекцию в любом возрасте
Продлевает половой акт до 2-х часов
В 3 раза увеличивает количество спермы при эякуляции
Продлевает твой оргазм на 15-20 секунд

Сайт: https://eroctive2.blogspot.ru/

2018-03-17 19:11:40
AntonioDut
Здесь, брал жене дородовой бандаж, потом и послеродовой, реально советую.
Доставка хорошая, операторы нормальные.
<a href=http://www.17rub.ru/>Магазин ортопедических изделий</a>
<a href=http://www.17rub.ru/17rub_ru_sitemap_html/>Все товары Ортопедия</a>
<a href=http://www.17rub.ru/Tapochki_Massazhnye-Ckamnyami_razmery-4041gARMONIYA-massage-slipper_29419017/>40 41</a><a href=http://www.17rub.ru/Tapochki-massazhnye-c-Kamnyami__razmery_-36_37__GARMONIYA___Massage_Slipper__29419018/>"Гармония"</a>

2018-03-13 15:46:51
Dtlpzfy
Платим за лайки! - Оплата ежедневно!

Наш сервис предоставляет настоящие лайки на фото заказчиков, которые готовы платить за качество.

Именно для этого мы и набираем удалённых сотрудников, которые будут выполнять работу, то есть ставить лайки и получить за это деньги.

Чтобы стать нашим удалённым сотрудником и начать ставить лайки, зарабатывая при этом 45 рублей за 1 поставленный лайк,

достаточно просто зарегистрироваться на нашем сервисе. > www.vk-like.tk <

Вывод заработанных средств ежедневно в течении нескольких минут.

2018-03-11 19:02:21
Jwunmza
Предлагаем Вам работу без вложений, на системе автоматического приёма и обработки заказов.

Мы предоставляем:

- Наш лицезионный софт.
- документы со всей необходимой доп. информацией.
- постоянная техническая поддержка.

Оплата от 5500 в день. Выплаты ежедневно.

Более подробная информация на нашем сайте >> www.zakaz.exrabota.ru <<

2018-02-20 07:31:45
CraigVet
Приобрести можно на веб-сайте http://mang.bestseller-super.ru

Хотим предложить нашим клиентам инновационное средство для снижения веса сироп Мангустина. С ним можно избавиться от 10 кг за 2 недели.

Растение мангостан растет в Таиланде. Плоды растения имеют потрясающие свойства. Во флаконе содержится около 25 плодов данного удивительного растения. Плоды с растения мангкут помогают убрать лишнюю жировую ткань. И отлично воздействуют на организм в комплексе. Специфика производства средства, и уникальная упаковка помогают сохранить все полезные свойства дерева.

Главным компонентом сиропа Мангустина являются плоды с растения гарциния, в которых содержится большое число питательных веществ. Благодаря веществу окиси дифениленкетона, которое в огромных дозах имеется в плодах, сильно притормаживаются окислительные процессы в организме. Ксантон считается одним из самых мощных антиоксидантов. В плодах растения гарциния к тому же есть различные витамины и элементы. Купить сироп Мансустина можно на веб-сайте http://mangoo77.mangoosteen.com.


2018-02-20 01:40:54
CraigVet
Приобрести можно на веб-сайте http://mang.bestseller-super.ru

Предлагаем нашим покупателям инновационное средство для снижения веса сироп Мангустина. При помощи него возможно избавиться от 15 kg за 14 дней.

Растение гарциния произрастает на Филиппинах. Плоды данного дерева обладают потрясающими свойствами, которые были положены в основу сиропа Mangoosteen. В банке содержится более 20 плодов этого удивительного растения. Плоды растения мангкут помогают убрать лишнюю жировую ткань. И положительно воздействуют на человека в целом. Технология производства препарата, и уникальная упаковка позволяют сохранить все полезные свойства дерева.

Основным действующим компонентом сиропа Мангустина являются фрукты с дерева мангостан, в них содержится большое число полезных элементов. Благодаря компоненту ксантону, которое в огромных дозах содержатся в плоде, значительно замедляются окислительные процессы в теле. Окись дифениленкетона является одним из наиболее сильных антиоксидантов. В плоде растения гарциния к тому же есть различные группы витаминов и микроэлементы. Купить сироп Мансустина возможно на интернет-сайте http://mangjoo77.mangoosteen.com.


2018-02-19 17:59:13
Greyypo
Срочно нужны деньги?
- http://bit.ly/2oQUzUu
Выдача в день сделки займа онлайн на карту за 25 мин. Заказать здесь: [url=http://bit.ly/2pJ9LnO]Денежные переводы[/url]

*money**

2018-02-19 17:59:11
Greyypo
Срочно нужны деньги?
- http://bit.ly/2oQUzUu
Выдача в день сделки займа онлайн на карту за 25 мин. Заказать здесь: [url=http://bit.ly/2pJ9LnO]Денежные переводы[/url]

*money**

2018-02-01 19:00:01
Craigmup
Срочно нужны деньги?
[url=http://bit.ly/2DFvjcc]деньги в долг на карту[/url]
Выдача кредита онлайн на карту через 25 мин. Получить здесь: http://bit.ly/2GqEuPd
_z*

2018-01-30 02:52:19
Greyjrj
Проблемы на финансовом рынке?
- кредит долг
Выдача займа онлайн на карту за 25 мин. Смотрите здесь: [url=http://bit.ly/2BzNIJs]взять займ[/url]
QuickZaim
[url=http://bit.ly/2sZTcpv]мгновенный займ без[/url]
*money**
Ваше имя: *
Текст записи: *
Имя:

Пароль:



Регистрация

Какой жанр комп. игр вам нравится?
Стратегии
24% (55)
Action
17% (39)
RPG
36% (82)
RTS
1% (3)
Симуляторы
8% (18)
Квесты
7% (15)
Логические
3% (6)
Другой
5% (11)

Проголосовало: 229
IN ternet SEXplorer - русская поисковая программа для порносайтов.
Рейтинг: 0/10 (0)
Посмотреть все анекдоты