Гость
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / замена символов в таблице. / 15 сообщений из 15, страница 1 из 1
14.09.2011, 10:18
    #37439443
Zloi_87
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
замена символов в таблице.
Всем здрасссти!!! У меня такой интересный вопрос. Можно ли заменить определенное количество символов в записи,(например с 7 го по 16) и, если да, то как???
...
Рейтинг: 0 / 0
14.09.2011, 10:21
    #37439447
IgorNG
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
замена символов в таблице.
Zloi_87,

Возвращает подстроку из заданного символьного выражения или поля типа memo, начиная с указанной позиции в этом символьном выражении или поле типа memo и содержащую указанное количество символов.


SUBSTR(cExpression, nStartPosition [, nCharactersReturned])



Параметры
cExpression

Указывает символьное выражение или имя поля типа memo, из которого извлекается подстрока.
nStartPosition

Указывает позицию символа в символьном выражении или в поле типа memo, начиная с которого извлекается подстрока. Нумерация символов в строке cExpression начинается с 1. Замечание:
Если значение nStartPosition превышает количество символов в строке cExpression, функция SUBSTR( ) возвращает пустую строку ("").


[nCharactersReturned]

Указывает количество символов в возвращаемой из cExpression подстроке. Если вы опустите этот параметр, будут возвращены все символы, оставшиеся до конца исходной строки.
Возвращаемое значение
Символьное. Функция SUBSTR( ) возвращает символьную строку.

Замечание:
Функция SUBSTR( ) не возвращает значение поля типа memo, если она введена в окне отладки Debug. Для того, чтобы вернуть значение из поля типа memo в окне отладки, используйте имя такого поля в качестве аргумента функции ALLTRIM( ) и поместите функцию ALLTRIM( ) внутри функции SUBSTR( ).


Примечания
Когда функция SUBSTR( ) используется с полями типа memo в команде SQL SELECT, применяйте функцию PADR( ) внутри функции SUBSTR( ) с тем, чтобы получить правильный результат в случае, когда возвращается пустое значение или строка недостаточной
...
Рейтинг: 0 / 0
14.09.2011, 10:22
    #37439451
igorbik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
замена символов в таблице.
Zloi_87,

Копай в сторону CHRTRAN( ) или STRTRAN( )
...
Рейтинг: 0 / 0
14.09.2011, 10:39
    #37439478
Zloi_87
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
замена символов в таблице.
IgorNGZloi_87,

Возвращает подстроку из заданного символьного выражения или поля типа memo, начиная с указанной позиции в этом символьном выражении или поле типа memo и содержащую указанное количество символов.


SUBSTR(cExpression, nStartPosition [, nCharactersReturned])

IgorNG, брат, справку к вфп я уже перерыл, и сабстр не подходит. он лишь возвращает определенное количество символов. мне же надо заменить их. например в записи 39J0YXT0ZOPERATOR 1 нужно заменить OPERATOR на MIHAMiha. пробовал SUBSTR, не получилось.
...
Рейтинг: 0 / 0
14.09.2011, 10:43
    #37439488
Zloi_87
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
замена символов в таблице.
igorbikZloi_87,

Копай в сторону CHRTRAN( ) или STRTRAN( )


тож не то, мне нужно поменять несколько сотен записей, а каждая из них уникальна, т.е я не знаю их значения. Вопрос стоит так: нужно поменять с 10 по 18 символ, не принимая во внимание их значений.
...
Рейтинг: 0 / 0
14.09.2011, 10:50
    #37439495
IgorNG
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
замена символов в таблице.
Zloi_87,

Так вопрос нужно правильно ставить. Ты же написал с 7 по 16. Теперь пишешь, что конкретно OPERATOR

Смотри, как уже сказали CHRTRAN, STRTRAN, STUFF
...
Рейтинг: 0 / 0
14.09.2011, 11:01
    #37439514
IgorNG
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
замена символов в таблице.
Zloi_87,

Можно так:
REPLACE(поле) WITH LEFT(поле, 9) + "тра-та-та" + RIGHT(поле, LEN(поле) - 18)
...
Рейтинг: 0 / 0
14.09.2011, 11:09
    #37439527
Zloi_87
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
замена символов в таблице.
IgorNGZloi_87,

Так вопрос нужно правильно ставить. Ты же написал с 7 по 16. Теперь пишешь, что конкретно OPERATOR

Смотри, как уже сказали CHRTRAN, STRTRAN, STUFF

CHRTRAN, STRTRAN не подходят. ТАМ УНИКАЛЬНЫЕ ЗАПИСИ, МНОГО!!!!!несколько сотен. и не обязательно OPERATOR. они формируются программой в процессе рабоы, и те символы, которые надо менять, содержат инфу о компе и пользователе. надо конкретно поменять с 10 по 18 символы на MIHAMiha. пробовал так:

