Форум программистов, компьютерный форум, киберфорум
Наши страницы
MS Access
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
sardinka
0 / 0 / 0
Регистрация: 13.12.2007
Сообщений: 87
#1

Remove

28.05.2008, 18:56. Просмотров 1525. Ответов 11
Метки нет (Все метки)

kak v Accesse lyche ydalit is fileda snaki '#' ili ''? Pri etom chobu sapis ostalas v field, no bez etogo snaka.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.05.2008, 18:56
Ответы с готовыми решениями:

Реализовать аппликативный оператор MY-REMOVE-IF с интерфейсом и семантикой, аналогично стандартному REMOVE-IF
Реализовать аппликативный оператор MY-REMOVE-IF с интерфейсом и семантикой,...

Функция remove() удаляет только заранее запланированые файлы, выдавая ошибку на remove (STRING)
Салем, начал изучать файловую работу в С++, и столкнулся с такой проблемой, что...

Remove
Ребята, подскажите, почему на # apt-get remove rhythmbox удаляется также и...

ArrayList.remove()
Есть такой код. ArrayList<NewClass> list = new ArrayList<NewClass>(); ...

Remove() не работает
Доброй ночи) помогите разобраться с проблемой. ...

11
msd
28.05.2008, 22:17 #2
Пишем функцию:
Visual Basic
1
2
3
4
5
6
Function DelChar(MyString, DelimiterChar)
Splitted = Split(MyString, DelimiterChar)
For i = 0 To UBound(Splitted) - 1
DelChar = DelChar + Splitted(i)
Next i
End Function
где
MyString - собственно исходная строка
DelimiterChar - символ, который надо удалить
возвращает строку без означенных символов

Хотим, например, запросом таблицу обновить:
SQL
1
UPDATE MyTable SET MyField=DelChar([MyField],'#')
Хотим просто строку обработать:
Visual Basic
1
ResultString=DelChar('Разделенная*звездочками*строка','*')
результат: Разделеннаязвездочкамистрока
msd
28.05.2008, 22:22 #3
Либо такой вариант (надеюсь, никто это не увидит):
Открываем таблицу в окне БД. Меню Правка -> Замена. Образец поиска '#'. На что заменить оставляем пустым. : ))))
sardinka
0 / 0 / 0
Регистрация: 13.12.2007
Сообщений: 87
29.05.2008, 00:12  [ТС] #4
Ya napisala tak:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
Function ZapZips(name As String) As String
'converts tire ('-') vspaces in a string
Dim x
Dim y
' Name= rs!address
y = Len(name)
x = InStr(name, '-')
If x > 0 Then
    ZapZips = Left(name, (x - 1)) & ' ' & Right(name, (y - x))
Else
    ZapZips = name
End If
End Function
No pri etom ya ne mogy ismenit esli y menya popadetcya ne '-' a naprimer '#' ili she ' '. Podskashite kak eto sdelat?
0
msd
31.05.2008, 01:58 #5
Такая функция будет убирать только первое тире в строке. А их может быть, например, несколько.
Та функция, которую я написал, убирает все знаки. Теоретически, если надо убрать три знака, функцию надо запустить 3 раза с разными параметрами.
Например:
Name=DelChar(Name,'#')
Name=DelChar(Name,'-')
Name=DelChar(Name,'/')

Можно эти символы где-нибудь хранить, например, в таблице и вызывать функцию в цикле с пробегом по этой таблице.

Либо, если этих символов именно три, можно переписать:

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Function DelChar(MyString)
 
Splitted = Split(MyString, '#')
For i = 0 To UBound(Splitted) - 1
tmpSTR = tmpSTR + Splitted(i)
Next i
 
Splitted = Split(tmpSTR, '-')
tmpSTR=''
For i = 0 To UBound(Splitted) - 1
tmpSTR = tmpSTR + Splitted(i)
Next i
 
Splitted = Split(tmpSTR, '/')
tmpSTR=''
For i = 0 To UBound(Splitted) - 1
tmpSTR = tmpSTR + Splitted(i)
Next i
 
DelChar=tmpStr
 
End Function
Тогда все символы будут удаляться за один проход. Хотя выигрыша в скорости в сравнении с циклическим вызовом практически не будет.
oldpasp
1 / 1 / 2
Регистрация: 23.06.2007
Сообщений: 362
31.05.2008, 20:03 #6
А все-таки, почему напрочь игнорируется функция Replace ?
0
msd
01.06.2008, 12:14 #7
И то верно... : )) Правда, функция Replace только в 2000-м появилась.
sardinka
0 / 0 / 0
Регистрация: 13.12.2007
Сообщений: 87
01.06.2008, 19:22  [ТС] #8
Po kakoito prichine y menya ne compiliruetcya 'Split'. Ya ispolsyu Access 97.
0
pl
51 / 17 / 6
Регистрация: 18.05.2007
Сообщений: 1,322
01.06.2008, 20:29 #9
Акцесовский VB вроде ограничен, там не все VBScript функции есть, можно обойти таким путем
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Function RemoveTags(strng As Variant)
    If Len(strng) > 0 Then
        Dim regEx
        Set regEx = CreateObject('VBScript.RegExp') 'New RegExp
        With regEx
            .IgnoreCase = True
            .Global = True
            .Pattern = '(<[^>]*>)|(&[^;]*;)'
            RemoveTags = .Replace(strng, ' ')
        End With
        Set regEx = Nothing
    Else
        RemoveTags = ''
    End If
End Function
так же и реплейс наверное можно сделать.
0
msd
01.06.2008, 20:55 #10
Точно! Split тоже только в 2000-м появился.
sardinka
0 / 0 / 0
Регистрация: 13.12.2007
Сообщений: 87
01.06.2008, 23:20  [ТС] #11
Mogli bu vu dat bolshe commentariev ob etoi linii:
Pattern = '(<[^>]*>)|(&[^;]*'
K soshaleniu ya ne ponimau ee.
0
skan
03.06.2008, 02:15 #12
to msd:
>Либо такой вариант (надеюсь, никто это не увидит):

увидит увидит... Не сразу, но увидит...
Про правый клик как альтернативу уж не будем вспоминать...))
03.06.2008, 02:15
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.06.2008, 02:15

List<T>.Remove
У меня есть List&lt;T&gt; (where T : IEquatable&lt;T&gt;). Когда я напишу...

Процедура Remove
Помогите написать программу Описать процедуру Remove(A,N,X) удаляющую...

Функция .remove()
Есть следующий код: $(document).ready(function() { ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru