powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Конвертация строки (помогите новичку)
20 сообщений из 20, страница 1 из 1
Конвертация строки (помогите новичку)
    #36769075
StrayXXX4U
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Приветствую, помогите новичку пожалуйста,
есть такая задача, на входе имеем строку вида:
[Имя_подразделения_код_справочника]

например:

Склад_0000010110
Кухня_0000002204

Нужно удалить все и на выходе получить число

т.е. для
Склад_0000010110 - 10110
Кухня_0000002204 - 2204

Делаю так:
s Value=$zstrip($g(Value),"*E'N")
i Value'="" s Value=+Value
q Value

но возвращает "0000010110", а как удалить лидирующие нули ?
...
Рейтинг: 0 / 0
Конвертация строки (помогите новичку)
    #36769092
doublefint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
USER>w +0000010110
10110
...
Рейтинг: 0 / 0
Конвертация строки (помогите новичку)
    #36769096
doublefint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
 s str="Склад_0000010110", code=+$p(str,"_", 2 )  w !,code
...
Рейтинг: 0 / 0
Конвертация строки (помогите новичку)
    #36769167
StrayXXX4U
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, очень помогло.
в понедельник первый раз столкнулся с таким зверем как м-аптека
даже не знаю. за что браться.
Столько всего надо сделать. как посмотрел язык - понял, что с наскока не освоить надо изучать.
...
Рейтинг: 0 / 0
Конвертация строки (помогите новичку)
    #36769357
ser_shu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
StrayXXX4Uдаже не знаю. за что браться.
Столько всего надо сделать. как посмотрел язык - понял, что с наскока не освоить надо изучать.
Могу порадовать - новички изучают язык за три дня :-)
А вот навороченные на этом языке технологии и инструментарий (интерсистемз или эскейп) потребуют гораздо большего времени...
...
Рейтинг: 0 / 0
Конвертация строки (помогите новичку)
    #36769363
StrayXXX4U
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за поздравления. Вот только ни ка не могу найти ни описания языка, его структур ни описание принципов функционирования самой БД. А задачи есть уже сейчас :)
Очень бы хотелось ссылочек на доки или если не жалко, какие нибудь материалы для "вгрызания"
...
Рейтинг: 0 / 0
Конвертация строки (помогите новичку)
    #36769398
ser_shu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
StrayXXX4U,

давно сам не изучал...
Новичкам давали кирстена и простые примеры, они сразу начинали простое писать без особых вопросов.
Полная на английском документация ставится вместе с каше. Там много примеров и общие справочники по языку удобные.
Вот ссылка с начальным описанием http://lusindane.at.tut.by/files/index.html
Здесь тоже материалы http://intersystems.ru/cache/devcorner/index.html
...
Рейтинг: 0 / 0
Конвертация строки (помогите новичку)
    #36770459
MX-9
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
StrayXXX4U,

http://www.minimdb.com/

как ни странно начинать изучение CACHE
лучше через MiniM

там неплохо раскрыт язык MUMPS
- стандартный для CACHE - MSM - MiniM -- и не только
...
Рейтинг: 0 / 0
Конвертация строки (помогите новичку)
    #36770539
Sergo Gromov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
За докой можно ко мне :)
...
Рейтинг: 0 / 0
Конвертация строки (помогите новичку)
    #36770699
Sergo Gromov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
doublefint
Код: plaintext
1.
2.
USER>w +0000010110
10110


У человека ведущие литеры .... плюс превратит в ноль

я бы предложил малость заморочливо:

S A="Склад_0000010110"
W +$TR(A,$TR(A,"1234567890"))

И поясню. первый (правый) $TR вырезает из переменной цифры и создаёт строку из не_цифр, второй (левый) $TR собственно вырезает из переменной все не_цифры, а плюс собственно отрезает незначащие нули доводя значение до числа
...
Рейтинг: 0 / 0
Конвертация строки (помогите новичку)
    #36770782
StrayXXX4U
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, убежал читать !
...
Рейтинг: 0 / 0
Конвертация строки (помогите новичку)
    #36770808
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergo Gromov, поясните, чем Ваш вариант лучше предложенного ранее:
Код: plaintext
s str="Склад_0000010110", code=+$p(str,"_", 2 )  w !,code
...
Рейтинг: 0 / 0
Конвертация строки (помогите новичку)
    #36770886
Alexey Maslov,

а где он говорил про то, что его вариант лучше?

но на самом деле это так, его вариант более общий

вы предложили варианты, топикстартер сам решит, что использовать.
...
Рейтинг: 0 / 0
Конвертация строки (помогите новичку)
    #36772447
StrayXXX4U
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Решил не создавать отдельную тему, спросить тут, так как вопрос опять же по форматированию строки.

есть две переменные code и kol
необходимо получить переменную res
в которой будет содержаться сначала переменная code с 1 по 20 позицию и переменная kol с 21 по 30 позиции. символ заполнитель " " - пробел

т.е. фактически обратная первой задача :)

Пример:

s code=204558
s kol= 23

Результат должен быть:
204558 23
...
Рейтинг: 0 / 0
Конвертация строки (помогите новичку)
    #36772451
StrayXXX4U
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
при посте не сохранилось форматирование результата
для наглядности заменил символ " " на "."
.............204558........23
...
Рейтинг: 0 / 0
Конвертация строки (помогите новичку)
    #36772483
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
StrayXXX4U , как вариант

Код: plaintext
1.
2.
3.
4.
5.
 s n= 20 
 s k= 10 
 s code= 204558 
 s kol=  23 
 s str=$j(code,n)_$j(kol,k)
 w !,str
...
Рейтинг: 0 / 0
Конвертация строки (помогите новичку)
    #36785679
StrayXXX4U
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо всем, кто помогает разбираться в этом интересном языке.
Позволю себе еще не много помучать вас вопросами и надеюсь на ответы.
Собственно задача простая но ни как не могу найти функцию которая это делает

Есть
n = 5
code = 3

Если написать rez = $j(code,n)
получим "....3"

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

Заранее спасибо !
...
Рейтинг: 0 / 0
Конвертация строки (помогите новичку)
    #36785697
Фотография ну я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
s $e(code,n)=""
...
Рейтинг: 0 / 0
Конвертация строки (помогите новичку)
    #36785710
Фотография ну я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не, обсчитался, правильно так:
s $e(code,n+1)=""
...
Рейтинг: 0 / 0
Конвертация строки (помогите новичку)
    #36785740
Фотография ну я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотя, если исходные данные могут быть длиннее, то так:
s code=$re($j($re(code),n))
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Конвертация строки (помогите новичку)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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