powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Прошу помощи!
24 сообщений из 24, страница 1 из 1
Прошу помощи!
    #34632840
B@rmaley
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте! В Cache я разбираюсь ещё очень плохо, но передо мной встала следующая задача:
Есть понятия f,g,h,fio в которых хранятся фамилия, имя, отчество и ФИО полностью. Мне нужно перепутать все имена людей. То есть сдвинуть все фамили на одну позицию вверх, а отчества на одно позицию вниз.
Как быть?
...
Рейтинг: 0 / 0
Прошу помощи!
    #34632914
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
B@rmaleyЕсть понятия f,g,h,fio
Это свойства чтоли в классе?
...
Рейтинг: 0 / 0
Прошу помощи!
    #34632989
B@rmaley
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
krvsa B@rmaleyЕсть понятия f,g,h,fio
Это свойства чтоли в классе?
Нет, это переменные в глобале.
...
Рейтинг: 0 / 0
Прошу помощи!
    #34633786
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тогда как это хранится?
----------
Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT
...
Рейтинг: 0 / 0
Прошу помощи!
    #34633820
solwolf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
B@rmaleyЗдравствуйте! В Cache я разбираюсь ещё очень плохо, но передо мной встала следующая задача:
Есть понятия f,g,h,fio в которых хранятся фамилия, имя, отчество и ФИО полностью. Мне нужно перепутать все имена людей. То есть сдвинуть все фамили на одну позицию вверх, а отчества на одно позицию вниз.
Как быть?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
k ^AGlob
  s ^AGlob( 1 ,"Fm")="Иванов"
  s ^AGlob( 1 ,"Im")="Иван"
  s ^AGlob( 1 ,"Ot")="Иванович"
  
  s ^AGlob( 2 ,"Fm")="Петров"
  s ^AGlob( 2 ,"Im")="Петр"
  s ^AGlob( 2 ,"Ot")="Петрович"

  s ^AGlob( 3 ,"Fm")="Сидоров"
  s ^AGlob( 3 ,"Im")="Сидор"
  s ^AGlob( 3 ,"Ot")="Сидорович"

 
  s i=""
  f {
		s i=$o(^AGlob(i))
		q:i=""
		s Before=$o(^AGlob(i),- 1 ) ; Индекс предыдущий
		s Afte=$o(^AGlob(i))      ; Индекс следующий
		
		(i Before'="")&(Afte'="") {
			s ^AGlob(Before,"Fm")=^AGlob(i,"Fm") ; Текущую фамилию сдвигаем вверх
			s ^AGlob(Afte,"Im")=^AGlob(i,"Im")   ; Текущее отчество сдвигаем вниз
		}
		}	


Это примерный вариант, здесь нужно обрабатывать моменты, когда при обходе глобала мы достигаем конца дерева и в самом начале, когда возвращаются индексы Before и Afte равные пустоте (""). В этом случае при выполнении кода вываливается ошибка, так как узлов ^AGlob("","Fm") и ^AGlob("","Im") не существует. Поэтому когда Вы это учтете, то все должно получится.
...
Рейтинг: 0 / 0
Прошу помощи!
    #34633904
Sergei Obrastsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
solwolf
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
  s i=""
  f {
		s Before=i
                s i=$o(^AGlob(i))
		q:i=""

		;s Before=$o(^AGlob(i),- 1 ) ; Индекс предыдущий
		s Afte=$o(^AGlob(i))      ; Индекс следующий


Надо быть внимательнее. :)
Но мнится мне, что там другая структура, что-нибудь вида ^a(n)=$lb(f,i,o)
...
Рейтинг: 0 / 0
Прошу помощи!
    #34634459
solwolf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
  s i=""
  f {
		s Before=i
                s i=$o(^AGlob(i))
		q:i=""

		;s Before=$o(^AGlob(i),- 1 ) ; Индекс предыдущий
		s Afte=$o(^AGlob(i))      ; Индекс следующий


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
  s i=""
  f {
                s i=$o(^AGlob(i))
                q:i=""

		s Before=$o(^AGlob(i),- 1 ) ; Индекс предыдущий
		s Afte=$o(^AGlob(i))      ; Индекс следующий

А чем по функциональности отличаются эти коды? Значение Before и в обоих случаях одинаково :)
Просто из примера наглядно видно два вида использования $order
...
Рейтинг: 0 / 0
Прошу помощи!
    #34634666
Sergei Obrastsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
solwolfА чем по функциональности отличаются эти коды? Значение Before и в обоих случаях одинаково :) Просто из примера наглядно видно два вида использования $order
Теперь понятно почему программы год от года становятся все больше размером и требуют
машины все мощнее. А ведь очевидно, что взять значение из локальной переменной
гораздо проще, чем из глобальной, несмотря на кэш и прочее. "Наглядность использования $order"
в рабочей программе нафиг никому не нужна.
...
Рейтинг: 0 / 0
Прошу помощи!
    #34636516
