Страницы

Поиск по вопросам

четверг, 11 июля 2019 г.

Разобраться в коде - (библиотека itexstshap PDF)

Непонятное место (для меня) в коде. Программа работает с PDF файлами. Вытаскивает информацию в CSV файл.
class EUROFX_DBPDFFormatInfo_v4 : EUROFX_DBPDFFormatInfo_v3 { public override float CharSpacing { get { return 3.618f; } } public override int Version { get { return 4; } }
protected override bool TryParsePageHeader(string line, out PdfPageHeadingInfo headerInfo) { var res = base.TryParsePageHeader(line, out headerInfo) && formatChange2015_07_07(headerInfo); return res; }
public override string Name { get { return base.Name + " v4, для DB с 8.07.2015"; } }
protected override string PositionFutMarkers { get { return /* | DEC14 1.23960 1.24060 *1.23800 1.24060 1.24440 ( .8036) + 54 509 326872 463244 + 2827 1.39840B 1.23610 | SEP15 1.10660 1.10680 1.09270 1.09860 ( .9102) - 72 402 274988 352107 + 7026 1.39660B 1.04930A */ " | | | | || | | | | | | | |"; // Непонял этот момент кода. //Припустил вероятность что таким образом показывается место в каких колонках нужный текст для извлечения. } } }
Если нужно вот Парсер и документ откуда берется инфа


Ответ

В базовом классе DBPDFFormatInfo поле PositionFutMarkers используется в методе SplitPositionsFut. Этот метод возвращает массив позиций символа | в строке PositionFutMarkers по средствам вызова метода CalcPositions. Полученный таким образом массив используется для разбивки входной внешней строки в методе:
public List SplitFut(string line, string comod) { var fields = SplitLine(line, comod != "EC/BP CROSS RT" ? this.SplitPositionsFut : this.SplitPositionsFut2); return fields; }

Комментариев нет:

Отправить комментарий