powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Парсинг CSV
41 сообщений из 41, показаны все 2 страниц
Парсинг CSV
    #38481688
drakut
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Таблица с одним столбцом, где некие номера (ID-шники), сохранена в *.CSV. Как мне получить эти ID-шники средствами cache object script?
...
Рейтинг: 0 / 0
Парсинг CSV
    #38481694
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
drakutКак мне получить эти ID-шники средствами cache object script?
Открыть тот файл... Читать его с терминатором "возврат_каретки + перевод_строки", пока файл не кончится...
Прочитаные строки и будут твоими ИДшниками.
...
Рейтинг: 0 / 0
Парсинг CSV
    #38481733
drakut
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
krvsa, буду благодарен за пример кода
...
Рейтинг: 0 / 0
Парсинг CSV
    #38481849
Ptn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
drakut,
  set filename = "blabla.csv"
  set stream = ##class(%Stream.FileCharacter).%New()
  set stream.StreamFormatWrite = 0
  set status=stream.LinkToFile(filename)    
  if $$$ISOK(status) {
    do  {
      set str = $ZSTRIP($ZSTRIP(stream.ReadLine(,.status),"<>W"),"<>C") quit:$$$ISERR(status)  
      if $extract(str,1) = "#" {continue  } /// Комментарии
      if str = "" {continue  }
        
      set str = $replace(str,"""","")
        
      set strlist = $listfromstring(str,";")            
          
    }while ('stream.AtEnd)
  }
  set stream = "" Модератор: поправил код
...
Рейтинг: 0 / 0
Парсинг CSV
    #38481853
Ptn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
только prevstr там конечно же нет, забыл убрать
...
Рейтинг: 0 / 0
Парсинг CSV
    #38481896
drakut
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ptn, забыл упомянуть: Версия Каши 5.021, нету класса ##class(%Stream.FileCharacter).
...
Рейтинг: 0 / 0
Парсинг CSV
    #38481897
drakut
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ptn, так же ругается на set str = $replace(str,"""","") и set strlist = $listfromstring(str,";")
...
Рейтинг: 0 / 0
Парсинг CSV
    #38481907
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
drakutбуду благодарен за пример кода
Как вариант...
START /* Пример чтения файла построчно */
  n
  s file="d:\box\tmp.csv"
  s file=$$FOpen(file,"R")
  i file="" w !!,"Проблемы с открытием файла..." q
  do {
    u file
    r str
    s end=$$FEnd 
    u $p
    w str,!
  } while 'end
  c file
  q
FOpen(File,Typ,Sym) /* Открыть файл */
  S Typ=$G(Typ,"WNS")
  S:Typ="W" Typ="WNS"
  S:Typ="R" Typ="RS"
  S Sym=$G(Sym,$C(13,10))
  I $ZU(68,40,1)
  O File:(Typ::Sym):0
  Q:$T File
  Q ""
FEnd() /* Достигнут конец файла */
  q $ZEOF=-1
...
Рейтинг: 0 / 0
Парсинг CSV
    #38481937
doublefint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
drakut, еще
    s file = ##class(%File).%New( "blabla.csv" )
    s sc = file.Open( "R" ) ;проверить sc
    while 'file.AtEnd {

        s str=file.ReadLine() 

        for i=1:1:$l( str, ";" ) {

            s id=$p( str, ";" ,i ) w !, id

        }
        
    }
    d file.Close()
...
Рейтинг: 0 / 0
Парсинг CSV
    #38481949
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ребята, не расскрашивайте код программ. При цитировании показывает настоящую галиматью.
...
Рейтинг: 0 / 0
Парсинг CSV
    #38481952
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
doublefint
Код: vbnet
1.
s str=file.ReadLine() 


Оба-на! Чтение строки появилось в Кащее!!!
Видать что-то здохло в лесу...
...
Рейтинг: 0 / 0
Парсинг CSV
    #38481955
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
doublefint
Код: vbnet
1.
d file.Close()


Вроде по последним сведениям ВЦСПС достаточно удаления орефа
Код: vbnet
1.
k file


Или с файлами не так?
...
Рейтинг: 0 / 0
Парсинг CSV
    #38481959
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsaРебята, не расскрашивайте код программ. При цитировании показывает настоящую галиматью. Что именно мешает Вам при цитировании?
...
Рейтинг: 0 / 0
Парсинг CSV
    #38481965
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
servitkrvsaРебята, не расскрашивайте код программ. При цитировании показывает настоящую галиматью. Что именно мешает Вам при цитировании?
Там тьма БиБи-кодов... И выбрать нужный кусок целая проблема...
...
Рейтинг: 0 / 0
Парсинг CSV
    #38481967
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsadoublefint
Код: vbnet
1.
s str=file.ReadLine() 


Оба-на! Чтение строки появилось в Кащее!!!
Видать что-то здохло в лесу...Ну ReadLine у стримов, вроде как уже довольно давно.
...
Рейтинг: 0 / 0
Парсинг CSV
    #38481969
doublefint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ptn, $ZSTRIP($ZSTRIP( str ,"<>W"),"<>C") -> $zstrip( str, "<>WC" )
...
Рейтинг: 0 / 0
Парсинг CSV
    #38481973
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsaИли с файлами не так?Не так: файл - это внешний ресурс по отношению к Caché, так же как сокеты и т.д.
...
Рейтинг: 0 / 0
Парсинг CSV
    #38481978
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsaТам тьма БиБи-кодов... И выбрать нужный кусок целая проблема... Выбрать из самого кода ( не цитаты ) не пробовали?
...
Рейтинг: 0 / 0
Парсинг CSV
    #38481981
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
servitНе так
Т.е. в случае с файлом - клозим ореф, а киляние можно и не делать?
...
Рейтинг: 0 / 0
Парсинг CSV
    #38481985
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DAiMorНу ReadLine у стримов, вроде как уже довольно давно.
Смотря с какого времени вести отсчет...
...
Рейтинг: 0 / 0
Парсинг CSV
    #38481989
doublefint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsaОба-на! Чтение строки появилось в Кащее!! Угу, еле дождался выпуска версии 5.0 :)
P.S. Под рукой нет развернутой v4, но есть подозрение....
...
Рейтинг: 0 / 0
Парсинг CSV
    #38481990
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
servitВыбрать из самого кода ( не цитаты ) не пробовали?
Зачем мне это делать? Просто не расскарывайте коды. Хотя бы чужие... Это ведь не трудно... Просто ничего не далайте и все.
...
Рейтинг: 0 / 0
Парсинг CSV
    #38482011
doublefint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsa Или с файлами не так? Правило "Открыл-Закрой"? Подсмотрел в %File:
/// Close the current file.
Method Close()
{
  If ..IsOpen {
    Close ..Name  ; <--- !!! 
    Set i%IsOpen=0,..AtEnd=0
  }
  Quit
}

Method %OnClose() As %Status [ Private ]
{
  #; close the file if open
  Do:..IsOpen ..Close() ; <--- !!!
  Quit $$$OK
}
...
Рейтинг: 0 / 0
Парсинг CSV
    #38482047
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
doublefint , ранее и классы клозились... А потом это отменили...
...
Рейтинг: 0 / 0
Парсинг CSV
    #38482051
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsaТ.е. в случае с файлом - клозим ореф, а киляние можно и не делать?Закрытие файла - это одно, закрытие (освобождение) переменной-указателя на файл - это другое.

Зачастую "килять" переменные уже нет смысла, поскольку, начиная с версии 5.1, ProcedureBlock включён по умолчанию.
Всё зависит от области видимости Вашей переменной.

PS:
...
Рейтинг: 0 / 0
Парсинг CSV
    #38482058
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsaЗачем мне это делать?Хорошо, не делайте.krvsaПросто не расскарывайте кодыУвы.
...
Рейтинг: 0 / 0
Парсинг CSV
    #38482078
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
servitЗачастую "килять" переменные уже нет смысла, поскольку, начиная с версии 5.1, ProcedureBlock включён по умолчанию.
Меня на этом подловили как-то раз...
Переменная была "заньюшена" в процедуре... Но так же применялась смена областей... По выходу из процедуры получил неожиданный, для себя, результат...
С тех пор всегда киляю.
...
Рейтинг: 0 / 0
Парсинг CSV
    #38482088
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsaПеременная была "заньюшена" в процедуре... Но так же применялась смена областей... По выходу из процедуры получил неожиданный, для себя, результат...Можно пример кода?
...
Рейтинг: 0 / 0
Парсинг CSV
    #38482109
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsa ,

Цитата из документацииVariables used within procedures are automatically private to that procedure. Hence, you do not have to declare them as such and they do not require a NEW command.

Procedure Variables
...
Рейтинг: 0 / 0
Парсинг CSV
    #38482367
drakut
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
doublefint,
s str=file.ReadLine()
^
<METHOD DOES NOT EXIST>

krsva,
БОЛЬШОЕ Вам спасибо, ваш код работает. Выражаю вам большую благодарность и респект, если позволите.
...
Рейтинг: 0 / 0
Парсинг CSV
    #38482380
doublefint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
drakut, EPIC FAIL :(
...
Рейтинг: 0 / 0
Парсинг CSV
    #38482415
doublefint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Действительно, ReadLine появился только в 5.1 пруф из 5.2 :( .
...
Рейтинг: 0 / 0
Парсинг CSV
    #38482440
Ptn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
drakut,

Ну .... старая у вас каша, что могу сказать. Стрим заменить на %File, вместо $replace можно использовать $TR c теми же аргументами
В любом случае он не обязателен, это я кавычки от Excel удаляю, у вас их нет
...
Рейтинг: 0 / 0
Парсинг CSV
    #38482441
doublefint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Посыпаю голову пеплом
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
%SYS>w $zv
Cache for Windows NT (Intel) 5.0.21 (Build 6408U) Tue Jan 3 2006 13:30:53 EST
%SYS>s file="test.csv"
%SYS>o file:"WN"
%SYS>u file w "9;10;11;12",!
%SYS>u file w "12;14;15;16",!
%SYS>c file

%SYS>s file=##class(%File).%New("test.csv")
%SYS>w file.Open("R::$C(13,10)")
1
%SYS>w file.Read(32000)
9;10;11;12
%SYS>w file.Read(32000)
12;14;15;16
%SYS>w file.Read(32000)
 
%SYS>w file.AtEnd
1
%SYS>d file.Close()
...
Рейтинг: 0 / 0
Парсинг CSV
    #38482445
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
drakutdoublefint,
s str=file.ReadLine()
^
<METHOD DOES NOT EXIST>Достаточно вместо класса %File использовать %FileCharacterStream , то есть  s file = ##class(%File).%New( "blabla.csv" )
  s sc = file.Open( "R" ) ;проверить sc
  while 'file.AtEnd {
    ...
  }
  d file.Close()заменить на  s file=##class(%FileCharacterStream).%New()
  s file.Filename="c:\blabla.csv"
  while 'file.AtEnd {
    s str=file.ReadLine() 
    w str,!
  }Проверил на версии 5.0.21 - работает.
...
Рейтинг: 0 / 0
Парсинг CSV
    #38482493
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
servitkrvsaПеременная была "заньюшена" в процедуре... Но так же применялась смена областей... По выходу из процедуры получил неожиданный, для себя, результат...Можно пример кода?
Так я уже переделал, искать лень... Я вроде даже тут примеры приводил... С форума и совет - килять нафик орефы при любом раскладе! :))
На том я и остановился...
...
Рейтинг: 0 / 0
Парсинг CSV
    #38482495
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
servit krvsa ,

