Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / FoxPro, Visual FoxPro Новый топик    Ответить
 замена символов в таблице.  [new]
Zloi_87
Member

Откуда: Казахстан, Чу
Сообщений: 3743
Всем здрасссти!!! У меня такой интересный вопрос. Можно ли заменить определенное количество символов в записи,(например с 7 го по 16) и, если да, то как???
14 сен 11, 10:18    [11273540]     Ответить | Цитировать Сообщить модератору
 Re: замена символов в таблице.  [new]
IgorNG
Member

Откуда: Москва
Сообщений: 956
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( ) с тем, чтобы получить правильный результат в случае, когда возвращается пустое значение или строка недостаточной
14 сен 11, 10:21    [11273552]     Ответить | Цитировать Сообщить модератору
 Re: замена символов в таблице.  [new]
igorbik
Member

Откуда: Мск
Сообщений: 578
Zloi_87,

Копай в сторону CHRTRAN( ) или STRTRAN( )
14 сен 11, 10:22    [11273558]     Ответить | Цитировать Сообщить модератору
 Re: замена символов в таблице.  [new]
Zloi_87
Member

Откуда: Казахстан, Чу
Сообщений: 3743
IgorNG
Zloi_87,

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


SUBSTR(cExpression, nStartPosition [, nCharactersReturned])


IgorNG, брат, справку к вфп я уже перерыл, и сабстр не подходит. он лишь возвращает определенное количество символов. мне же надо заменить их. например в записи 39J0YXT0ZOPERATOR 1 нужно заменить OPERATOR на MIHAMiha. пробовал SUBSTR, не получилось.
14 сен 11, 10:39    [11273650]     Ответить | Цитировать Сообщить модератору
 Re: замена символов в таблице.  [new]
Zloi_87
Member

Откуда: Казахстан, Чу
Сообщений: 3743
igorbik
Zloi_87,

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



тож не то, мне нужно поменять несколько сотен записей, а каждая из них уникальна, т.е я не знаю их значения. Вопрос стоит так: нужно поменять с 10 по 18 символ, не принимая во внимание их значений.
14 сен 11, 10:43    [11273673]     Ответить | Цитировать Сообщить модератору
 Re: замена символов в таблице.  [new]
IgorNG
Member

Откуда: Москва
Сообщений: 956
Zloi_87,

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

Смотри, как уже сказали CHRTRAN, STRTRAN, STUFF
14 сен 11, 10:50    [11273713]     Ответить | Цитировать Сообщить модератору
 Re: замена символов в таблице.  [new]
IgorNG
Member

Откуда: Москва
Сообщений: 956
Zloi_87,

Можно так:
REPLACE(поле) WITH LEFT(поле, 9) + "тра-та-та" + RIGHT(поле, LEN(поле) - 18)
14 сен 11, 11:01    [11273788]     Ответить | Цитировать Сообщить модератору
 Re: замена символов в таблице.  [new]
Zloi_87
Member

Откуда: Казахстан, Чу
Сообщений: 3743
IgorNG
Zloi_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 и оттеда танцевать????
14 сен 11, 11:09    [11273839]     Ответить | Цитировать Сообщить модератору
 Re: замена символов в таблице.  [new]
ВладимирМ
Member

Откуда: г. Москва
Сообщений: 7864
Для изменения занчения поля таблицы используется команда REPLACE

REPLACE kluch WITH STUFF(kluch, 10, 18, "MIHAMiha")
14 сен 11, 11:15    [11273890]     Ответить | Цитировать Сообщить модератору
 Re: замена символов в таблице.  [new]
Zloi_87
Member

Откуда: Казахстан, Чу
Сообщений: 3743
ВладимирМ,

теплее!!!!

REPLACE ALL kluch WITH STUFF(kluch, 10, 18, "MIHAMiha")

тока один минус. поле kluch (С19) а так он сносит мне последнюю цифру.
14 сен 11, 11:25    [11273979]     Ответить | Цитировать Сообщить модератору
 Re: замена символов в таблице.  [new]
IgorNG
Member

Откуда: Москва
Сообщений: 956
Zloi_87
IgorNG
Zloi_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 а зде то, что тебе подходит
14 сен 11, 11:28    [11274012]     Ответить | Цитировать Сообщить модератору
 Re: замена символов в таблице.  [new]
Zloi_87
Member

Откуда: Казахстан, Чу
Сообщений: 3743
[quot IgorNG]
Zloi_87
пропущено...

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



О! а так даже лучше!!! ток я чет проморгал, когда ты это писал. Рахмет!!!! теперь работать полегче будет. а то в ручную это все заносить, надоело. да и не по_админски это как то, не царское это дело!!! еще раз огромное СПАСИБО!!!!
14 сен 11, 12:06    [11274420]     Ответить | Цитировать Сообщить модератору
 Re: замена символов в таблице.  [new]
IgorNG
Member

Откуда: Москва
Сообщений: 956
[quot Zloi_87]
IgorNG
пропущено...



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


REPLACE (поле) WITH LEFT(поле, 9) + "тра-та-та" + RIGHT(поле, LEN(поле) - 18) ALL
14 сен 11, 12:11    [11274474]     Ответить | Цитировать Сообщить модератору
 Re: замена символов в таблице.  [new]
Zloi_87
Member

Откуда: Казахстан, Чу
Сообщений: 3743
[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 символов.
21 сен 11, 11:57    [11310519]     Ответить | Цитировать Сообщить модератору
 Re: замена символов в таблице.  [new]
Zloi_87
Member

Откуда: Казахстан, Чу
Сообщений: 3743
[quot Zloi_87]
IgorNG
пропущено...

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

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



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

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

Так будет правильно.
21 сен 11, 12:13    [11310702]     Ответить | Цитировать Сообщить модератору
Все форумы / FoxPro, Visual FoxPro Ответить