solwolf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sergei Obrastsov
.... А ведь очевидно, что взять значение из локальной переменной
гораздо проще, чем из глобальной, несмотря на кэш и прочее.
Абсолютно согласен :)

Sergei Obrastsov
"Наглядность использования $order"
в рабочей программе нафиг никому не нужна.
По условию видно, что вероятнее всего это упражнение. И поэтому код был придуман на ходу, чтобы помочь человеку сдвинуться с мертвой точки.
...
Рейтинг: 0 / 0
Прошу помощи!
    #34638317
B@rmaley
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
solwolf
Это примерный вариант, здесь нужно обрабатывать моменты, когда при обходе глобала мы достигаем конца дерева и в самом начале, когда возвращаются индексы Before и Afte равные пустоте (""). В этом случае при выполнении кода вываливается ошибка, так как узлов ^AGlob("","Fm") и ^AGlob("","Im") не существует. Поэтому когда Вы это учтете, то все должно получится.

Спасибо! А как это учесть?=)
...
Рейтинг: 0 / 0
Прошу помощи!
    #34638393
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
B@rmaleyА как это учесть?=)
Используй условный оператор Или предусловия к командам...
...
Рейтинг: 0 / 0
Прошу помощи!
    #34638484
B@rmaley
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
krvsa
Используй условный оператор Или предусловия к командам...
Это понятно :)) Как конкретно?
...
Рейтинг: 0 / 0
Прошу помощи!
    #34639715
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Т.е. сам ты программку писать явно не желаеш?
----------
Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT
...
Рейтинг: 0 / 0
Прошу помощи!
    #34640483
B@rmaley
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
krvsaТ.е. сам ты программку писать явно не желаеш?

Что-то вроде того=)
...
Рейтинг: 0 / 0
Прошу помощи!
    #34640849
B@rmaley
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
На самом деле просто не пойму, какое условие должно быть.
Частично работает программа, но не все записи сдвигаются. Почему так получается мне не понятно.
...
Рейтинг: 0 / 0
Прошу помощи!
    #34641072
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
B@rmaleyне все записи сдвигаются. Почему так получается мне не понятно.
Потому что условие сдвига "пограничных" узлов не описаны доконца. Их-то тебе и предлагают доделать самостоятельно...
Не знание Кащее еще можно спустить с рук... Но тут попахивает не умением программировать вообще.
...
Рейтинг: 0 / 0
Прошу помощи!
    #34641128
B@rmaley
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
При сдвиге вверх нужно сохранить первую запись в локальную переменную, а потом записать в конец глобала. Так?
...
Рейтинг: 0 / 0
Прошу помощи!
    #34641145
B@rmaley
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как мне взять самую первую запись в глобале, не зная его индексации?

ЗЫ. Тут нельзя редактировать свои сообщения?
...
Рейтинг: 0 / 0
Прошу помощи!
    #34641557
Sergei Obrastsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
B@rmaleyКак мне взять самую первую запись в глобале, не зная его индексации?
ЗЫ. Тут нельзя редактировать свои сообщения?
Мы снова возвращаемся в начало разговора: где структура массива? Откуда вы знаете,
что там фамилии с именами, а не номера деталей ракет? :)

P.S. Нельзя, ага
...
Рейтинг: 0 / 0
Прошу помощи!
    #34641659
B@rmaley
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Структура такая:^AGlob(1,"Fm","i").

Задаю глобал так:
s ^AGlob(1,"Fm","AA")="Ivanov"
s ^AGlob(1,"Im","AA")="Ivan"
s ^AGlob(1,"Ot","AA")="Ivanovich"
s ^AGlob(1,"Fio","AA")="Ivanov_II"

s ^AGlob(1,"Fm","AB")="Petrov"
s ^AGlob(1,"Im","AB")="Petr"
s ^AGlob(1,"Ot","AB")="Petrovich"
s ^AGlob(1,"Fio","AB")="Petrov_PP"

s ^AGlob(1,"Fm","1")="Kazachenko"
s ^AGlob(1,"Im","1")="Svetlana"
s ^AGlob(1,"Ot","1")="Vasilievna"
s ^AGlob(1,"Fio","1")="Kazachenko_SV"