Цитата из документацииVariables used within procedures are automatically private to that procedure. Hence, you do not have to declare them as such and they do not require a NEW command.

Procedure Variables
Это все новые синтаксисы...
...
Рейтинг: 0 / 0
Парсинг CSV
    #38482497
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
drakutkrsva,
БОЛЬШОЕ Вам спасибо, ваш код работает. Выражаю вам большую благодарность и респект, если позволите.
Пользуйся на здоровье...
...
Рейтинг: 0 / 0
Парсинг CSV
    #38482500
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Думаю тема чтения из файла раскрыта полностью!
Примеры на любой вкус и цвет!
...
Рейтинг: 0 / 0
Парсинг CSV
    #38482849
drakut
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
krvsa,

Вы правы, тема раскрыта довольно хорошо. Даешь stackoverflow для каши!
...
Рейтинг: 0 / 0
Парсинг CSV
    #38482950
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
drakutkrvsa,

Вы правы, тема раскрыта довольно хорошо. Даешь stackoverflow для каши!Ну вообще то он есть , хоть там и меньше вопросов чем здесь но там тоже есть кому помочь с вопросами по Cache а так же по Ensemble ну и общий тег по intersystems тоже есть
...
Рейтинг: 0 / 0
41 сообщений из 41, показаны все 2 страниц
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Парсинг CSV
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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