powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Расстроило вот
25 сообщений из 28, страница 1 из 2
Расстроило вот
    #36389646
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для чтения бинарных файлов
Код: plaintext
1.
2.
3.
 s file=##class(%Library.File).%New()
 s file.Name=filename
 d file.Open("RF")
 while 'file.AtEnd {w file.Read()}
терялись куски файлов. Оказывается нужно указывать размер блока для чтения еще в момент открытия файла, также размер блока нужно указывать при Read
Код: plaintext
 d file.Open("RF:32000")
при умолчанию он 32000, по умолчанию размер блока при открытии указывается $$$MAXSTRING, и если размер блока при открытии больше, чем размер блока при чтении, то разницу каше просто теряет.

То есть если сделать
Код: plaintext
1.
 d file.Open("RF:100")
 while 'file.AtEnd {w file.Read( 10 )}
то программа будет видеть только каждые первые 10 байт из ста прочитанных.
Разве это правильно?
...
Рейтинг: 0 / 0
Расстроило вот
    #36389713
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я так вообще возмущённ отсутствием чтения "построчно"!
----------
Cache for Windows (x86-32) 2007.1.3 (Build 607) Wed Oct 17 2007 02:12:09 EDT
...
Рейтинг: 0 / 0
Расстроило вот
    #36389783
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не, построчно то у них как раз все есть, а вот с бинарными хитро оказалось.
Я то до этого вообще думал, что бинарное чтение - это "формат потока", флаг S.
Долго мучался, пришлось перечитывать на буржуинском непонятном языке документацию
...
Рейтинг: 0 / 0
Расстроило вот
    #36389807
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блок А.Н.Не, построчно то у них как раз все есть
И как это делается?
Запись есть. А вот про чтение как раз и небыло, я специально выяснял у IS... Правда это было еще не 5.0.*...
...
Рейтинг: 0 / 0
Расстроило вот
    #36389905
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
  s file=##class(%File).%New()
  s file.Name="c:\boot.ini"
  d file.Open("RF:10")
  while 'file.AtEnd {w file.Read( 1 )}
Файл читается полностью и ничего не теряется. Проверил на версиях 5.0.21 и 2010.1.

PS: для работы с файлами как с потоком можно ещё использовать класс "%Library.FileBinaryStream". Или "%Stream.FileBinary" (с версии 2008.2).
...
Рейтинг: 0 / 0
Расстроило вот
    #36389968
Ptn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsa Это нужно режим чтения смотреть
Код: plaintext
1.
2.
3.
set file=##class(%File).%New(file)
do stream.Open("R")
for   { set len= 16000 ,str=stream.Read(.len) quit:len=- 1   }
Читает по строчкам - единственно не знаю что будет со строками длиннее 16000

----
Блок А.Н.

А открывать с опцией ":F100" обязательно ? Почему не делать просто Read(100) ?
...
Рейтинг: 0 / 0
Расстроило вот
    #36389990
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ptn krvsa Это нужно режим чтения смотреть
Таки все смотрели вместе с IS... Ничего там по строчкам не читает.

Ptn
Код: plaintext
1.
2.
3.
set file=##class(%File).%New(file)
do stream.Open("R")
for   { set len= 16000 ,str=stream.Read(.len) quit:len=- 1   }
Читает по строчкам - единственно не знаю что будет со строками длиннее 16000
Длиннее... А если короче?
Ответ от IS был один - править или наследовать и править код класса. Т.ч. пока своими функция ми и обходимся...
...
Рейтинг: 0 / 0
Расстроило вот
    #36390079
Ptn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsaДлиннее... А если короче?

То читает без проблем.

Встречал проблемы на уникод версиях - так куда то исчезали первые два байта из строки, но это при чтении бинарных файлов. Переход на стримы решал проблему.

Вот вам еще пример работающего кода - я его тут уже как приводил
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
Read(afile,file)
	new io,str,i,mysc
	set io=$IO,$ZT="ReadErr",mysc= 1 
	open afile:"RK\CP1251\": 5  
	if $t 
	{
		use afile
		for i= 1 : 1   
		{
			read str: 2  quit:$ZEOF  
			if $ZSTRIP(str,"<>W"," ")'="" {set file($i(file))=str}
		}
	} else  {set mysc=0}
ReadErr
	set $ZT=""
	set:'($ZE["<ENDOFFILE>") mysc= 0 
	use io close afile
	quit mysc
