powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / как выбрать данные???
29 сообщений из 29, показаны все 2 страниц
как выбрать данные???
    #36099572
Ymka2007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Помогите пожалуйста с решение задачки.

Дано: три переменных, в которых лежат:
а) а1 - имя класса
б) а2 - имя свойства, из класса
в) а3 - id записи
Нужно: получить данные из свойства указанного класса по указанному id
аналогия: &sql(select field1 from table1 where id=1)

как реализовать подобное на COS используя объектный доступ, или на худой конец прямое обращение к глобали?
повторяюсь: всё лежит в переменных
...
Рейтинг: 0 / 0
как выбрать данные???
    #36099586
Фотография ну я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Функции $zobjXXX не подошли?
...
Рейтинг: 0 / 0
как выбрать данные???
    #36099761
Socratdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ymka2007,

Вижу 2 способа:
1) Поднимаем объект и берем свойство:
Код: plaintext
1.
2.
3.
4.
5.
ClassMethod getPropData(class, prop As %String, id As %Integer) As %String
{
	s obj=$zobjclassmethod(class,"%OpenId",id)
	q:$IsObject(obj) $zobjproperty(obj,prop)
	q ""
}

2) Берем напрямую из глобала через специальный метод свойства:
Код: plaintext
1.
2.
3.
ClassMethod getPropData(class, prop As %String, id As %Integer) As %String
{
	q $zobjclassmethod(class,prop_"GetStored",id)
}

2 способ, по-моему, предпочтительней...

ЗЫ: По хорошему надо еще проверить, что существует такой класс и хранимое свойство у класса.
...
Рейтинг: 0 / 0
как выбрать данные???
    #36100946
NMN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NMN
Гость
"Прямой" доступ к данным

Set a1="^INST" ;имя массива из способа хранения
Set a2="5" ; номер свойства из описания способа хранения
Set a3="1477" ; идентификатор
Set str=@(a1_"("_a3_")") ; аналогично Set str=^INST(1477)
Set r=$Piece(str,"^",a2) ;

Доступ через объектную модель

Set a1="WRK.Instances" ;имя класса
Set a2="iCode" ;имя свойства
Set a3="1477" ; идентификатор
Set p=("##Class("_a1_").%OpenId("_a3_")") ;сформируем ##Class(WRK.Instances).%OpenId(1477)
Set @("obj="_p) ;открываем экземпляр класса
Set @("r=obj."_a2) ; вычитываем значение параметра
Do obj.%Close() ; закрываем объект
...
Рейтинг: 0 / 0
как выбрать данные???
    #36101052
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NMN,

что-то вы используете какой-то неудобочитаемый способ объектного доступа
да и прямой доступ понять сложно

лучше $zobjXXX по моему нету
...
Рейтинг: 0 / 0
как выбрать данные???
    #36101258
NMN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NMN
Гость
Если задавали карту хранения, то ничего сложного в прямом доступе нет.
Set r=^INST(1212)
Вычитает строку из глобала ^INST за номером 1212.
$Piece(строка,разделитель,номер подстроки)
Пример r="Вася^любит^Аню"
Set k=$Piece(r,"^",1) ;k=Вася
Т.е. поле в формате хранения нумеруются и разделяются разделителем, который вы задаете.

Насчет объектной модели - используются стандартные вызовы объекта прародителя %OpenId и метод закрытия %Close (освобождение). Я например вообще не использую $zobjXXX.
...
Рейтинг: 0 / 0
как выбрать данные???
    #36101320
NMN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NMN
Гость
Трассировка показала, что Set obj=##Class(WRK.Instances).%OpenId(1477)
и Set obj=$zobjclassmethod("WRK.Instances","%OpenId",1477) вызывают один и тот же метод класса.
Разница = 0. С тем лишь интересным моментом, что произойдет с obj не в моем способе. Я-то его закрываю вроде по правилам, соответствующим методом. В частности чтобы сохранить изменения же приходится вызвать метод %Save, то и % Close должен быть, чтобы высвободить объект.

"
2) Берем напрямую из глобала через специальный метод свойства:

ClassMethod getPropData(class, prop As %String, id As %Integer) As %String
{
q $zobjclassmethod(class,prop_"GetStored",id)
}
"

У меня таких методов вообще нет у класса. Скорее всего из-за способа хранения.
...
Рейтинг: 0 / 0
как выбрать данные???
    #36101550
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в том то и дело зачем строить сложные конструкции с использованием косвенности
если можно напрямую обращаться через спец функции

