Гость
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как убрать лишние нули из текстового поля? / 12 сообщений из 12, страница 1 из 1
19.06.2019, 10:36
    #39828185
archangel1408
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как убрать лишние нули из текстового поля?
Здравствуйте. Есть таблица в Access, в которой указаны номера кадастровых участков в формате "область:район:квартал:номер", например: 57:14:0050102:0012. Задача в том, чтобы автоматически убирать лишние нули после двоеточия:
57:14:0050102:012 -> 57:14:50102:12
57:14:0000000:135 -> 57:14:0:135 и т.д.
Проблема в том, что количество нулей может быть разным. Каким образом можно решить задачу в Access? До этого разбивали столбец по ":" в Excel, получалось что-то вроде 57|14|0|135 и уже в отдельном столбце формулой сцепляли значения, такой вариант в Access'e в принципе тоже бы устроил, но как реализовать это я не знаю. Заранее спасибо за советы.
...
Рейтинг: 0 / 0
19.06.2019, 10:54
    #39828202
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как убрать лишние нули из текстового поля?
archangel1408,
Код: vbnet
1.
2.
?replace("57:14:0050102:012","0","")
57:14:512:12
...
Рейтинг: 0 / 0
19.06.2019, 11:13
    #39828215
archangel1408
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как убрать лишние нули из текстового поля?
sdku,
не вариант, удалить нужно нули до первой цифры, которая больше нуля, здесь, например, номер квартала - 50102 (57:14:00 50102 :012)
...
Рейтинг: 0 / 0
19.06.2019, 11:15
    #39828218
4d_monster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как убрать лишние нули из текстового поля?
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
Public Function cutOf(strCode As String) As String
    Dim arrNumbers() As String
    Dim i As Long
    arrNumbers = Split(strCode, ":")
    For i = LBound(arrNumbers) To UBound(arrNumbers)
        arrNumbers(i) = Val(arrNumbers(i))
    Next i
    cutOf = Join(arrNumbers, ":")
End Function



Код: vbnet
1.
2.
?cutOf("57:14:0050102:012")
57:14:50102:12
...
Рейтинг: 0 / 0
19.06.2019, 11:18
    #39828223
Чотакакта
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как убрать лишние нули из текстового поля?
sdkuarchangel1408,
Код: vbnet
1.
2.
?replace("57:14:0050102:012","0","")
57:14:512:12

Топикстартеру нужно убирать только лидирующие нули, а ваш вариант убирает все, посему решение не подходит(

archangel1408,
вам нужно разбирать строку на составляющие (используя символ двоеточия в качестве разделителя отдельных строк), затем отдельные кусочки строк-цифр приводить к числу, после чего из чисел собирать строку обратно уже без лидирующих нулей.. Задача не сложная, но как мне видится простой одной-двумя командами не обойтись, нужно делать цикл
...
Рейтинг: 0 / 0
19.06.2019, 11:19
    #39828225
Чотакакта
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как убрать лишние нули из текстового поля?
какие тут шустрые отвечающие.. или я медленный)
сорри, в общем
...
Рейтинг: 0 / 0
19.06.2019, 11:26
    #39828233
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как убрать лишние нули из текстового поля?
если убрать "0" в начале группы и писать "0" если вся группа (цифры между ":") из "0" то так:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Function my(myTxt)
Dim myAr, i, str
myAr = Split(myTxt, ":")
For i = 0 To UBound(Split(myTxt, ":"))
       If myAr(i) = 0 Then
                    str = str & ":0"
            Else
                    str = str & ":" & Val(myAr(i))
      End If
Next
my = Mid(str, 2)
End Function

Код: vbnet
1.
2.
3.
4.
?my("57:14:0050102:012")
57:14:50102:12
?my("57:14:0000000:135")
57:14:0:135
...
Рейтинг: 0 / 0
19.06.2019, 15:21
    #39828408
alecko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как убрать лишние нули из текстового поля?
archangel1408,
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Public Function cutOf(strCode$) As String
const delimit$=":"
    Dim arrNumbers() As String
    Dim i As Long
    arrNumbers = Split(strCode, delimit)
    For i =0 To UBound(arrNumbers)
If arrNumbers(i)<>"" then
        arrNumbers(i) = CLng((arrNumbers(i)))
else
arrNumbers(i) ="0"
end if
    Next i
    cutOf = Join(arrNumbers, delimit)
End Function
?cutOf("57:14:0050102:012")
57:14:50102:12
...
Рейтинг: 0 / 0
20.06.2019, 04:35
    #39828611
Панург
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как убрать лишние нули из текстового поля?
Что-то никто не вспомнил про регулярные выражения...
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Public Function RemoveLeadingZero(strExpression As String) As String
Dim objRegExp As Object
On Error Resume Next
   
Set objRegExp = CreateObject("VBScript.RegExp")
objRegExp.Global = True
objRegExp.Pattern = "(?=:|\b)0+(?!:|$)"
RemoveLeadingZero = objRegExp.Replace(strExpression, vbNullString)
Set objRegExp = Nothing
End Function


Как-то так...
...
Рейтинг: 0 / 0
20.06.2019, 14:11
    #39828792
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как убрать лишние нули из текстового поля?
Панург,
Не просто не вспомнил,а даже не знал-порекомендуй что почитать и вообще это стоящее дело?
...
Рейтинг: 0 / 0
20.06.2019, 14:30
    #39828804
DarkMan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как убрать лишние нули из текстового поля?
sdkuПанург,
Не просто не вспомнил,а даже не знал-порекомендуй что почитать и вообще это стоящее дело?
Регулярные выражения

P.S В инете можно скачать электронную версию на халяву. :))
...
Рейтинг: 0 / 0
20.06.2019, 15:07
    #39828823
Панург
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как убрать лишние нули из текстового поля?
sdku, ну про книжки написали уже, Можно в сети посмотреть ресурсы - Объект RegExp
sdkuвообще это стоящее дело?Ну а как же!
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как убрать лишние нули из текстового поля? / 12 сообщений из 12, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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