IDtTextProviderField.FixedStartPosition

Синтаксис

FixedStartPosition: Integer;

Описание

Свойство FixedStartPosition определяет начальную позицию в файле, ограничивающую данные для текущего поля. Актуально, если свойству FormatType установлено значение DtTextFormatType.Fixed.

Пример

Для выполнения примера предполагается наличие в репозитории задачи ETL с идентификатором "Etl" и в корневом каталоге диска С текстового файла "Data.txt". Данные в файле расположены в фиксированных позициях.

Sub Main;

Var

MB: IMetabase;

MObj: IMetabaseObject;

EtlTask: IEtlTask;

EtlProvider: IEtlPlainDataProvider;

TextProvider: IDtTextProvider;

Fields: IDtFieldDefinitions;

Field: IDtTextProviderField;

WxProvider: IWxRectangle;

WxETLProvider: IWxETLObject;

v: Array;

i: Integer;

Begin

MB := MetabaseClass.Active;

//Поиск задачи ETL. Объект репозитория с идентификатором "ETL"

MObj := MB.ItemById("Etl").Edit;

EtlTask := MObj As IEtlTask;

//Начало создания источника

//Создание объекта "Импорт из текста"

EtlProvider := EtlTask.Create(EtlObjectType.PlainDataTextProvider) As IEtlPlainDataProvider;

EtlProvider := EtlProvider.Edit;

EtlProvider.Id := "Text_Provider";

EtlProvider.Name := "Импорт из текста";

EtlProvider.Description := "Импорт из текста";

//Настройка источника данных

TextProvider := EtlProvider.Provider As IDtTextProvider;

TextProvider.File := "c:\Data.txt";

TextProvider.FormatType := DtTextFormatType.Fixed;

TextProvider.RowDelimiter := #13 + #10; //Возврат каретки + перевод строки

TextProvider.RangeHasHeader := True;

//Настройка полей фиксированной длины

Fields := TextProvider.Fields;

Field := Fields.Add As IDtTextProviderField;

Field.Name := "Field0";

Field.DataType := DbDataType.String;

Field.FixedStartPosition := 1;

Field.FixedEndPosition := 14;

Field := Fields.Add As IDtTextProviderField;

Field.Name := "Field1";

Field.DataType := DbDataType.String;

Field.FixedStartPosition := 15;

Field.FixedEndPosition := 29;

Field := Fields.Add As IDtTextProviderField;

Field.Name := "Field2";

Field.DataType := DbDataType.String;

Field.FixedStartPosition := 30;

Field.FixedEndPosition := 45;

EtlProvider.FillDefault;

//Сохраняем источник

EtlProvider.Save;

//Конец создания источника

//Начало создания визуального объекта

WxProvider := EtlTask.Workspace.CreateRectangle;

WxETLProvider := New WxETLObject.Create;

WxETLProvider.ETLObject := EtlProvider;

WxProvider.Style.TextPosition := WxTextPosition.Bottom;

WxProvider.Style.PictureMarginTop := -10;

WxProvider.PinPosition := New GxPointF.Create(50, 50);

WxProvider.Extension := WxETLProvider As IWxShapeExtension;

//Конец создания визуального объекта

//Сохранение задачи Etl

MObj.Save;

End Sub Main;

После выполнения примера в задаче ETL будет создан объект «Импорт из текста». Данный источник будет импортировать данные из текстового файла "Data.txt". При импорте в качестве разделителя строк будет использоваться сочетание Возврат каретки+Перевод строки, структура полей будет фиксированной. На одно поле будет отводиться 15 позиций. Из первой строки файла будут импортированы наименования полей.

См. также:

IDtTextProviderField