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



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





Работа со строками в 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]Кол-во просмотров: 50330

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

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

2017-12-12 05:41:57
SarkomTot
Основные преимущества мойки с самообслуживанием перед простой мойкой

Современный отечественный автомобиль — это довольно сложное техническое устройство, которое нуждается в нежной эксплуатации и постоянном техническом обслуживании. Мойка легкового автомобиля является обязательным элементом технического обслуживания, потому что она дает возможность не просто сделать вашу машину визуально как новенькую, но и защитить от ржавления сам кузов авто, продлив время его службы.

В последние 7 лет все большей и большей популярностью по всему миру, в том числе и в нашей стране, начинают пользоваться мойки-самообслуживание и причин этому можно отыскать сразу несколько.

Основной аргумент в пользу [url=https://washercar.ru/]оборудование для моек самообслуживания[/url] — это заметная экономия денежных средств на периодической мойке авто, в сравнении с с использованием обычной портальной автомойки.

Приехав на мойку с самообслуживанием, вы будете платить просто за использование оборудования и места на автомойке, причем тарифы тут предельно щадящие. Еще большей экономичности можно добиться, если применять собственные косметические средства автохимии, а не искать их на мойке.

2017-12-10 05:21:13
Marinabug
С 9:00 до 21:00 ежедневно, без выходных,
опытные юристы, бесплатно проконсультируют вас, по самым сложным вопросам.
Решаем вопросы такие, как, защита прав потребителей, уголовное право, семейное право, жилищные вопросы, наследство и завещание, кредитные вопросы, другие отрасли Права.
<b>Звоните сейчас</b><>/url]
<a href=http://cozopros.ru/besplatnaya-yuridicheskaya-pomoshh-2/><img>http://cozopros.ru/wp-content/uploads/2017/09/jurist.jpg</img></a><b> Бывают ли пьяные мальчики?</b><a href=http://cozopros.ru/byvayut-li-pyanye-malchiki//><img>http://cozopros.ru/wp-content/uploads/2017/11/pianny_malchik-300x300.png</img></a>
<a href=http://cozopros.ru/prezidentskie-vybory-ili-karnavalnoe-shou/>Президентские выборы или карнавальное шоу?</a>

2017-12-07 16:47:52
Faxpwrj
Интересная подработка в интернете. Приглашаются люди, желающие работать и зарабатывать.
График свободный. Оплата сдельная. Оплата каждый день или по заявке. Стабильно!
Ваш возраст и образование значения не имеют. Обязательные условия: наличие компьютера и интернета.
Более подробная информация у нас на сайте. > www.click-likes.tk <

2017-12-03 14:39:57
Юлия
Платим за лайки! - Оплата ежедневно!

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

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

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

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

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

2017-12-02 11:39:25
Traceet
<a href=http://mayki-ok.ru>футболка россиЯ-хоккей</a>


[url=http://mayki-ok.ru][img]http://s56.radikal.ru/i154/1709/dc/973da1467063.png[/img][/url]


[url=http://mayki-ok.ru]купить футболку с рунами[/url]

2017-12-02 11:39:25
Traceej
Мы ценим Ваше время и делим с Вами общие цели. Ваше продвижение для нас главный приоритет.
Наши услуги: Сбор различных баз для продвижения в интернете
Продвигаем сайты в ТОП-10
Заказажите продвижение Вашего сайта. Писать в ICQ 656310373

2017-12-02 03:31:03
Traceee
<a href=http://mayki-ok.ru>майки команд nba</a>


[url=http://mayki-ok.ru][img]http://s019.radikal.ru/i626/1709/e4/766342e689d8.jpg[/img][/url]


[url=http://mayki-ok.ru]майкаин известь[/url]

2017-12-02 03:30:54
Traceeq
Мы умеем ценить Ваше время и разделяем с Вами общие цели. Продвижение Вашего продукта для нас главный приоритет.
Наши услуги: Базы для Xrumer на заказ
Трафик на ваш сайт
Заказажите продвижение Вашей услуги. Писать в ICQ 656310373

2017-11-30 12:18:53
EthanToics
WeiЯ nicht, wo man kaufen Gesundes Creme-Wachs von Psoriasis in Rostow am Don? In unserem Internet kцnnen Wachs, Propolis und Bienengift profitieren, denn die Creme enthдlt Zutaten, die auf Produkten basieren ...

Offiziellen Website: http://zdorov.bxox.info

2017-11-30 08:32:46
EthanToics
Wie man eine natьrliche Creme fьr die Haut mit Propolis vorbereitet. Dann gieЯen Sie das Цl mit Propolis aus der Flasche in eine kleine Tasse und Wasser, rьhren Sie die Creme mit einem Holzstab, bis sich das Wachs lцst.

Offiziellen Website: http://zdorov.bxox.info
Ваше имя: *
Текст записи: *
Имя:

Пароль:



Регистрация

Какие книги вам больше нравятся?
Приключения
7% (12)
Фантастика и фэнтези
30% (50)
Детективы
5% (8)
Ужасы
0% (0)
Юмористические
1% (2)
Учебники и энциклопедии
12% (20)
Спец. литературу
22% (37)
Я не умею читать :(
17% (28)
Другие
5% (9)

Проголосовало: 166
Звонок Пользователя в службу поддержки.
- Алло, это служба поддержки???
- Да.
- У меня проблема, мой модем не хочет работать!!!
- Давайте пропишем Вам строчку инициализации.
- Давайте.
- AT&F1&M5
- Спасибо!!!Через 5 минут.
- У меня все еще не работает!!!
- Да??? Ну давайте запишите другую
- Я слушаю
- ATS10=100
- Спасибо!
Проходит еще 5 минут...
- У меня Модем все еще плохо работает!!!
- Ну что, пишите еще одну строчку...
- Слушаю.
- AT&F&B1&A0&S0=90
- Спасибо. Прошло еще 5 минут...
- Алло!!! У меня сгорел модем!!!
- Жаль, а то у меня еще столько в запасе строчек инициализаций осталось...
Рейтинг: 5.6/10 (5)
Посмотреть все анекдоты