если не ошибаюсь %Close оставлен для совместимости и давно аннулирован
а объект закрывается и удаляется по kill

GetStored полагаю появился только с версией 5.1, у меня его тоже нет, а в документации к 2009.1 нашел упоминание про нее

_________________________________
Cache for Windows NT (AMD64) 5.0.21 (Build 6408) Tue Jan 3 2006 13:37:41 EST
...
Рейтинг: 0 / 0
как выбрать данные???
    #36101635
Ptn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хм... нужно будет посмотреть что за GetStored такой объявился.

У нас в продукте в одном из абстрактных базовых классов просто напросто объявлен метод, назовем его для простоты "GetFieldByID".

Внутри у него не неонка, а генератор простого статического SQL запроса по "всем" полям - пропускаются коллекции и временные поля.

В итоге к любому хранимому классу можно обратиться
Код: plaintext
1.
set fullname=##class(SomeClass).GetFieldByID( 10 ,"fullname")

или, получить за одно обращение все свойства в массив и дальше самостоятельно

Код: plaintext
1.
2.
d ##class(SomeClass).GetFieldByID( 10 ,"",.field)
set fullname=$g(field("fullname"))
...
Рейтинг: 0 / 0
как выбрать данные???
    #36101697
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Метод GetStored() появился уже в версии 5.1.
...
Рейтинг: 0 / 0
как выбрать данные???
    #36101997
Socratdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ptnхм... нужно будет посмотреть что за GetStored такой объявился.

Метод довольно-таки старый и очень полезный. Только хранение должно быть стандартным.
Мы в связанных классах/таблицах объявляем калькулируемые свойства/поля с помощью этого метода и выбираем потом данные из одной таблицы - работает быстро.

Пример класса "Город"
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Class City Extends %Persistent
{

Property CountryItem As Country [ Private ];

Property Name As %String;

Property Country As %String [ Calculated, SqlComputed, SqlComputeCode = {s {*}=##class(Country).NameGetStored({CountryItem})} ];

}
Ptn
У нас в продукте в одном из абстрактных базовых классов просто напросто объявлен метод, назовем его для простоты "GetFieldByID".

Внутри у него не неонка, а генератор простого статического SQL запроса по "всем" полям - пропускаются коллекции и временные поля.


У нас тоже есть в базовых классах такой метод. Но мы им практически не пользуемся в силу выше сказанного.
...
Рейтинг: 0 / 0
как выбрать данные???
    #36102001
Socratdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
NMN"Прямой" доступ к данным

Set a1="^INST" ;имя массива из способа хранения
Set a2="5" ; номер свойства из описания способа хранения
Set a3="1477" ; идентификатор
Set str=@(a1_"("_a3_")") ; аналогично Set str=^INST(1477)
Set r=$Piece(str,"^",a2) ;

Для такого "прямого" доступа к данным нужно точно знать описание хранения. Выдернуть эти данные довольно-таки долго и не просто.
Кащей же сам делает это при генерации метода "GetStored".

Если такого метода у Вас нет, то его можно генерировать самостоятельно, указав для класса PropertyClass.

Самый нормальный вариант по быстродействию - прямой доступ, используя специальный метод.
Следующим идет вариант через SQL доступ.
И потом уже объектный.
Что, в общем-то и так понятно...
...
Рейтинг: 0 / 0
как выбрать данные???
    #36102156
logist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Следующим идет вариант через SQL доступ.
> И потом уже объектный.

В данном случае наоборот, объектный способ предпочтительнее т.к. для решения
задачи можно использовать только dynamic sql, коий тормознее.

Самый правильный вариант - GetStored, но он падает по Undefined, если подсунуть
неправильный ID.

=Сергей Шутов
ООО Димас, Хабаровск
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
как выбрать данные???
    #36102317
NMN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NMN
Гость
Да где же долго? Каше на MUMPS база?
То тогда и работа с глобалами быстрее, когда используется обычный MUMPS
И куда же проще и быстрей, если у Вас будет описан формат хранения использовать
Set r=$Piece(^INST(1277),"^",2) , для получения значения 2-го свойства?
Из плюсов описания формата хранения я вижу использование индексных глобалов, использование которых кстати "ускоряет" выполнение sql запросов по полям участвующим в этом описании
Пример.

Глобал
^Глобал1(id) = код^наименование^документ

Индексный глобал с именем "глобалинд"
^глобалинд(Код,id)=""

Итак можно "пробегать" для одного кода все записи глобала Глобал1
Set id=$Order(^глобалинд(""))
While id'="" {
Set $Piece(^Глобал1(id),"^",2)="Новое наименование"
Set id=$Order(^глобалинд(id))
}

И 100% этот код выполняется для миллионных записей секунд 10 максимум на 2,5 ГГц и 1 Гиге оперативы.
...
Рейтинг: 0 / 0
как выбрать данные???
    #36102326
NMN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NMN
Гость
Set id=$Order(^глобалинд( код, ""))
While id'="" {
Set $Piece(^Глобал1(id),"^",2)="Новое наименование"
Set id=$Order(^глобалинд(id))
}

