powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Разделить строку на части.
9 сообщений из 9, страница 1 из 1
Разделить строку на части.
    #36729758
Dag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день!
Требуется функция для разделения строки на части определенной длины с соблюдением правил переноса русского языка.
Например
Исходная строка="Мама мыла раму."
длина1=8
длина2=20
Результат "Мама мы-"+"ла раму."
Кто-нибудь писал подобное? Бросьте, пожалуйста, ссылочку.
...
Рейтинг: 0 / 0
Разделить строку на части.
    #36747062
thunder2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dag,
Только как рекомендация.
Делайте ЦИКЛ по строке пока она не кончиться (DO WHILE LEN(st1)<>0). В ЦИКЛЕ выбирайте подстроку длинной d1
Код: plaintext
1.
AUX1=SUBSTR(str1, 1 ,d1)
и проверяйте последний символ. Если он в списке гласных
Код: plaintext
1.
OCCURS(UPPAER(RIGHT(AUX1, 1 )),'АЕЁИОУЫЯЭ')> 0  
выбранный кусок добавляйте в массив, исходную строку уменьшаете на выделенный кусок от начала
Код: plaintext
1.
str1=RighT(str1,len(str1)-d1)
если наткнулись на согласную, то ищите с конца AUX1 гласную.
Ну вот как-то так.
...
Рейтинг: 0 / 0
Разделить строку на части.
    #36747067
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
thunder2,

набиваем посты? как ваша функция разделит слово "длинношеее"?
...
Рейтинг: 0 / 0
Разделить строку на части.
    #36747107
reware
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DagДобрый день!
Требуется функция для разделения строки на части определенной длины с соблюдением правил переноса русского языка.
Например
Исходная строка="Мама мыла раму."
длина1=8
длина2=20
Результат "Мама мы-"+"ла раму."
Кто-нибудь писал подобное? Бросьте, пожалуйста, ссылочку.
Щазз, вам ссылочек накидают, не захлебнитесь. Изобретайте сами. Вначале поймите толком свою задачу, прежде чем спрашивать. Разбить "Маму" на "мыла" и "раму" не есть проблем. Проблем возникает с соблюдением правил переноса русского языка.
...
Рейтинг: 0 / 0
Разделить строку на части.
    #37325981
imbahunt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Помогите плиз. Вот такие строки как раздейлить
PFR-500-Y-2011-ORG-060-010-000000-DCK-00001-DPT-000000-DCK-00000.XML
"PFR-500-Y-2011-ORG-060-" это удалить ( тут нечего не меняется всегда постоянная часть)
и -DCK-00001-DPT-000000-DCK-00000.XML ( сдесь DCK-00001 цифра может быть от нуля до 99999 )
в итоге должно выйти 060-010-001124 - этот номер тоже разный в каждой строке
Спасибо.
...
Рейтинг: 0 / 0
Разделить строку на части.
    #37325994
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
lcString = "PFR-500-Y-2011-ORG-060-010-000000-DCK-00001-DPT-000000-DCK-00000.XML"
?GetWordNum(m.lcString,  6 , "-") + "-" + GetWordNum(m.lcString,  7 , "-") + "-" + GetWordNum(m.lcString,  8 , "-")
...
Рейтинг: 0 / 0
Разделить строку на части.
    #37326011
imbahunt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо большое. режет)
Только как это применить допустим есть table1 и эти строки в поле a1
записать рузультат в новое поле которое уже есть (b1) или в новую таблицу
...
Рейтинг: 0 / 0
Разделить строку на части.
    #37326154
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если поле b1 уже существует

Код: plaintext
1.
select MyTab
REPLACE ALL b1 WITH GetWordNum(a1,  6 , "-") + "-" + GetWordNum(a1,  7 , "-") + "-" + GetWordNum(a1,  8 , "-")

или

Код: plaintext
1.
2.
UPDATE MyTab ;
SET b1 = GetWordNum(a1,  6 , "-") + "-" + GetWordNum(a1,  7 , "-") + "-" + GetWordNum(a1,  8 , "-")

Выборка в новую таблицу

Код: plaintext
1.
2.
3.
4.
select ;
    a1, ;
    CAST(GetWordNum(a1,  6 , "-") + "-" + GetWordNum(a1,  7 , "-") + "-" + GetWordNum(a1,  8 , "-")  as C( 14 )) as b1 ;
from MyTab
...
Рейтинг: 0 / 0
Разделить строку на части.
    #37326173
imbahunt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо ещё раз.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Разделить строку на части.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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