STUFF (kluch, 10, 18, MIHAMiha) * ругается, вариабля MIHAMiha нот фоунд.
пробовал так:

STUFF (kluch, 10, 18, "MIHAMiha") * проходит гладко, не ругаясь, смотришь таблицу, никаких изменений.

или тут надо создавать еще один столбец, записявать туда MIHAMiha и оттеда танцевать????
...
Рейтинг: 0 / 0
14.09.2011, 11:15
    #37439543
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
замена символов в таблице.
Для изменения занчения поля таблицы используется команда REPLACE

Код: plaintext
REPLACE kluch WITH STUFF(kluch,  10 ,  18 , "MIHAMiha")
...
Рейтинг: 0 / 0
14.09.2011, 11:25
    #37439563
Zloi_87
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
замена символов в таблице.
ВладимирМ,

теплее!!!!

Код: plaintext
REPLACE ALL kluch WITH STUFF(kluch,  10 ,  18 , "MIHAMiha")

тока один минус. поле kluch (С19) а так он сносит мне последнюю цифру.
...
Рейтинг: 0 / 0
14.09.2011, 11:28
    #37439570
IgorNG
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
замена символов в таблице.
Zloi_87IgorNGZloi_87,

Так вопрос нужно правильно ставить. Ты же написал с 7 по 16. Теперь пишешь, что конкретно OPERATOR

Смотри, как уже сказали CHRTRAN, STRTRAN, STUFF

CHRTRAN, STRTRAN не подходят. ТАМ УНИКАЛЬНЫЕ ЗАПИСИ, МНОГО!!!!!несколько сотен. и не обязательно OPERATOR. они формируются программой в процессе рабоы, и те символы, которые надо менять, содержат инфу о компе и пользователе. надо конкретно поменять с 10 по 18 символы на MIHAMiha. пробовал так:

STUFF (kluch, 10, 18, MIHAMiha) * ругается, вариабля MIHAMiha нот фоунд.
пробовал так:

STUFF (kluch, 10, 18, "MIHAMiha") * проходит гладко, не ругаясь, смотришь таблицу, никаких изменений.

или тут надо создавать еще один столбец, записявать туда MIHAMiha и оттеда танцевать????

Я же написал REPLACE поле WITH а зде то, что тебе подходит
...
Рейтинг: 0 / 0
14.09.2011, 12:06
    #37439681
Zloi_87
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
замена символов в таблице.
[quot IgorNG]Zloi_87пропущено...

Я же написал REPLACE поле WITH а зде то, что тебе подходит


О! а так даже лучше!!! ток я чет проморгал, когда ты это писал. Рахмет!!!! теперь работать полегче будет. а то в ручную это все заносить, надоело. да и не по_админски это как то, не царское это дело!!! еще раз огромное СПАСИБО!!!!
...
Рейтинг: 0 / 0
14.09.2011, 12:11
    #37439695
IgorNG
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
замена символов в таблице.
[quot Zloi_87]IgorNGпропущено...



О! а так даже лучше!!! ток я чет проморгал, когда ты это писал. Рахмет!!!! теперь работать полегче будет. а то в ручную это все заносить, надоело. да и не по_админски это как то, не царское это дело!!! еще раз огромное СПАСИБО!!!!

REPLACE (поле) WITH LEFT(поле, 9) + "тра-та-та" + RIGHT(поле, LEN(поле) - 18) ALL
...
Рейтинг: 0 / 0
21.09.2011, 11:57
    #37449461
Zloi_87
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
замена символов в таблице.
[quot IgorNG]Zloi_87пропущено...


REPLACE (поле) WITH LEFT(поле, 9) + "тра-та-та" + RIGHT(поле, LEN(поле) - 18) ALL

Попробовал так. Нет, брат, не идет. Эта команда ПРИБАВЛЯЕТ символы, а не меняет. хотя и стоит REPLACE. Мож я чет не так делаю???

REPLACE ID WITH LEFT (ID,13) + "331108" + RIGHT (ID, LEN(ID)-11) ALL

ID(С29), и сносятся ровно последние 6 символов.
...
Рейтинг: 0 / 0
21.09.2011, 12:13
    #37449497
Zloi_87
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
замена символов в таблице.
[quot Zloi_87]IgorNGпропущено...

REPLACE ID WITH LEFT (ID,13) + "331108" + RIGHT (ID, LEN(ID)-11) ALL

ID(С29), и сносятся ровно последние 6 символов.


Вот что значит 9 классов образования. LEN( )указывает длинну выражения.

Код: plaintext
REPLACE ID WITH LEFT (ID, 13 ) + "331108" + RIGHT (ID, LEN(ID)- 19 ) ALL

Так будет правильно.
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / замена символов в таблице. / 15 сообщений из 15, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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