Тьфу пропустил
...
Рейтинг: 0 / 0
как выбрать данные???
    #36102380
NMN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NMN
Гость
Версия кащея 5.0.21.%
Получается GetStored() только снится мне и плюс "A new property method is now implemented for all storable properties of persistent classes that are using default storage (%CacheStorage)." . А у нас используется только Cache' SQL Storage. Так что засада.
...
Рейтинг: 0 / 0
как выбрать данные???
    #36102409
Ymka2007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
NMN"Прямой" доступ к данным

Set a1="^INST" ;имя массива из способа хранения
Set a2="5" ; номер свойства из описания способа хранения
Set a3="1477" ; идентификатор
Set str=@(a1_"("_a3_")") ; аналогично Set str=^INST(1477)
Set r=$Piece(str,"^",a2) ;


Set a2="5" ; номер свойства из описания способа хранения - неизвестен, нужно его как то вытаскивать, как не знаю

всем спасибо, сейчас буду пробовать
это честно говоря для нужд нового компонента dataComboMS
...
Рейтинг: 0 / 0
как выбрать данные???
    #36102444
Ymka2007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SocratdvYmka2007,

Вижу 2 способа:
1) Поднимаем объект и берем свойство:
Код: plaintext
1.
2.
3.
4.
5.
ClassMethod getPropData(class, prop As %String, id As %Integer) As %String
{
	s obj=$zobjclassmethod(class,"%OpenId",id)
	q:$IsObject(obj) $zobjproperty(obj,prop)
	q ""
}

2) Берем напрямую из глобала через специальный метод свойства:
Код: plaintext
1.
2.
3.
ClassMethod getPropData(class, prop As %String, id As %Integer) As %String
{
	q $zobjclassmethod(class,prop_"GetStored",id)
}

2 способ, по-моему, предпочтительней...

ЗЫ: По хорошему надо еще проверить, что существует такой класс и хранимое свойство у класса.

ClassMethod getPropData(class, prop As %String, id As %Integer) As %String
в этой строке class уже как объект должен фигурировать?
...
Рейтинг: 0 / 0
как выбрать данные???
    #36102538
