Автор Тема: DTCIS 1.7 передача данных  (Прочитано 4474 раз)

Оффлайн Мутант

  • Старенький
  • **
  • Сообщений: 48
  • Карма: +15/-0
    Re: DTCIS 1.7 передача данных
    « Ответ #15 : 21 Ноябрь 2014, 01:42:19 »
    Нашёл структуру файла:
    DWORD SeekFromBegin; // смещение от начала файла в байтах
    float Depth;         // значение ключевого поля
    long  DateTime;      // ключевое время данных параметры программы DMAS
    long  n;             // номер записи
    long  nb;            // номер записи
    char  omen;          // флаг состояния записи.

    Объясните, пожалуйста, эти параметры относятся к строке или одной ячейке? Что за смещение от начала? И что лежит в номере записи и почему их 2?  ???
    Параметры являются характеристикой строки.
    Смещение в байтах от начала файла - это позиция начала записи строки.
    Насколько я помню, там присутствует порядковый номер записи и длина/размер строки в байтах, но я это предположение.
    Давно не работал с этим форматом. Он довольно старый и примитивный.

    Оффлайн nick2

    • Старенький
    • **
    • Сообщений: 31
    • Карма: +1/-0
      Re: DTCIS 1.7 передача данных
      « Ответ #16 : 21 Ноябрь 2014, 02:20:20 »
      Нашёл структуру файла:
      DWORD SeekFromBegin; // смещение от начала файла в байтах
      float Depth;         // значение ключевого поля
      long  DateTime;      // ключевое время данных параметры программы DMAS
      long  n;             // номер записи
      long  nb;            // номер записи
      char  omen;          // флаг состояния записи.

      Объясните, пожалуйста, эти параметры относятся к строке или одной ячейке? Что за смещение от начала? И что лежит в номере записи и почему их 2?  ???
      Параметры являются характеристикой строки.
      Смещение в байтах от начала файла - это позиция начала записи строки.
      Насколько я помню, там присутствует порядковый номер записи и длина/размер строки в байтах, но я это предположение.
      Давно не работал с этим форматом. Он довольно старый и примитивный.
      Ну ладно, с номером может ещё разберусь. В основном в файле он почему-то по нулям весь, кроме первого байта(файл заведомо нормальный, брал со станции) и второй номер просто дублирует первый.
      Про смещение от начала, оно указывает на начало записи одного какого-то параметра? Ну типа "Вес на крюке" в dep файле на 55 байте начинается, значит и в lst файле будет указан что он 55, так?

      Что сам dep файл, что lst, в принципе не особо сложные и описание есть, но почему-то на самом простом возникают какие-то проблемы. Бывает запись/чтение файла идёт нормально, но стоит что-нибудь немного подправить и всё летит... :)

      Оффлайн nick2

      • Старенький
      • **
      • Сообщений: 31
      • Карма: +1/-0
        Re: DTCIS 1.7 передача данных
        « Ответ #17 : 21 Ноябрь 2014, 16:12:34 »
        "long  DateTime;      // ключевое время данных параметры программы DMAS"

        Откуда оно берётся?

        Оффлайн Мутант

        • Старенький
        • **
        • Сообщений: 48
        • Карма: +15/-0
          Re: DTCIS 1.7 передача данных
          « Ответ #18 : 23 Ноябрь 2014, 01:06:56 »
          "long  DateTime;      // ключевое время данных параметры программы DMAS"

          Откуда оно берётся?
          Из файла *.dep

          Онлайн 127486

          • Старожил
          • ****
          • Сообщений: 510
          • Карма: +34/-9
            Re: DTCIS 1.7 передача данных
            « Ответ #19 : 24 Ноябрь 2014, 15:36:18 »
            Не вижу необходимости вообще использовать lst.

            Онлайн 127486

            • Старожил
            • ****
            • Сообщений: 510
            • Карма: +34/-9
              Re: DTCIS 1.7 передача данных
              « Ответ #20 : 24 Ноябрь 2014, 15:51:34 »
              Вот в закромах нашел. Может пригодится.

              ////////////
              DEP-2 формат

              Мы предлагаем следующий вариант, который нас устраивает. Наличие заголовка не отрицается, но его формат требует более детального обсуждения и не настолько важен в настоящее время, главное - это формат записей и индексного файла.

              //#############################################################################
              // Новый формат DEP-файлов (DP2) ##############################################
              //#############################################################################

              // структура записи индексного файла .IDX для .DEP-файла ======================
              typedef struct _DEP2IndexDepIDX
              {
                  DWORD       SeekFromBegin;  // смещение от начала файла в байтах
                  float       KeyValue;       // значение ключевого поля
                  int         KeyCode;        // код параметра ключевого поля
                  DBTIMESTAMP DateTime;       // время данных
                  int         KeyDateTime;    // код параметра времени данных
                  // параметры программы DMAS
                  int     RecNO;              // номер записи
                  char    Flags;              // флаг состояния записи:
                                              //      0 - нормальная,
                                              //      1 - отмечена
                                              //      2 - удалена
                                              //      3 - истинная глубина
                  char reserved[13];
              } DEP2IndexDepIDX;

              // заголовок записи .DEP-файла ================================================
              #define DEP2HeaderText  "DP2"
              typedef struct _DEP2HeaderDep
              {
                  char IdHeader[3];   // идентификационная последовательность (необходима для
                                      // идентификации начала записи при восстановлении
                                      // испорченных данных)
                  int             KeyCode;        // код параметра ключевого поля
                  unsigned long   NumRecord;      // номер записи
                  unsigned short  NumAllPars;     // количество параметров в записи
                  unsigned short  RecLength;      // полная длина записи в байтах, включая
                                                  // данный заголовок
              } DEP2HeaderDep;

              // заголовок значения параметра в записи .DEP-файла ===========================
              typedef struct _DEP2ParamDep
              {
                  unsigned short  ParamCode;  // идентификационный код параметра
                  unsigned short  UnitCode;   // идентификационный код единицы измерения
                  unsigned short  Length;     // полная длина значения (массива значений) в
                                              // байтах, необходима для идентификации записанного
                                              // массива данных, а также для продолжения чтения
                                              // записи при наличии неизвестного параметра
              } DEP2ParamDep;

              ////////////////////////

              Оффлайн nick2

              • Старенький
              • **
              • Сообщений: 31
              • Карма: +1/-0
                Re: DTCIS 1.7 передача данных
                « Ответ #21 : 24 Ноябрь 2014, 19:22:46 »
                Не вижу необходимости вообще использовать lst.
                Без .lst файла тот же TEditor(пока только на нём тестирую, дабы структуру подогнать) не может открыть файл.




                Вот в закромах нашел. Может пригодится.
                *************************
                Во, спасибо большое! Я смог записать в .dep файл, смог для него собрать .lst файл, но всё равно были какие-то недопонимания по типам, размерность не совпадала, а тут(в коде) другие типы используются, как раз те, которые мне нужны)

                Оффлайн nick2

                • Старенький
                • **
                • Сообщений: 31
                • Карма: +1/-0
                  Re: DTCIS 1.7 передача данных
                  « Ответ #22 : 10 Декабрь 2014, 16:05:15 »
                  Появился ещё вопрос.
                  Для записи в .dep файл используются разные параметры, формат их, описан в справочнике. Вот те которые в справочнике написаны как "f",т.е. тип float, пишутся нормально, а параметры с форматом "c", это что за тип? Char, не подходит, не получается у меня записать правильно, TEditor выдаёт всякие каракули. Пробовал разными кодировками, безрезультатно.
                  В прикреплённом файле скриншоты проблем.

                   

                  Оффлайн REA

                  • Розов Евгений Анатольевич
                  • Глобальный модератор
                  • *****
                  • Сообщений: 1309
                  • Карма: +85/-62
                    • GeoSensor
                  Re: DTCIS 1.7 передача данных
                  « Ответ #23 : 10 Декабрь 2014, 19:05:06 »
                          char   format;                                       один байт содержащий букву указывающую на
                                                                                        представление величины параметра       
                                                                                           i-integer,
                                                                                           f-float,
                                                                                           c-character
                                                                                           l-long integer,
                                                                                          d-double float;
                  а KOI-8R пробовали?

                  Оффлайн Газокаротажник

                  • Местный
                  • ***
                  • Сообщений: 65
                  • Карма: +20/-4
                  • Чем наполнена посуда, то и выпьется оттуда
                    Re: DTCIS 1.7 передача данных
                    « Ответ #24 : 11 Декабрь 2014, 13:14:46 »
                    Появился ещё вопрос.
                    Для записи в .dep файл используются разные параметры, формат их, описан в справочнике. Вот те которые в справочнике написаны как "f",т.е. тип float, пишутся нормально, а параметры с форматом "c", это что за тип? Char, не подходит, не получается у меня записать правильно, TEditor выдаёт всякие каракули. Пробовал разными кодировками, безрезультатно.
                    В прикреплённом файле скриншоты проблем.
                    Тип Char простой тип переменной, используемый для хранения простого символа. Он может быть назначен от символьной константы, или целого числа. Всего символов 256, как в таблице ASCII. В файле деп используется для индикации/справки. Номер символа указывает на номер параметра в справочнике. Поэтому файлы с форматом деп ограничиваются записью 256 параметров. Допустим, в справочнике под номером 64 значится параметр "Д-экспонента", тогда в файле деп перед записью этого параметра будет  Char @  - 64 знак в таблице кодов ASCII   
                    «Идея не заслуживает внимания, если она недостаточно сумасшедшая» (Нильс Бор)

                    Оффлайн nick2

                    • Старенький
                    • **
                    • Сообщений: 31
                    • Карма: +1/-0
                      Re: DTCIS 1.7 передача данных
                      « Ответ #25 : 11 Декабрь 2014, 16:16:16 »
                      а KOI-8R пробовали?
                      Не помогло)

                      Тип Char простой тип переменной, используемый для хранения простого символа. Он может быть назначен от символьной константы, или целого числа. Всего символов 256, как в таблице ASCII. В файле деп используется для индикации/справки. Номер символа указывает на номер параметра в справочнике. Поэтому файлы с форматом деп ограничиваются записью 256 параметров. Допустим, в справочнике под номером 64 значится параметр "Д-экспонента", тогда в файле деп перед записью этого параметра будет  Char @  - 64 знак в таблице кодов ASCII   
                      Спасибо за подробный ответ.


                      Разобрался со своей проблемой, нужно было мою строку конвертировать в ANSII 866, это кодировка MS-DOS.

                      Но у меня ещё вопрос, раз длинна строки ограничена 255 символами, то как же быть тогда параметром из справочника "Описание шлама"? Тип char размер 400 байт, не вмещается же, или я что-то не правильно понимаю?   

                      Оффлайн REA

                      • Розов Евгений Анатольевич
                      • Глобальный модератор
                      • *****
                      • Сообщений: 1309
                      • Карма: +85/-62
                        • GeoSensor
                      Re: DTCIS 1.7 передача данных
                      « Ответ #26 : 11 Декабрь 2014, 19:47:27 »
                      Сорри, что сбил с толку ) да, нужно было 866 кодировку. Склероз )
                      А у вас описание формата то есть? Там вроде все написано.

                      Оффлайн nick2

                      • Старенький
                      • **
                      • Сообщений: 31
                      • Карма: +1/-0
                        Re: DTCIS 1.7 передача данных
                        « Ответ #27 : 11 Декабрь 2014, 20:18:58 »
                        Сорри, что сбил с толку ) да, нужно было 866 кодировку. Склероз )
                        А у вас описание формата то есть? Там вроде все написано.
                        Ничего страшного)
                        Только https://mudlogging.ru/index.php/topic,1691.msg12585.html#msg12585 и http://welldatapro.ru/%D0%BE%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5-%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%82%D0%B0-dep

                        До описания шлама я ещё не дошёл, может и будет работать,но это так, на будущее интересуюсь. Хотя это будущее будет уже завтра)

                        Оффлайн nick2

                        • Старенький
                        • **
                        • Сообщений: 31
                        • Карма: +1/-0
                          Re: DTCIS 1.7 передача данных
                          « Ответ #28 : 11 Декабрь 2014, 21:15:07 »
                          Всё таки не умещается описание шлама, если использую по полной все 400 байт, данные с конца первой строки уходят на вторую и всё из-за этого превращается в кашу.

                          Оффлайн Газокаротажник

                          • Местный
                          • ***
                          • Сообщений: 65
                          • Карма: +20/-4
                          • Чем наполнена посуда, то и выпьется оттуда
                            Re: DTCIS 1.7 передача данных
                            « Ответ #29 : 12 Декабрь 2014, 02:49:22 »
                            Описание щлама в справочнике род епети номером значится? Тип переменной должен быть стринг/строковый и там в справочнике должна быть указана длина строки. Это основные характеристики или параметры для того чтобы записать в файл правильно описание шлама.   
                            «Идея не заслуживает внимания, если она недостаточно сумасшедшая» (Нильс Бор)

                             



                            Покер онлайн