powered by simpleCommunicator - 2.0.29     © 2024 Programmizd 02
Map
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Проблема с strtran
12 сообщений из 12, страница 1 из 1
Проблема с strtran
    #40087897
glamis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Потребовалось дополнительно обработать строку. Хотел применить strtran. Примерно так:

s1='for i=1 to ThisFormset.repalias'
s2='Thisformset.repalias'

?strt(s1, s2, '_v1', -1, -1, 3)

Но выяснилось, что 3-й параметр использовался только до 7-й версии.

Может кто знает как обработать?
...
Рейтинг: 0 / 0
Проблема с strtran
    #40087927
Sergey Sizov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
glamis,
вспомнить/открыть для себя наличие функций STRT oFile() и STRT ran(), у которых, однако, первые четыре символа таки совпадают.
Исходя из этого таки явно указать фоксу нужную функцию, а не надеяться на отсутствующий у него искусственный интеллект.
...
Рейтинг: 0 / 0
Проблема с strtran
    #40088131
glamis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey Sizov,
Оценил Вашу язвительность.

Достойная способность вместо ответа сказать банальность.

Просто, чтобы сказать.
...
Рейтинг: 0 / 0
Проблема с strtran
    #40088170
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Он имел в виду, что в версии VFP6 была введена функция strToFile(). Как следствие, первые 4 символа "strt" с этого момента стали соответствовать двум функциям: strTran() и strToFile()

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

У функции StrTran() количество параметров не менялось со времен fpd2.x. В версии VFP9 по прежнему 6 параметров
У функции StrToFile() всего 3 параметра. Возможно, именно с ней и произошла путаница
...
Рейтинг: 0 / 0
Проблема с strtran
    #40088425
glamis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВладимирМ,
о чем вы друзья? Прочитайте 1ю строку, там все написано о чем речь. И при работе с редактором он однозначно трактует strt как strtrans. Причем здесь strtofile?
Вопрос про преобразование строки.

Как оказалось, параметр чувствительности strtran работал до 7й версии. Есть у кого варианты решения? Только не надо программных решений-я это сделал уже. Только не красиво. Не люблю лишний код.
...
Рейтинг: 0 / 0
Проблема с strtran
    #40088458
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Фразу "3-й параметр" я понял как параметр с порядковым номером 3. Кто же знал, что речь идет о параметре с порядковым номером 6 и его значении "3"

2. Этот параметр был введен в версии VFP7. Т.е. использовался начиная с версии VFP7 и ПОСЛЕ, но никак не "до".

3. Вы не указали версию, о которой идет речь. По умолчанию, это подразумевает последнюю версию. Т.е. VFP9. Это значит, что параметр есть.

Все вместе, вызывает недоумение. О чем вообще вопрос-то был?


Если речь идет о замене подстроки без учета регистра, то первое, что приходит в голову, это сначала перевести весь текст в один регистр через UPPER() или LOWER(), а потом делать замену

Код: sql
1.
2.
3.
4.
s1=UPPER('for i=1 to ThisFormset.repalias')
s2=UPPER('Thisformset.repalias')

?strt(s1, s2, UPPER('_v1'), -1, -1, 3)
...
Рейтинг: 0 / 0
Проблема с strtran
    #40088473
Фотография Redrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"ничиго нипанимаю" (с)
в чем "проблема"?

?strt(s1, s2, '_v1', -1, -1, 3)
выдает "Too many arguments"

в то время как

?strtRAN(s1, s2, '_v1', -1, -1, 3)
прекрасно работает! -> for i=1 to _v1
...
Рейтинг: 0 / 0
Проблема с strtran
    #40088594
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Автор не смог корректно описать проблему. Попробую за него

Функция StrTran() по умолчанию различает регистр букв. Т.е. для нее большие и маленькие буквы - это разные буквы

Код: sql
1.
?StrTran("Aa", "a", "b")  && вернет "Ab"



В версии VFP7 в эту функцию был добавлен еще один параметр (6 по счету), при помощи которого можно явным образом указать - учитывать регистр букв или нет. Например

Код: sql
1.
?StrTran("Aa", "a", "b", -1, -1, 3)  && вернет "bb"



Вопрос в том, как при использовании функции StrTran() в версии младше VFP7 сделать эту функцию регистро-независимой? Т.е. чтобы замена выполнялась вне зависимости от того, большая буква или маленькая.

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

Код: sql
1.
?StrTran(LOWER("Aa"), LOWER("a"), LOWER("b"))  && вернет "bb"
...
Рейтинг: 0 / 0
Проблема с strtran
    #40088675
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВладимирМ



Собственно, ответ очевиден .


Код: sql
1.
?StrTran(LOWER("Aa"), LOWER("a"), LOWER("b"))  && вернет "bb"


что веренет VFP7+ ?StrTran("xAaY", "a", "b", -1, -1, 3)?

что веренет VFP7+ ?StrTran("xAzaZY", "aZ", "bC", -1, -1, 3)?

.....
stax
...
Рейтинг: 0 / 0
Проблема с strtran
    #40088727
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stax

В исходном вопросе речь идет о поиске фрагмента строки "ThisFormset.repalias", когда одну из букв не в том регистре указали.

А, в общем случае, конечно, просто приведение регистра к общему значению не всегда будет работать корректно.
...
Рейтинг: 0 / 0
Проблема с strtran
    #40088786
glamis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВладимирМ,
просто обработать не получится.
Вообще странно:
Если пишешь strt и указываешь 3-5 параметров все работает как надо, если пишешь strt и указываешь 6 параметров - ошибка.
Но если strtran - все работает как надо.
...
Рейтинг: 0 / 0
Проблема с strtran
    #40088794
glamis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тема закрыта
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Проблема с strtran
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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