Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Конвертация строки (помогите новичку) / 20 сообщений из 20, страница 1 из 1
30.07.2010, 17:59
    #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
30.07.2010, 18:11
    #36769092
doublefint
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Конвертация строки (помогите новичку)
Код: plaintext
1.
2.
USER>w +0000010110
10110
...
Рейтинг: 0 / 0
30.07.2010, 18:15
    #36769096
doublefint
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Конвертация строки (помогите новичку)
Код: plaintext
1.
 s str="Склад_0000010110", code=+$p(str,"_", 2 )  w !,code
...
Рейтинг: 0 / 0
30.07.2010, 19:56
    #36769167
StrayXXX4U
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Конвертация строки (помогите новичку)
Спасибо, очень помогло.
в понедельник первый раз столкнулся с таким зверем как м-аптека
даже не знаю. за что браться.
Столько всего надо сделать. как посмотрел язык - понял, что с наскока не освоить надо изучать.
...
Рейтинг: 0 / 0
31.07.2010, 04:28
    #36769357
ser_shu
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Конвертация строки (помогите новичку)
StrayXXX4Uдаже не знаю. за что браться.
Столько всего надо сделать. как посмотрел язык - понял, что с наскока не освоить надо изучать.
Могу порадовать - новички изучают язык за три дня :-)
А вот навороченные на этом языке технологии и инструментарий (интерсистемз или эскейп) потребуют гораздо большего времени...
...
Рейтинг: 0 / 0
31.07.2010, 06:01
    #36769363
StrayXXX4U
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Конвертация строки (помогите новичку)
Спасибо за поздравления. Вот только ни ка не могу найти ни описания языка, его структур ни описание принципов функционирования самой БД. А задачи есть уже сейчас :)
Очень бы хотелось ссылочек на доки или если не жалко, какие нибудь материалы для "вгрызания"
...
Рейтинг: 0 / 0
31.07.2010, 10:25
    #36769398
ser_shu
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Конвертация строки (помогите новичку)
StrayXXX4U,

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

http://www.minimdb.com/

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

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


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

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

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

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

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

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

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

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

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

Пример:

s code=204558
s kol= 23

Результат должен быть:
204558 23
...
Рейтинг: 0 / 0
03.08.2010, 11:23
    #36772451
StrayXXX4U
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Конвертация строки (помогите новичку)
при посте не сохранилось форматирование результата
для наглядности заменил символ " " на "."
.............204558........23
...
Рейтинг: 0 / 0
03.08.2010, 11:32
    #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
11.08.2010, 12:18
    #36785679
StrayXXX4U
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Конвертация строки (помогите новичку)
Спасибо всем, кто помогает разбираться в этом интересном языке.
Позволю себе еще не много помучать вас вопросами и надеюсь на ответы.
Собственно задача простая но ни как не могу найти функцию которая это делает

Есть
n = 5
code = 3

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

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

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


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