Читает построчно текстовый файл виндовой кодировки в переменную file
...
Рейтинг: 0 / 0
Расстроило вот
    #36390095
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PtnТо читает без проблем.
Буду знать... Потестирую при случае. Поставить 32000 можно без проблем... Пущай читает! Таких длинных строк у нас вроде еще небыло.

PtnВот вам еще пример работающего кода - я его тут уже как приводил
Вариант без класса есть и у нас...
...
Рейтинг: 0 / 0
Расстроило вот
    #36390101
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А это не опечатка?

Код: plaintext
1.
2.
3.
4.
5.
set file=##class(%File).%New(file)
do stream.Open("R")
for   { 
   set len= 16000 ,str=stream.Read(.len) 
   quit:len=- 1   
}

разные идентификаторы...
----------
Cache for Windows (x86-32) 2007.1.3 (Build 607) Wed Oct 17 2007 02:12:09 EDT
...
Рейтинг: 0 / 0
Расстроило вот
    #36390144
Ptn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsaА это не опечатка?
Она родимая - вот еще пример реального кода - читает текстовый файл с разделитялями - аля csv
[src]
LoadFile(jkey,global,file,skipcount=0,comment="#",delimiter) set delimiter=$g(delimiter,$c(9))

new j,stream,in,len,in,L,i,header set comment(0)=$l(comment) set:+skipcount<0 skipcount=0

set i="" for { set i=$o(@global@(jkey,i)) quit:i="" kill @global@(jkey,i) }

set stream=##class(%File).%New(file)
do stream.Open("R")
set in="",j=0
for
{ w $C(13),j
set len=30000,in=stream.Read(.len) quit:len=-1
continue:$i(skipcount,-1)>0
set in=$ZCVT($ZSTRIP(in,"<>W"),"U")
if comment'="" {
if $e(in,comment(0))=comment {
set in=$e(in,comment(0)+1,$l(in))
if '(in["=") { continue }
set header=$ZSTRIP($p(in,"=",1),"<>W")
if (header'="")&&('(header[" ")) {
set @global@(jkey,"header",header)=$ZSTRIP($p(in,"=",2),"<>W")
}
continue
}
}

set L=$l(in,delimiter),in("empty")=1,in("list")=""
for i=1:1:L
{ set in("element")=$zstrip($p(in,delimiter,i),"<>W")
set:in("element")'="" in("empty")=0
set in("list")=in("list")_$lb(in("element"))
}
s:in("empty")=0 j=j+1,@global@(jkey,"rows",$i(@global@(jkey,"rows")))=in("list")
}
set stream=""
quit
[src]

Читает файл в глобал указанный в виде строки, с начальным индексом jkey, с указанием пропускать skipcount строк, и считать строчки начинающие с comment комментариями
в качеств разделителя полей используется delimiter
...
Рейтинг: 0 / 0
Расстроило вот
    #36390149
Ptn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тег src не закрыл - думаю разберетесь
...
Рейтинг: 0 / 0
Расстроило вот
    #36390182
Turk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Блок А.Н.
То есть если сделать
Код: plaintext
1.
 d file.Open("RF:100")
 while 'file.AtEnd {w file.Read( 10 )}
то программа будет видеть только каждые первые 10 байт из ста прочитанных.
Разве это правильно?
Правильно. Так как в Read() вы задаете не размер считываемого блока, а число символов, разрешенных на запись в переменную (см. описание параметров команды READ). Единственное исключение - первый и последний Read() из файла, результаты которых ограничены размером считываемого блока (не знаю, с чем это связано - или баг, или "фича").

krvsaБлок А.Н.Не, построчно то у них как раз все есть
И как это делается?
Запись есть. А вот про чтение как раз и небыло, я специально выяснял у IS... Правда это было еще не 5.0.*...
У классов %Library.FileCharacterStream и %Library.GlobalCharacterStream есть функция ReadLine(). Разделитель строк задается свойством LineTerminator. (Фактически эта функция есть у любого класса, наследуемого от %Library.SerialStream.)

servit
Код: plaintext
1.
2.
3.
4.
  s file=##class(%File).%New()
  s file.Name="c:\boot.ini"
  d file.Open("RF:10")
  while 'file.AtEnd {w file.Read( 1 )}
Файл читается полностью и ничего не теряется. Проверил на версиях 5.0.21 и 2010.1.
Значит, есть что-то машино/ОС/ФС-зависимое в этих функциях.
У меня от исходного
Код: plaintext
1.
2.
3.
4.
5.
6.
[boot loader]
timeout= 5 
default=multi( 0 )disk( 0 )rdisk( 0 )partition( 1 )\WINDOWS
[operating systems]
multi( 0 )disk( 0 )rdisk( 0 )partition( 1 )\WINDOWS="Microsoft Windows XP Professional RU" /fastdetect /NoExecute=OptOut

