|
|
      Модуль класса StatFile, внедренный в проект, упрощает программирование работы с файлами отчетности НБУ. Опишем для начала свойства и методы объекта. Так как я расчитываю, что описание будут читать люди понимающие в программировании, то буду краток.
      Свойства:
      EndDate as Date - возвращает дату окончания периода отчетности, если файл открыт;
      FileEOF as Boolean - возвращает значение true, если достигнут конец файла;
      FileFormat as Variant - устанавливает формат файла перед его открытием. Содержит двухмерный массив Array (количество полей в блоке признаков - 1, 1). Array (i,0) - номер первого символа поля, Array (i,1) - длинна поля. Тут i = номер поля - 1. Нельзя присваивать значения этого массива поочереди. Разрешается только присвоить этому свойству готовый массив.
      FormDate as Date - возвращает дату формирования отчетности, если файл открыт;
      MFO as String - возвращает МФО банка, если файл открыт;
      Path as String - устанавливает путь и имя загружаемого файла;
      StartDate as Date - возвращает дату начала периода отчетности, если файл открыт.
      Методы:
      FileClose - закрывает файл;
      OpenFile [OnlyHeader as boolean] - открывает файл. Перед этим должны быть установлены свойства Path и FileFormat. Параметр OnlyHeader по умолчанию равен false. Если его установить в true, то метод заполнит только параметры файла (FormDate, StartDate, EndDate, MFO) и после этого автоматически закроет файл. Этот способ может помочь в случае, если Вы ищете какой-то конкретный файл в директории. При этом свойство FileFormat устанавливать не нужно.
      ReadNext as Variant метод возвращает следующий информационный ряд в виде массива строковых переменных, где индексом является номер поля - 1. При этом последний элемент - это значение показателя.
      Пример использования:
      Dim f as New StatFile 'Создаем новый экземпляр класса
      Dim a(3,1) as Byte
      Dim v as Variant
      Dim i as Integer
      'Подготовка массива для свойства формата
      a(0,0)=1 : a(0,1)=2
      a(1,0)=3 : a(1,1)=4
      a(2,0)=7 : a(2,1)=3
      a(3,0)=10 : a(3,1)=1
      'Иницилизация свойств
      With f
            .Path = "c:\#01izka1.ca1"
            .FileFormat = a
      End With
      f.OpenFile 'Открываем файл
      'Распечатываем параметры открытого файла
      With debug
            .print f.FormDate
            .print f.StartDate
            .print f.EndDate
            .print f.MFO
            .print "---"
      End With
      'Последовательно считываем информационные ряды и распечатываем в окне отладки
      Do Until f.FileEOF
            v=f.ReadNext
            For i=0 To 4
                  debug.print v(i) & ";"
            Next i
            debug.print "--"
      Loop
      'Закрываем файл
      f.FileClose |
|