RU/2: Форум. Общение пользователей и разработчиков OS/2 (eCS). : Ответить на сообщение
Имя:
e-mail:
FIDO:
Home page:
сохранить данные о вас
Тема:
> > > Так не пробовал? > > > Call Stream file,'c','open' > > > sf=Chars(file) > > > s=CharIn(file, 1, sf) > > Как сказано ниже, нужно не в переменную, а в массив. > > > Если файл текстовый, то для совместимости с SysFileSearch лучше читать строками через LineIn, например так: > > ----- > > i = 0 > > do while lines(inFile) > 0 > > i = i + 1 > > Str.i = linein(inFile) > > end > > Str.0 = i > > ----- > > Не в одну строку, конечно, но можно это вынести в подпрограмму и вызывать одной строкой. > > К такой схеме я так же пришёл. Жаль, что утерян такой удобный метод чтения. > > Для очистки совести сварганил такой файл > > inFile='SERVER.rexx' > say time('e') > i=0 > do while lines(inFile) > 0 > i=i+1 > Str.i=linein(inFile) > end /* while */ > Str.0=i > say time('e') > say 'Str.0='Str.0 > > > say time('r') > EOL=x2c(0d0a) > call Stream inFile,'c','open' > FileLen=Chars(inFile) > FileStr=CharIn(inFile, 1, FileLen) > i=0 > do while FileStr<>'' > i=i+1 > parse value FileStr with Str.i (EOL) FileStr > end /* while */ > Str.0=i > say time('e') > say 'Str.0='Str.0 > > Он загружает файл длиной 7547 строк. > Так вот, метод через linein() выполняется у меня 0,042, метод через CharIn() 0,965. > Тут выбор очевиден :) > > Метод SysFileSearch() забирает этот же файл, за 0,005 > Более чем существенная просадка по скорости... > > Попробую искать дальше > > > > > Переписываю на OORexx свои скрипты. > > > > Нужно прочитать текстовый файл в массив одной командой. В Regina и OS/2 для этого использую SysFileSearch с шаблоном для поиска "0D". > > > > Target=x2c(0d) > > > > call SysFileSearch Target, File, 'Str.' > > > > А вот в OORexx такой фокус не прокатывает. > > > > Подскажите, чем можно заменить. >
__, _,_ __, _,_ _,
|_) | | | \ | / /_\
| \ | | |_/ |/ | |
~ ~ `~' ~ ~ ~ ~
Programmed by
Dmitri Maximovich
,
Dmitry I. Platonoff
,
Eugen Kuleshov
.
25.09.99 (c) 1999,
RU/2
. All rights reserved.
Rewritten by
Dmitry Ban
. All rights ignored.