s ^AGlob(1,"Fm","AC")="Sidorov"
s ^AGlob(1,"Im","AC")="Sodor"
s ^AGlob(1,"Ot","AC")="Sidorovich"
s ^AGlob(1,"Fio","AC")="Sidorov_SS"

s ^AGlob(1,"Fm","AD")="Nesterova"
s ^AGlob(1,"Im","AD")="Viktoria"
s ^AGlob(1,"Ot","AD")="Dmitrievna"
s ^AGlob(1,"Fio","AD")="Nesterova_VD"

set first=^AGlob(1,"Fm",$Order(^AGlob(1,"Fm",""))) - так получаю первую запись.
В данном случае это "Kazachenko".Теперь нужно впихнуть её в конец вместо "Nesterova". Я так думаю. С отчествами ситуация наверное будет обратная.
...
Рейтинг: 0 / 0
Прошу помощи!
    #34641688
Sergei Obrastsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
B@rmaleyСтруктура такая:^AGlob(1,"Fm","i").

Задаю глобал так:
s ^AGlob(1,"Fm","AA")="Ivanov"
s ^AGlob(1,"Im","AA")="Ivan"
s ^AGlob(1,"Ot","AA")="Ivanovich"
s ^AGlob(1,"Fio","AA")="Ivanov_II"

s ^AGlob(1,"Fm","AB")="Petrov"
s ^AGlob(1,"Im","AB")="Petr"
s ^AGlob(1,"Ot","AB")="Petrovich"
s ^AGlob(1,"Fio","AB")="Petrov_PP"

s ^AGlob(1,"Fm","1")="Kazachenko"
s ^AGlob(1,"Im","1")="Svetlana"
s ^AGlob(1,"Ot","1")="Vasilievna"
s ^AGlob(1,"Fio","1")="Kazachenko_SV"

s ^AGlob(1,"Fm","AC")="Sidorov"
s ^AGlob(1,"Im","AC")="Sodor"
s ^AGlob(1,"Ot","AC")="Sidorovich"
s ^AGlob(1,"Fio","AC")="Sidorov_SS"

s ^AGlob(1,"Fm","AD")="Nesterova"
s ^AGlob(1,"Im","AD")="Viktoria"
s ^AGlob(1,"Ot","AD")="Dmitrievna"
s ^AGlob(1,"Fio","AD")="Nesterova_VD"

Какая-то странная структура. Как определяется третий индекс? Я как-то не уловил
закономерности.
...
Рейтинг: 0 / 0
Прошу помощи!
    #34641718
B@rmaley
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sergei Obrastsov
Какая-то странная структура. Как определяется третий индекс? Я как-то не уловил
закономерности.
Индексы могут быть как числовые 1,2,3,4... так и буквенные AA,AB,AC,AD и так далее...просто хотел учесть для обоих вариантов. Так как числа в подобной индексации будут идти первыми,то первая запись будет "Kazachenko".
Собственно, я уже с фамилиями разобрался, теперь буду сдвигать вниз отчества пытаться.
...
Рейтинг: 0 / 0
Прошу помощи!
    #34641788
Sergei Obrastsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
B@rmaley Sergei Obrastsov
Какая-то странная структура. Как определяется третий индекс? Я как-то не уловил
закономерности.
Индексы могут быть как числовые 1,2,3,4... так и буквенные AA,AB,AC,AD и так далее...просто хотел учесть для обоих вариантов. Так как числа в подобной индексации будут идти первыми,то первая запись будет "Kazachenko".
Собственно, я уже с фамилиями разобрался, теперь буду сдвигать вниз отчества пытаться.
Почему "Nesterova" на индексе "AD", к примеру, а не "CF"?
И кстати, если структура своя, почему бы не расположить данные более удобно.
Например:
Код: plaintext
1.
^AGlob("AD")="Nesterova*Viktoria*Dmitrievna*VD"
и всем сразу станет легче жить на свете :)
...
Рейтинг: 0 / 0
Прошу помощи!
    #34641804
Hampster-Mumpster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sergei ObrastsovКакая-то странная структура. Как определяется третий индекс? Я как-то не уловил закономерности.
Отчего же, похоже на 26-ричное число в третьем индексе. А может быть и 224-ричное (если в качестве знаков использовать все печатные символы расширенной таблицы ASCII). Это смутно мне напоминает... Да и терминология специфичная - "понятия". Г-н B@rmaley, вы часом не qW-oрдовскую задачу пытаетесь колоть? Не проще ли к разработчикам обратиться (в СП.АРМ)?
...
Рейтинг: 0 / 0
24 сообщений из 24, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Прошу помощи!
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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