Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.06.2011, 16:20   #1
aimk0
Пользователь
 
Регистрация: 05.05.2010
Сообщений: 35
По умолчанию Удаление пробелов в строке

Добрый день!
Есть таблица(Access), нужно удалить пробелы в строках(между словами в строке, перед и после строки).
Для удаления между словами пробовал использовать replace
Код:
SELECT REPLACE(naim, ' ', '') FROM table1
Функция Replace не поддерживается...
Есть еще какие-нибудь способы удаления пробелов?
aimk0 вне форума Ответить с цитированием
Старый 16.06.2011, 16:30   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А функция trim()?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 16.06.2011, 16:37   #3
D-mon
Форумчанин
 
Регистрация: 22.06.2007
Сообщений: 414
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
А функция trim()?
LTrim и RTrim, и Trim - удаляют пробелы слева, сврава и слева/права соответвсвенно... А если надо удалить в середине строки
Нет невыполнимых задач, всё дело времени...
D-mon вне форума Ответить с цитированием
Старый 16.06.2011, 16:40   #4
D-mon
Форумчанин
 
Регистрация: 22.06.2007
Сообщений: 414
По умолчанию

Цитата:
Сообщение от aimk0 Посмотреть сообщение
Добрый день!
Есть таблица(Access), нужно удалить пробелы в строках(между словами в строке, перед и после строки).
Для удаления между словами пробовал использовать replace
Код:
SELECT REPLACE(naim, ' ', '') FROM table1
Функция Replace не поддерживается...
Есть еще какие-нибудь способы удаления пробелов?
http://www.techonthenet.com/access/f...ng/replace.php
Нет невыполнимых задач, всё дело времени...
D-mon вне форума Ответить с цитированием
Старый 17.06.2011, 06:46   #5
rdama
Форумчанин
 
Аватар для rdama
 
Регистрация: 25.07.2009
Сообщений: 533
По умолчанию

AnsiReplaceStr(Исходная строка,что меняем, на что меняем)
Но это уже не в запросе.
Маразм крепчал. Еноты пели...
R-style Dataknowlege Access Member Account (RDAMA)
rdama вне форума Ответить с цитированием
Старый 17.06.2011, 07:40   #6
Sparkman
220400
Форумчанин
 
Аватар для Sparkman
 
Регистрация: 21.05.2010
Сообщений: 726
По умолчанию

1) Alt+F11;
2) слева щелкаем правой кнопкой мыши на имени БД;
3) выбираем Insert -> Module;
4) в появившемся модуле пишем
Код:
Public Function Replace97(strExpression As String, _
                     strFind As String, _
                     strReplace As String, _
                     Optional lngStart As Long = 1, _
                     Optional lngCount As Long = -1, _
                     Optional vbcCompare As VbCompareMethod = -1) As String
'strExpression - исходная строка в которой выполняется поиск
'strFind - искомая подстрока
'strReplace - новое значение
'lngStart - Необязательный. стартовая позиция, по умолчанию с 1-й
'lngCount - Необязательный. Количество замен, по умолчанию без ограничения
'vbcCompare - Необязательный. Указывает способ сравнения строк. см. Hepl по InStr()
    
    
    Dim intPos As Integer, lngFCount As Long
    Dim strFinishExpression As String
    
   strExpression = Mid$(strExpression, lngStart)
    If (vbcCompare = -1) Then
       intPos = InStr(lngStart, strExpression, strFind)
    Else
       intPos = InStr(lngStart, strExpression, strFind, vbcCompare)
    End If
    
    While (lngCount <> 0) And (intPos > 0) And (lngCount <> lngFCount)
       strFinishExpression = strFinishExpression & Left$(strExpression, intPos - 1) & strReplace
       strExpression = Mid$(strExpression, intPos + Len(strFind))
       lngFCount = lngFCount + 1
       If (vbcCompare = -1) Then
           intPos = InStr(lngStart, strExpression, strFind)
       Else
           intPos = InStr(lngStart, strExpression, strFind, vbcCompare)
       End If
   Wend
   Replace97 = strFinishExpression & strExpression
End Function
5) используем в запросе Replace97(strExpression As String, _
strFind As String, _
strReplace As String, _
Optional lngStart As Long = 1, _
Optional lngCount As Long = -1, _
Optional vbcCompare As VbCompareMethod = -1).

пс: функцию дернул отсюда
пс2: в офисе 2007 функция replace уже есть.
Cерьёзной помощи не ждите - помогаю в перерывах на "перекур".
Не существует ничего невозможного для человека, который не собирается ничего делать сам.
Не учите человека, если вы не его учитель.
Sparkman вне форума Ответить с цитированием
Старый 17.06.2011, 09:11   #7
aimk0
Пользователь
 
Регистрация: 05.05.2010
Сообщений: 35
По умолчанию

Всем спасибо!
Пока сделал через AnsiReplaceStr, все работает, только в uses надо было еще добавить StrUtils.
Можно еще использовать StringReplace - заменяет одну или несколько подстрок в заданной строке, результат такой же.
aimk0 вне форума Ответить с цитированием
Старый 17.06.2011, 09:14   #8
rdama
Форумчанин
 
Аватар для rdama
 
Регистрация: 25.07.2009
Сообщений: 533
По умолчанию

Да забыл про StrUtils.
Кстати Sparkman, а как твой вариант будет жить с отключенными макросами?
Маразм крепчал. Еноты пели...
R-style Dataknowlege Access Member Account (RDAMA)
rdama вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
поиск пробелов в строке на Assembler'е Antrikot Помощь студентам 1 22.08.2010 06:24
Удаление пробелов на C++ REztor Помощь студентам 1 02.11.2009 20:36
как в строке вставить n-ое количество пробелов Marinka91 Паскаль, Turbo Pascal, PascalABC.NET 18 14.08.2009 13:33
Удаление пробелов Иван 883 Помощь студентам 1 20.04.2009 22:23
Подсчёт пробелов в ведённой строке prikolist Общие вопросы C/C++ 10 10.04.2009 15:52