Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Как у строки убрать пробелы в конце ?
|
|||
|---|---|---|---|
|
#18+
Как у строки убрать пробелы в конце ? 1. Есть ли такая функция у COS ? 2. В программе на COS можно ли эту задачу выполнить функциями басика? Dim MyVar MyVar = LTrim(" Caché ") 'MyVar contains "Caché ". MyVar = RTrim(" Caché ") 'MyVar contains " Caché". MyVar = Trim(" Caché ") 'MyVar contains "Caché". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2005, 16:43 |
|
||
|
Как у строки убрать пробелы в конце ?
|
|||
|---|---|---|---|
|
#18+
Смотри описание функции $ZSTRIP ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2005, 17:01 |
|
||
|
Как у строки убрать пробелы в конце ?
|
|||
|---|---|---|---|
|
#18+
LittleCatСмотри описание функции $ZSTRIP s t=$p(t_" "," ") если пробелов внутри t не много ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2005, 08:45 |
|
||
|
Как у строки убрать пробелы в конце ?
|
|||
|---|---|---|---|
|
#18+
RT(S) F Q:$E(S,$L(S))'=" " S S=$E(S,0,$L(S)-1) Q S ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2005, 12:43 |
|
||
|
Как у строки убрать пробелы в конце ?
|
|||
|---|---|---|---|
|
#18+
BEZsimv(P,Str); Р - строка, Str - удаляемый символ N (P,Str) S P1=P,P="",L=0 F N=1:1:$L(P1,Str) I $P(P1,Str,N)'="" D .S L=L+1,$P(P,Str,L)=$P(P1,Str,N) Q P Удаляёт символ, заданый в переменной Str, лидирующий, в конце, дубликаты ... особенно часто пользую для пробела ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2006, 10:31 |
|
||
|
Как у строки убрать пробелы в конце ?
|
|||
|---|---|---|---|
|
#18+
Sergo GromovBEZsimv(P,Str); Р - строка, Str - удаляемый символ N (P,Str) S P1=P,P="",L=0 F N=1:1:$L(P1,Str) I $P(P1,Str,N)'="" D .S L=L+1,$P(P,Str,L)=$P(P1,Str,N) Q P Удаляёт символ, заданый в переменной Str, лидирующий, в конце, дубликаты ... особенно часто пользую для пробела Сергей вопрос не по теме - команда N (P,Str) не напрягает ли слишком процесс на M ввиду того что ВСЕ лок перемен система как то скрывает. а это много и долго ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2006, 16:50 |
|
||
|
Как у строки убрать пробелы в конце ?
|
|||
|---|---|---|---|
|
#18+
у меня вот так получилось.. NoSP(str) s dlina=$l(str) f i=$l(str," "):-1 d q:$l($p(str," ",i))>0 .s:$l($p(str," ",i))=0 dlina=dlina-1 s newstr=$e(str,1,dlina) q newstr ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2006, 03:25 |
|
||
|
Как у строки убрать пробелы в конце ?
|
|||
|---|---|---|---|
|
#18+
MX -- ALEX.... вопрос не по теме - команда N (P,Str) не напрягает ли слишком процесс на M ввиду того что ВСЕ лок перемен система как то скрывает. а это много и долго ? Прошу прощения, я немного не понял вопроса :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2006, 11:02 |
|
||
|
Как у строки убрать пробелы в конце ?
|
|||
|---|---|---|---|
|
#18+
Sergo Gromov MX -- ALEX.... вопрос не по теме - команда N (P,Str) не напрягает ли слишком процесс на M ввиду того что ВСЕ лок перемен система как то скрывает. а это много и долго ? Прошу прощения, я немного не понял вопроса :( в том смысле что команда NEW (P,Str) должна как то скрыть присутствие ВСЕХ локальных переменных - например их 2000 в этот момент а это возможно цикл на 2000 ? и время потраченое ========= ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2006, 11:10 |
|
||
|
Как у строки убрать пробелы в конце ?
|
|||
|---|---|---|---|
|
#18+
Трудно говорить про вещи, не являясь разработчиком самого СУБД ...... Но насколько я понимаю - имеется некая область памяти, занятая лок.переменными. Команда NEW создаёт новую область для переменных, а при выходе из программы - удаляет новую область и устанавливает указатель на старую. Такой принцип работы наиболее логичный - переборка кому нужна ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2006, 11:13 |
|
||
|
Как у строки убрать пробелы в конце ?
|
|||
|---|---|---|---|
|
#18+
Если подсмотреть системные программы, то там делается вплоть до наоботот - объявляется обновление только тех переменных, которые будут использоваться программой. Что лучше/быстрее - сказать трудно. Но то что большинство утилит портируется ещё из позаверашних версий и по исполнению далеко от совершенства - так может и NEW там нелогично юзается :) Я в своих программах имею десяток переменных, что одинаковы во всех моих задачах - как то код раб.места, код пользователя, тек.дата ... ньюкаются переменные все кроме этих, а остальных - не много. Да и оперативки под М надо много для ньюканья 2000 переменных ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2006, 11:19 |
|
||
|
Как у строки убрать пробелы в конце ?
|
|||
|---|---|---|---|
|
#18+
Sergo GromovТрудно говорить про вещи, не являясь разработчиком самого СУБД ...... Но насколько я понимаю - имеется некая область памяти, занятая лок.переменными. Команда NEW создаёт новую область для переменных, а при выходе из программы - удаляет новую область и устанавливает указатель на старую. Такой принцип работы наиболее логичный - переборка кому нужна ? дзякую потестить что ли .. по уму как вроде не должно подсаживать в msm ум был хотя.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2006, 11:37 |
|
||
|
Как у строки убрать пробелы в конце ?
|
|||
|---|---|---|---|
|
#18+
New создает копии локальных переменных, исходные переменные заносятся в стек.После quit значение переменной считывается из стека. Жрет ресурсы использовать нежелательно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.02.2006, 18:01 |
|
||
|
Как у строки убрать пробелы в конце ?
|
|||
|---|---|---|---|
|
#18+
команда NEW (P,Str) должна как то скрыть присутствие ВСЕХ локальных переменных - например их 2000 в этот момент а это возможно цикл на 2000 ? и время потраченое ========= почему же всех ? ничего она не скрывает, о только создает новые копии P и Str... NEW (P,Str) в этот момент вам доступны 1998 ваших локальных переменных+2 копии переменных P и Str, а после QUIT вам доступны становяться и изначальные переменные P Str их значение и потомки... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2006, 15:45 |
|
||
|
Как у строки убрать пробелы в конце ?
|
|||
|---|---|---|---|
|
#18+
AlexanderYe команда NEW (P,Str) должна как то скрыть присутствие ВСЕХ локальных переменных - например их 2000 в этот момент а это возможно цикл на 2000 ? и время потраченое ========= почему же всех ? ничего она не скрывает, о только создает новые копии P и Str... NEW (P,Str) в этот момент вам доступны 1998 ваших локальных переменных+2 копии переменных P и Str, а после QUIT вам доступны становяться и изначальные переменные P Str их значение и потомки... Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2006, 16:57 |
|
||
|
Как у строки убрать пробелы в конце ?
|
|||
|---|---|---|---|
|
#18+
Прошу прощения. Перепутал выборочный NEW с исключающим-( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2006, 03:20 |
|
||
|
Как у строки убрать пробелы в конце ?
|
|||
|---|---|---|---|
|
#18+
Брацы ! Подкинул в одном топике функцию от Sergo спецам РСУБД-шникам, которыя сказки сказывали, шо пишут приложения на чистом sql. И вот шо получилася. Вчетвером лучшия представители сварганили на чистом sql вот енто: CREATE FUNCTION aaa( @fld VARCHAR(1000) ) RETURNS VARCHAR(1000) AS BEGIN DECLARE @t VARCHAR(1000) WHILE (1=1) BEGIN SET @t = REPLACE(@fld, ' ', ' ') IF @t = @fld BREAK SET @fld = @t END RETURN LTRIM( RTRIM(@fld) ) END Из чего можно заключить шо: 1) sql - процедурный язык; 2) на котором программы усегда в два раза длиннее чем на mumps; 3) функционал кода Sergo усе равно непосилен - низя удалить любой символ. Но ихний предводитель поднатужился и ужо не на чистом а на кристальначистом выдал вот такую абрукадабру: DECLARE @fld VARCHAR(1000) SET @fld = ' sdfbsdbvds d dfgb dfgdfb fdgdfgn fgdfgndfn ' SELECT REPLACE(REPLACE(REPLACE(RTRIM(LTRIM(@fld)), ' ', ' '+char(1)), char(1)+' ',''),char(1),'') Из чего можно заключить шо: 1) на кристальначистом низя повторно использовать код, а усе время нада его повторять; 2) ни на чистом, ни на кристальначистом функционал кода Sergo сделать окончательно низя. И призадумалось мне. Это шо же РСУБД совсем не конкурентноспособны, ежели по каждому такому пустяку такая бяда ? И шо с ними делать, ежели они со своими тухлыми продухтами лезут во все щели, як тараканы, и вешают лапшу на неокрепшие уши клиентов, не ведающих как дила абстаят на самом деле. Или тока на sql.ru такие спецы по sql, а в жизни усе сложнее, и на РСУБД можо хоть чаво-нибудь сделать окромя запросов к одной аграмадной таблице ? Шо думать ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2006, 14:01 |
|
||
|
Как у строки убрать пробелы в конце ?
|
|||
|---|---|---|---|
|
#18+
Вот немного я не понял, то-ли слэнга предыдущего выступающего, то-ли его высказываний ..... предложенный мною код чем хуже/лучше решенного на SQL ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2006, 10:53 |
|
||
|
Как у строки убрать пробелы в конце ?
|
|||
|---|---|---|---|
|
#18+
Sergo GromovВот немного я не понял, то-ли слэнга предыдущего выступающего, то-ли его высказываний ..... предложенный мною код чем хуже/лучше решенного на SQL ? Код красивый. Но тема более широкая. Видимо вопрос в том что сравнивать SQL и M - непродуктивно. М включает в себя достаточно развитые средства для работы со строками чистый SQL в этих ситуациях требует большего напряга от программиста. в М также легче например создать хранимую процедуру для последующего многократного использования. M может все и даже больше - но первоначальное изучение затруднено отсутствием русскоязычной доки и ценами на лицензии. SQL - хорош на стандартно-типовых запросах к большим базам, удобен тем что везде изучается и много литературы, есть бесплатные реализации, много людей на нем работают, не требует переделки запроса в случае изменения структуры базы данных (на М это не всегда возможно - зависит от применяемого дополнительго инструментария) сам язык построен на основе знакомых английских слов - что особенно нравится начинающим программистам и студентам. но чистый SQL затруднительно применять для сложных ситуаций - например для построения бизнес-логики налогообложения, для валютно-финансовых расчетов при колебаниях курсов. Там код становится далеко не таким красивым и удобочитаемым как хотелось бы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2006, 12:02 |
|
||
|
Как у строки убрать пробелы в конце ?
|
|||
|---|---|---|---|
|
#18+
На Cache Basic работает отлично, а главное минимальный код !!! Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 1. Удаляет пробелы в начале строки 2. в конце 3. в начале и конце ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2006, 15:46 |
|
||
|
Как у строки убрать пробелы в конце ?
|
|||
|---|---|---|---|
|
#18+
Русифицировал для Sergo Gromov текст токаря. Вроде бы понятно, что на SQL эквивалента просто нет. И сказать лучше/хуже, соответственно, не представляется возможным. "Предложил в одном топике функцию от Sergo Gromov специалистам по SQL и РСУБД, в связи с их утверждениями, что они пишут приложения баз данных на чистом SQL. В результате получился такой вариант кода на чистом (?) SQL: CREATE FUNCTION aaa( @fld VARCHAR(1000) ) RETURNS VARCHAR(1000) AS BEGIN DECLARE @t VARCHAR(1000) WHILE (1=1) BEGIN SET @t = REPLACE(@fld, ' ', ' ') IF @t = @fld BREAK SET @fld = @t END RETURN LTRIM( RTRIM(@fld) ) END Из чего можно заключить, что: 1) SQL - процедурный (а не декларативный) язык; 2) на котором программы (в части обработки данных - о чтении из БД отдельный разговор) в два раза длиннее чем на MUMPS; 3) и функционал кода Sergo Gromov не реализован - нельзя удалить ЛЮБОЙ символ. Есть и второй вариант, как бы на "более чистом" (?) SQL, автор которого оригинально использовал вложенную REPLACE с предварительной вставкой служебного символа после "срединных" пробелов: DECLARE @fld VARCHAR(1000) SET @fld = ' sdfbsdbvds d dfgb dfgdfb fdgdfgn fgdfgndfn ' SELECT REPLACE(REPLACE(REPLACE(RTRIM(LTRIM(@fld)), ' ', ' '+char(1)), char(1)+' ',''),char(1),'') И этот вариант не доделан, и получается, что: 1) нельзя повторно использовать код (не оформлена процедура/функция); 2) и снова функционал кода Sergo Gromov не реализован ! (как, кстати, и у Valeriu на Cache Basic - так что заманчивые RTRIM/LTRIM не проходят в обоих случаях). Складывается впечатление, что это определенная тенденция, то есть на самом деле приложения в РСУБД пишутся на нескольких языках, что вообще говоря плохо, и может быть, понимая это, специалисты по SQL и РСУБД "слегка преувеличивают" (но, надо заметить, систематически). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2006, 20:27 |
|
||
|
Как у строки убрать пробелы в конце ?
|
|||
|---|---|---|---|
|
#18+
пекарь...вариант кода на чистом (?) SQL : CREATE FUNCTION aaa( @fld VARCHAR(1000) ) RETURNS VARCHAR(1000) AS BEGIN DECLARE @t VARCHAR(1000) WHILE (1=1) BEGIN SET @t = REPLACE(@fld, ' ', ' ') IF @t = @fld BREAK SET @fld = @t END RETURN LTRIM( RTRIM(@fld) ) END Из чего можно заключить, что: 1) SQL - процедурный (а не декларативный) язык; 1) А с какого перепугу Вы решили, что приведенный код на "чистом SQL"? Лично я наблюдаю Transact-SQL ( процедурное расширение SQL)... пекарьСкладывается впечатление, что это определенная тенденция, то есть на самом деле приложения в РСУБД пишутся на нескольких языках, что вообще говоря плохо ... 2) А ПОЧЕМУ это плохо? 3) В том же топике, где опубликованы данные скрипты Вам уже заметили, что задача по удалению пробелов для сервера БД выглядит несколько странно (мягко говоря...) А Вы видеосигнал при помощи М не пытались оцифровывать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2006, 20:43 |
|
||
|
Как у строки убрать пробелы в конце ?
|
|||
|---|---|---|---|
|
#18+
Лично мне в "том топике" никто ничего не заметил. То, что Вы говорите, только подтверждает легкое, но систематическое, преувеличение. И зачем же нервная "оцифровка видеосигнала", когда речь идет о простейшей обработки строк для помещения в БД ? По всему видно, что Вы не можете написать код на чистом SQL (и даже на "процедурном SQL"). Остается только надеяться, что в будущем Вы и Ваши коллеги не будут "слегка преувеличивать". И как-то слегка неприлично (или самонадеянно ?) звучит опровержение мысли ведущих специалистов БД об очевидной пользе интегрированного языка. Ведь Вы вынуждены программировать на нескольких языках, так как в Вашем распоряжении нет интегрированного языка. То есть пока продолжаете слегка преувеличивать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2006, 21:14 |
|
||
|
Как у строки убрать пробелы в конце ?
|
|||
|---|---|---|---|
|
#18+
Шол бы ты, лекарь, лечить своих бедолаг в своих топиках. Или пиши код на чистом или кристальначистом, или иди в свой топик. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2006, 21:18 |
|
||
|
|

start [/forum/topic.php?fid=39&msg=33627515&tid=1559584]: |
0ms |
get settings: |
12ms |
get forum list: |
15ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
26ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
71ms |
get tp. blocked users: |
1ms |
| others: | 211ms |
| total: | 350ms |

| 0 / 0 |