Ymka2007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
ClassMethod a(className As %String, colName As %String, val As %String) As %String
{
	s:$g(val)="" val="36,2"
	s className="hndb.balls"
	s colName="bFirm"
	s tDisplay=""
	f i= 1 : 1 :$l(val,",") {
		Set o=("##Class("_className_").%OpenId("_$p(val,",",i)_")")
		Set @("obj="_o) ;открываем экземпляр класса
		;w obj,!
		;Set @("r=obj."_colName) ; вычитываем значение параметра
		s tDisplay=tDisplay_$s(tDisplay'="":",", 1 :"")_ @("obj."_colName) 
		Do obj.%Close() ; закрываем объект
		d o.%Close()
	}
	q tDisplay
}
не работает
...
Рейтинг: 0 / 0
как выбрать данные???
    #36102588
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кстати по словам "не работает" сложно определить ошибку
пробуйте так
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
ClassMethod a(className As %String, colName As %String, val As %String) As %String
{
	s:$g(val)="" val="36,2"
	s className="hndb.balls"
	s colName="bFirm"
	s tDisplay=""
	f i= 1 : 1 :$l(val,",") {
		Set o=$zobjclassmethod(className,"%OpenId",$p(val,",",i))
		s r=$zobjproperty(o,colName) ; вычитываем значение свойства
		s tDisplay=tDisplay_$s(tDisplay'="":",", 1 :"")_r
		; Do o.%Close() ; закрываем объект  - ненужно		
	}
	q tDisplay
}


PS использовать разделители в строках думаю не лучший способ версиях выше 5.0
есть уже $LISTFROMSTRING ($LFS) и $LISTTOSTRING ($LTS)
и уже ходить по листбилду, или лучше сразу такие строки в листбилде собирать, и нет необходимости помнить разделители
_________________________________
Cache for Windows NT (AMD64) 5.0.21 (Build 6408) Tue Jan 3 2006 13:37:41 EST
...
Рейтинг: 0 / 0
как выбрать данные???
    #36102610
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как быть, если класс отображен из внешней таблицы через SQL-Шлюз, например, из Oracle?
Как быть, если свойство класса вычисляемое, временное?

Как я понимаю, Zen-компонент должен уметь работать с такими классами/свойствами.

Остается вариант 1), предложенный Socratdv , немного мною доработанный:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
ClassMethod getPropData(class As %String, prop As %String, id As %String) As %String
{
  try{
    set r=$zobjproperty($zobjclassmethod(class,"%OpenId",id),prop)
  }catch{
    set r=""
  }
  q r
}

>w ##class(...).getPropData("Имя класса","имя поля","ID записи")


Вариант с косвенностью уступает в быстродействии варианту с $zobjXXX . К тому же, с косвенностью возникают нюансы с контекстом переменных, что Ymka2007 успел подтвердить.
Чтобы метод a заработал, добавьте [ ProcedureBlock = 0 ] к его описанию.
...
Рейтинг: 0 / 0
как выбрать данные???
    #36102616
Ymka2007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DAiMorкстати по словам "не работает" сложно определить ошибку
пробуйте так
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
ClassMethod a(className As %String, colName As %String, val As %String) As %String
{
	s:$g(val)="" val="36,2"
	s className="hndb.balls"
	s colName="bFirm"
	s tDisplay=""
	f i= 1 : 1 :$l(val,",") {
		Set o=$zobjclassmethod(className,"%OpenId",$p(val,",",i))
		s r=$zobjproperty(o,colName) ; вычитываем значение свойства
		s tDisplay=tDisplay_$s(tDisplay'="":",", 1 :"")_r
		; Do o.%Close() ; закрываем объект  - ненужно		
	}
	q tDisplay
}


PS использовать разделители в строках думаю не лучший способ версиях выше 5.0
есть уже $LISTFROMSTRING ($LFS) и $LISTTOSTRING ($LTS)
и уже ходить по листбилду, или лучше сразу такие строки в листбилде собирать, и нет необходимости помнить разделители
_________________________________
Cache for Windows NT (AMD64) 5.0.21 (Build 6408) Tue Jan 3 2006 13:37:41 EST

спасибо заработало: как раз то что нужно !!!
на этапе формирования забыл какие бывают функции $ZOBJXXX (блин, а ведь знал)
формирую через разделитель для того чтобы JS мог работать с данными
...
Рейтинг: 0 / 0
как выбрать данные???
    #36102775
Ymka2007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
servitЧтобы метод a заработал, добавьте [ ProcedureBlock = 0 ] к его описанию.

что означает [ ProcedureBlock = 0 ] ? мне что б знать, на будущее
с загрузкой данных для dataCombomMS закончил, приступаю к отработке чекбоксов при начальной загрузке
...
Рейтинг: 0 / 0
как выбрать данные???
    #36102826
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ymka2007что означает [ ProcedureBlock = 0 ] ? мне что б знать, на будущее
с загрузкой данных для dataCombomMS закончил, приступаю к отработке чекбоксов при начальной загрузке
ProcedureBlock , ProcedureBlock управляют областью видимости переменных.
...
Рейтинг: 0 / 0
как выбрать данные???
    #36102845
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Про область видимости переменных можно почитать здесь . Далее следуйте по ссылкам.
...
Рейтинг: 0 / 0
как выбрать данные???
    #36103857
NMN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NMN
Гость
Ну вообще-то вот так должно быть.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
ClassMethod a(className As %String, colName As %String, val As %String) As %String
{
	s:$g(val)="" val="36,2"
	s className="hndb.balls"
	s colName="bFirm"
	s tDisplay=""
	f i= 1 : 1 :$l(val,",") {
		Set o="##Class("_className_").%OpenId("_$p(val,",",i)_")"
		Set @("obj="_o) ;открываем экземпляр класса
		;w obj,!
		Set @("r=obj."_colName) ; вычитываем значение параметра
		Set tDisplay=tDisplay_$Select(tDisplay'="":",", 1 :"")_ r
		Do obj.%Close() ; закрываем объект
	}
	q tDisplay
}
...
Рейтинг: 0 / 0
как выбрать данные???
    #36104419
Socratdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Можно еще через SQL.
Работать будет значительно быстрее!

Вот мой вариант со всеми нужными проверками:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
ClassMethod a(className As %String, colName As %String, idList As %String) As %String 
{ 
	; Получаем имя таблицы по имени класса
	s table = $$$comClassKeyGet(className,$$$cCLASSsqlqualifiednameQ)
	; Проверяем существование поля
	s fieldExist = $D($$$EXTSQLCOL($$$rEXT,className,colName))> 0 
	if $$TableExists^%apiSQL(table)&&fieldExist {
		s rs = ##class(%ResultSet).%New()
		; Выборка уникальных значений
		s sc = rs.Prepare("SELECT LIST(DISTINCT "_colName_") AS result FROM "_table_" WHERE %ID IN ("_idList_")")
		q:'sc ""
		s sc = rs.Execute()
		q:'sc ""
		q:rs.Next() rs.Data("result")
	}
	q ""
}
Результат еще можно отсортировать.
...
Рейтинг: 0 / 0
как выбрать данные???
    #36104637
Ymka2007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
NMNНу вообще-то вот так должно быть.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
ClassMethod a(className As %String, colName As %String, val As %String) As %String
{
	s:$g(val)="" val="36,2"
	s className="hndb.balls"
	s colName="bFirm"
	s tDisplay=""
	f i= 1 : 1 :$l(val,",") {
		Set o="##Class("_className_").%OpenId("_$p(val,",",i)_")"
		Set @("obj="_o) ;открываем экземпляр класса
		;w obj,!
		Set @("r=obj."_colName) ; вычитываем значение параметра
		Set tDisplay=tDisplay_$Select(tDisplay'="":",", 1 :"")_ r
		Do obj.%Close() ; закрываем объект
	}
	q tDisplay
}


этот вариант будет работать если указать в ClassMethod [ ProcedureBlock = 0 ], иначе выдает ошибку <UNdefine> на переменную r
...
Рейтинг: 0 / 0
как выбрать данные???
    #36180542
doublefint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ymka2007DAiMorкстати по словам "не работает" сложно определить ошибку
пробуйте так
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
ClassMethod a(className As %String, colName As %String, val As %String) As %String
{
	s:$g(val)="" val="36,2"
	s className="hndb.balls"
	s colName="bFirm"
	s tDisplay=""
	f i= 1 : 1 :$l(val,",") {
		Set o=$zobjclassmethod(className,"%OpenId",$p(val,",",i))
		s r=$zobjproperty(o,colName) ; вычитываем значение свойства
		s tDisplay=tDisplay_$s(tDisplay'="":",", 1 :"")_r
		; Do o.%Close() ; закрываем объект  - ненужно		
	}
	q tDisplay
}


PS использовать разделители в строках думаю не лучший способ версиях выше 5.0
есть уже $LISTFROMSTRING ($LFS) и $LISTTOSTRING ($LTS)
и уже ходить по листбилду, или лучше сразу такие строки в листбилде собирать, и нет необходимости помнить разделители
_________________________________
Cache for Windows NT (AMD64) 5.0.21 (Build 6408) Tue Jan 3 2006 13:37:41 EST

спасибо заработало: как раз то что нужно !!!
на этапе формирования забыл какие бывают функции $ZOBJXXX (блин, а ведь знал)
формирую через разделитель для того чтобы JS мог работать с данными

на сервере $LB(""_1_"","М это что-то!"), на клиенте javascript:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
   function $LG=(list,li) { //разбор Кашевого списка из строковых переменных
     if (!list) return ""; if (!li) li= 1 ; if (li< 1 ) return ""; 
     var strlen=list.length; var ci= 1 ; var item="";
     for (var pos= 0 ;pos<strlen;){ 
       var len=list.charCodeAt(pos); //длина елемента
       if (list.charCodeAt(pos+ 1 )!= 1 ) { //ошибка, только текстовый формат
        alert("list type error on "+ci+" element");
        break;
       } 
       if (ci==li){item=list.substring(pos+ 2 ,pos+len); break;}
       pos+=len; ci++; 
      }
     return item;
   }
...
Рейтинг: 0 / 0
29 сообщений из 29, показаны все 2 страниц
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / как выбрать данные???
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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