powered by simpleCommunicator - 2.0.37     © 2025 Programmizd 02
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / [gt.m] Работа с файлом
10 сообщений из 10, страница 1 из 1
[gt.m] Работа с файлом
    #39114651
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для работы с dbf файлами в Каше используем такой тип открытия файла - RWU .
Как сделать аналогичное открытие в gt.m?

Так же используем смещение при работе с файлом
Код: html
1.
u <устройство>:<смещение>


Поскольку с аглицким не очень... Правильно ли понял, что аналог в gt.m
Код: html
1.
u <устройство>:(SEEK=<смещение>)
...
Рейтинг: 0 / 0
[gt.m] Работа с файлом
    #39114661
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsaтип открытия файла - RWU
Это позволяло нам читать и писать в файл... Производить позиционирование внутри него...
...
Рейтинг: 0 / 0
[gt.m] Работа с файлом
    #39114704
Valeriu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsa,
Сюда смотрели ?
http://tinco.pair.com/bhaskar/gtm/doc/books/pg/UNIX_manual/ch09s09.html
Там есть пример.
GTM>zprint ^seekdemo
...
Рейтинг: 0 / 0
[gt.m] Работа с файлом
    #39114891
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ValeriuСюда смотрели ?
Ты пальцем покажи чего в итоге написать для аналогичного доступа?
...
Рейтинг: 0 / 0
[gt.m] Работа с файлом
    #39114965
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В примере при таком открытии
Код: javascript
1.
open p:(fixed:recordsize=60:seek="5")


seek смещает курсор на N-ное количество recordsize... В данном случае на
Код: javascript
1.
recordsize*5


А мне нужно побайтовое смещение...

Открывать тогда так?
Код: javascript
1.
open p:(fixed:recordsize=1)



Но потом мне нужно читать данные разной длины по таком "варианту"
Код: javascript
1.
r str#<количество_байт>



В примере в файл сначала записали... Потом его закрыли.
В моем же варианте нужно и читать и писать одновременно. Вариант с таким открытием
Код: javascript
1.
open p:(fixed)


дает мне такую возможность?
...
Рейтинг: 0 / 0
[gt.m] Работа с файлом
    #39114976
Valeriu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsa,
К сожалению не используем.
Кроме на то что они дают, на то и пальцем показал ...
Код: vbnet
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.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
seekdemo
  new x,p
  set p="seekfixed"
  open p:(newversion:fixed:recordsize=60)
  use p
  ; create file with 9 records of length 60 bytes each
  ; number from 0 to correspond to record offset
 
  for i=0:1:8 write $justify(i_" - [-05-|-10-|-15-|-20-|-25-|-30-|-35-|-40-|-45-|-50-|-55-|",60)
  use p:rewind
  for i=0:1:8 read x set zk=$zkey use $p write "x= ",x," $zkey= ",zk,! use p
  close p
  write !!,"** OPEN with FIXED:RECORDSIZE=60:seek=""5""",!
  open p:(fixed:recordsize=60:seek="5")
  use p
  read x set ZKEY=$zkey
  ;expect: $ZKEY= 6,0
  use $p write "x= ",x," $zkey= ",ZKEY,!
  write !,"** use with SEEK=""-3""",!
  use p:seek="-3"
  read x set ZKEY=$zkey
  ;expect: $ZKEY= 4,0
  use $p write "x= ",x," $zkey= ",ZKEY,!
  write !,"** use with SEEK=""-1"" to read from the same record. read x#20 to read a partial record",!
  use p:seek="-1"
  read x#20 set ZKEY=$zkey
  ;expect: $ZKEY= 3,20
  use $p write "x= ",x," $zkey= ",ZKEY,!
  write !,"** read x#40 to finish reading the record",!
  use p
  read x#40 set ZKEY=$zkey
  ;expect: $ZKEY= 4,0
  use $p write "x= ",x," $zkey= ",ZKEY,!
  write !,"** CLOSE NODESTROY and reOPEN with no deviceparameters",!
  close p:nodestroy
  open p
  use p
  read x set ZKEY=$zkey
  ;expect: $ZKEY= 5,0
  use $p write "x= ",x," $zkey= ",ZKEY,!
  write !,"** CLOSE NODESTROY and reOPEN with SEEK=""+2""",!
  close p:nodestroy
  open p:seek="+2"
  use p
  read x set ZKEY=$zkey
  ;expect: $ZKEY= 8,0
  use $p write "x= ",x," $zkey= ",ZKEY,!
  write !,"** CLOSE NODESTROY and reOPEN with M:SEEK=""+3""",!
  close p:nodestroy
  open p:(M:seek="+3")
  use p
  read x set ZKEY=$zkey
  ;expect: $ZKEY= 4,0
  use $p write "x= ",x," $zkey= ",ZKEY,!
  write !,"** CLOSE NODESTROY and reOPEN with APPEND:SEEK=""-1""",!
  close p:nodestroy
  open p:(append:seek="-1")
  use p
  read x set ZKEY=$zkey
  ;expect: $ZKEY= 9,0
  use $p write "x= ",x," $zkey= ",ZKEY,!
  close p
  write !,"** CLOSE DESTROY and OPEN non-fixed with SEEK=""120"" and read 60 bytes",!
  open p:seek="120"
  use p
  read x#60 set ZKEY=$zkey
  ;expect: $ZKEY= 180
  use $p write "x= ",x," $zkey= ",ZKEY,!
  write !,"** CLOSE NODESTROY and reOPEN with append:SEEK=""-60"" and read last 60 bytes",!
  close p:nodestroy
  open p:(append:seek="-60")
  use p
  read x#60 set ZKEY=$zkey
  ;expect: $ZKEY= 540
  use $p write "x= ",x," $zkey= ",ZKEY,!
  close p
  quit

...
Рейтинг: 0 / 0
[gt.m] Работа с файлом
    #39114982
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ValeriuК сожалению не используем.
Т.е. как открыть файл для чтения и записи одновременно пока - х/з?
И как смещаться "побайтово" так же - х/з?
...
Рейтинг: 0 / 0
[gt.m] Работа с файлом
    #39114984
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valeriu , может в gt.m есть какие-то приблуды для работы с dbf-файлами?
...
Рейтинг: 0 / 0
[gt.m] Работа с файлом
    #39115266
Valeriu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsa,
Не знаются ... dbf.
...
Рейтинг: 0 / 0
[gt.m] Работа с файлом
    #39117581
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В итоге замастырили такой вариант...tmp ;;;;[ 01.12.2015 16:55 ]
READ
  d CREATE
  s dev=$$fOpen("/srv/box/test.txt","M")
     u dev
  r ttl#4
  u $p
  zwr ttl
  u dev
  w "XY"
  w "Z"
  d closeDbf(dev)
  q
CREATE
  s dev=$$fOpen^zsys("/srv/box/test.txt","W")
     u dev
     w "123456789"
  c dev
  q
fOpen(File,Typ,Byte,Sym)
  s:$g(Typ)="" Typ="W"
  q:":\/"[$e(File,$l(File)) ""
  i Typ="W" o File:(newversion:noreadonly):0 q $s($t:File,1:"")
  i Typ="M" o File::0 q $s($t:File,1:"")
  o File:(readonly):0
  q $s($t:File,1:"")
closeDbf(Dev)
  d use(Dev,0)
  c Dev
  q
use(Dev,Byte)
  s:$g(Dev)="" Dev=$p
  i $g(Byte)="" u Dev q
  u Dev:(seek=Byte)
  q
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / [gt.m] Работа с файлом
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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