возвращается только
Код: plaintext
1.
2.
[boot loadeuu0dtWosms(oOsweUteut

, т.е первые 10 символов (размер блока), потом по 1 символу через каждые 10 и последние 4 символа ("ut", перевод строки и возврат каретки).

Из-за этой неопределенности с флагом "F" я предпочитаю пользоваться флагом "U" для бинарных файлов и задаю необходимую мне длину при вызове Read().
...
Рейтинг: 0 / 0
Расстроило вот
    #36390290
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Turk, спасибо за флаг U, наверное он в моем случае больше подходит.

А в случае с "RF"
даже
Код: plaintext
file.OutputToDevice()
будет давать дырки в данных, так как видимо ипользуется все тот же Read без параметров

Servit, вы каким-нибудь тоталкомандером проверьте, действительно ли одинаковыми получились файлы или может быть дырки просто забило какими-нибудь нулями?
Я тестил под WinXP-32bit SP2, Cache 2008.2.1
...
Рейтинг: 0 / 0
Расстроило вот
    #36390363
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ptnдумаю разберетесь
Лишь бы строки читал... Там-то справимся.
...
Рейтинг: 0 / 0
Расстроило вот
    #36390385
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чтение файла построчно (с версии 5.1):
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
s file=##class(%FileCharacterStream).%New()
s file.LineTerminator="," ;или $C( 9 )
s file.Filename="C:\AddressBook.csv"
s file.TranslateTable="CP1251"
while 'file.AtEnd {
  w file.ReadLine(),!
}

TurkЗначит, есть что-то машино/ОС/ФС-зависимое в этих функциях.
Локаль - rus w ; NTFS; Windows XP.

В техподдержку обращались?

Блок А.Н.Servit, вы каким-нибудь тоталкомандером проверьте, действительно ли одинаковыми получились файлы или может быть дырки просто забило какими-нибудь нулями?
Содержимое файла совпадает в Far'е и терминале.

Файл boot.ini:
Код: plaintext
1.
2.
3.
4.
5.
[boot loader]
timeout=5
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional RU" /fastdetect /NoExecute=OptOut

Программа:
Код: plaintext
1.
2.
3.
4.
  s file=##class(%File).%New()
  s file.Name="c:\boot.ini"
  d file.Open("RF:10")
  while 'file.AtEnd {w "**",file.Read( 1 )}
Результат:
Код: plaintext
1.
2.
3.
4.
5.
**[boot load**er]
timeo**ut= 5 
defa**ult=multi(** 0 )disk( 0 )r**disk( 0 )par**tition( 1 )\**WINDOWS
[**operating **systems]
**multi( 0 )di**sk( 0 )rdisk**( 0 )partiti**on( 1 )\WIND**OWS="Micro**soft Windo**ws XP Prof**essional R**U" /fastde**tect /NoEx**ecute=OptO**ut**

Программа:
Код: plaintext
1.
2.
3.
4.
  s file=##class(%File).%New()
  s file.Name="c:\boot.ini"
  d file.Open("RF:1")
  while 'file.AtEnd {w "**",file.Read( 10 )}
Результат:
Код: plaintext
1.
2.
3.
4.
5.
**[**b**o**o**t** **l**o**a**d**e**r**]**
****t**i**m**e**o**u**t**=** 5 **
  **d**e**f**a**u**l**t**=**m**u**l**t**i**(** 0 **)**d**i**s**k**(** 0 **)**r**d**i**s**k**(** 0 **)**p**a**r**t**i**t**i**o**n**(** 1 **)*****W**I**N**D**O**W**S**
****[**o**p**e**r**a**t**i**n**g** **s**y**s**t**e**m**s**]**
  **m**u**l**t**i**(** 0 **)**d**i**s**k**(** 0 **)**r**d**i**s**k**(** 0 **)**p**a**r**t**i**t**i**o**n**(** 1 **)**\**W**I**N**D**O**W**S**=**"**M**i**c**r**o**s**o**f**t** **W**i**n**d**o**w**s** **X**P** **P**r**o**f**e**s**s**i**o**n**a**l** **R**U**"** **/**f**a**s**t**d**e**t**e**c**t** **/**N**o**E**x**e**c**u**t**e**=**O**p**t**O**u**t**
...
Рейтинг: 0 / 0
Расстроило вот
    #36390616
Turk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
servit
TurkЗначит, есть что-то машино/ОС/ФС-зависимое в этих функциях.
Локаль - rus w ; NTFS; Windows XP.
Локаль - ruw8 (и на Cache 5.0, и на Cache 2009.1).
ФС - пробовал на NTFS и FAT32.
ОС - Windows XP Pro SP2.

servitВ техподдержку обращались?
Пока нет необходимости - в рабочем коде флаг "F" не используем. (К тому же, иногда быстрее самим разобраться в проблеме и лишь потом выкладывать ее на WRC.)

С вторым примером все понятно - нельзя считать больше, чем размер блока, заданный в Open().

Проблема кроется где-то в связке OPEN/USE/READ, потому что код без класса дает аналогичный результат:
Код: 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.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
TestFileRead(myfile,reclen= 10 ,buflen= 1 ,delim="**") PUBLIC
{
	s $zt = "errTestFileRead"
	s io = $io
	#;
	o myfile:("FR":reclen): 0   else  s $ze = "<NOFILE>" g errTestFileRead
	#;
	while ( 1 )
	{
		u myfile
		#;
		s buf = ""
		r buf#buflen: 0 
		if $ZEOF  s $ze = "<ENDOFFILE>" g errTestFileRead
		#;
		u io
		w:($l(buf)> 0 ) delim,buf
	}
	#;
	s err = ""
	g exitTestFileRead
	#;
errTestFileRead
	s $zt = ""
	s err = $ze
	if ($e(err, 1 , 11 ) = "<ENDOFFILE>")
	{
		s err = ""
		#;
		u io
		w:($l(buf)> 0 ) delim,buf
	}
	#;
exitTestFileRead
	u io
	c myfile
	q err
}
...
Рейтинг: 0 / 0
Расстроило вот
    #36390625
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
у меня программа
Код: plaintext
1.
2.
3.
 s file=##class(%File).%New()
  s file.Name="c:\boot.ini"
  d file.Open("RF:10")
  while 'file.AtEnd {w "**",file.Read( 1 )}
при boot.ini
Код: plaintext
1.
2.
3.
4.
5.
[boot loader]
timeout= 30 
default=multi( 0 )disk( 0 )rdisk( 0 )partition( 1 )\WINDOWS
[operating systems]
multi( 0 )disk( 0 )rdisk( 0 )partition( 1 )\WINDOWS="Microsoft Windows XP Professional RU" /noexecute=optin /fastdetect /usepmtimer
результат
Код: plaintext
1.
2.
**[boot load**e**u**a**(**r**r**\**[** **
                                         **i**k**i**D**o**o**f**R**c** **c**imer
**
Это уже на Cache for Windows (x86-32) 2007.1.1 (Build 420) Fri Jun 29 2007 20:18:20 EDT
(из дома)

Кстати, Servit, а у вас программа хоть файл и не калечит, но работает то тоже неправильно: Read(1), а считывает по факту по 10 байт, то есть параметр игнорирует.
...
Рейтинг: 0 / 0
Расстроило вот
    #36391145
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пример у Вас не работает из-за того, что в локали ruw8 кодировка по умолчанию для файлов - RAW . Если поменять, например, на UTF8 , то код выше заработает.
Или можно кодировку указать непосредственно при открытии файла:
Код: plaintext
d file.Open("RK\UTF8\F:10")
Блок А.Н.Кстати, Servit, а у вас программа хоть файл и не калечит, но работает то тоже неправильно: Read(1), а считывает по факту по 10 байт, то есть параметр игнорирует.
Код работает согласно документации . То есть данные читаются пакетами (порциями) фиксированной длины. Это легко проверить:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
set file=##class(%File).%New()
set file.Name="C:\Boot.ini"
;d file.Open("R")
d file.Open("RK\UTF8\F:10")
while 'file.AtEnd {
  set len= 1 
  w "хотим прочитать ",len," символов",! 
  d file.Read(.len)
  w "фактически прочитано ",len," символов",! 
}

PS: если вопросов больше нет, предлагаю для разминки решить средствами Caché задачу с Олимпиады-2009 по Oracle, опубликованную на соседнем форуме.
Предлагаю свой вариант решения при Undefined=2 (код лучше смотреть при наличии собственного решения):
COS-код
Код: 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.
29.
  set time=$ZH
  for i= 1 : 1 : 3999  {
    k rim,kc,ks
    ;дополняем число до  4 -ёх цифр
    set s=$system.SQL.TOCHAR(i,"FM0000")
    ;переводим число в римский формат
    set rim=$case($e(s, 1 ), 0 :"", 1 :"M", 2 :"MM", 3 :"MMM",:"")_
	    $case($e(s, 2 ), 0 :"", 1 :"C", 2 :"CC", 3 :"CCC", 4 :"CD", 5 :"D", 6 :"DC", 7 :"DCC", 8 :"DCCC", 9 :"CM",:"")_
	    $case($e(s, 3 ), 0 :"", 1 :"X", 2 :"XX", 3 :"XXX", 4 :"XL", 5 :"L", 6 :"LX", 7 :"LXX", 8 :"LXXX", 9 :"XC",:"")_
	    $case($e(s, 4 ), 0 :"", 1 :"I", 2 :"II", 3 :"III", 4 :"IV", 5 :"V", 6 :"VI", 7 :"VII", 8 :"VIII", 9 :"IX",:"")
    ;подсчитываем количество каждой из букв
    for j= 1 : 1 :$l(rim) {
      s c=$e(rim,j)
      s rim(c)=rim(c)+ 1 
    }
    set key=$o(rim(""))
    while key'="" {
      set kc=kc+ 1  ;вычисляем количество уникальных букв
      set:rim(key)>= 3  ks=ks+ 1  ;вычисляем количество букв общим числом  3  и более каждая
      set key=$o(rim(key))
    }
    if (kc= 5 )&(ks= 3 ) {
      set rownum=rownum+ 1 
      set sum=sum+i
      w "#",rownum," ",? 6 ,rim," ",? 20 ,i,!
    }
  }
  w "Сумма = ",sum,!
  w "Время = ",$ZH-time," (c.)",!

Эта статья может пригодиться при решении задачи.
...
Рейтинг: 0 / 0
Расстроило вот
    #36391537
Turk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
servitКод работает согласно документации . То есть данные читаются пакетами (порциями) фиксированной длины.
Там ничего не сказано о том, что при заданной кодировке (т.е. отличной от RAW) количество считанных символов в READ будет отличаться от задаваемого. (Да и в RAW эта проблема тоже есть для первого и последнего READ из файла.)
Зато в той же документации написано:
Код: plaintext
1.
2.
3.
A fixed-length read has the following format:
READ variable#length
A fixed-length read accepts a maximum of length input characters and stores them in the specified variable. Input concludes automatically when the specified number of characters is input, or when a terminator character is encountered. For example, entering two characters in a four-character fix-length read, and then pressing the <Enter> key. The input characters, but not the terminator character (if any), are stored in variable.
В любом случае, это или баг, или неполноценность документации.
...
Рейтинг: 0 / 0
Расстроило вот
    #36395372
MX-9
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
servit,

s q=0 f n="M","C","X","I" s q=$l(rim,n)-1'<3+q i q'<3 s sum=sum+i q


С Новым MMX годом !
...
Рейтинг: 0 / 0
Расстроило вот
    #36840467
Ostika
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вопрос почти по теме. Нужно записать строки из глобала в файл, созданный для записи. Есть код:
Код: plaintext
1.
2.
3.
s f=##class(%File).%New(iFile)
s sc=f.Open("WNKS:/IOTABLE=""RAW""")
s sc=f.Write(istr)
d f.Close() k f

Поскажите, где можно найти более подробную информацию по этим функциям и что они означают?
...
Рейтинг: 0 / 0
Расстроило вот
    #36840514
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OstikaПоскажите, где можно найти более подробную информацию по этим функциям
Это не функции... Это экземпляр класса и его методы...
Открой документацию Каше... Зайди в Класс референс... Найди пакет %system... Найди там класс File... Далее знакомься с его свойствами и методами.

Ostikaчто они означают?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
// создали экземпляр класса
s f=##class(%File).%New(iFile)
// открыли файл с определенным "типом" и "доступом"
s sc=f.Open("WNKS:/IOTABLE=""RAW""")
// записали в него значение переменной istr
s sc=f.Write(istr)
// закрыли файл
d f.Close() 
// удалили ссылку на экземпляр класса
k f
...
Рейтинг: 0 / 0
Расстроило вот
    #36840549
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и зачем вводить в заблуждение, пакет не %system, а %Library
...
Рейтинг: 0 / 0
Расстроило вот
    #36840562
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нвводил... Ошибся...
...
Рейтинг: 0 / 0
25 сообщений из 28, страница 1 из 2
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Расстроило вот
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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