/// <summary> /// 解析数据表。 /// </summary> /// <param name="dataTable">数据表。</param> /// <param name="dataTableString">要解析的数据表字符串。</param> /// <param name="userData">用户自定义数据。</param> /// <returns>是否解析数据表成功。</returns> public override bool ParseData(DataTableProvider dataTable, string dataTableString, object userData) { try { int position = 0; string dataRowString = null; while ((dataRowString = dataTableString.ReadLine(ref position)) != null) { if (dataRowString[0] == '#') { continue; } if (!dataTable.AddDataRow(dataRowString, userData)) { Log.Warning("Can not parse data row string '{0}'.", dataRowString); return(false); } } return(true); } catch (Exception exception) { Log.Warning("Can not parse data table string with exception '{0}'.", exception.ToString()); return(false); } }
/// <summary> /// 解析数据表。 /// </summary> /// <param name="dataTable">数据表。</param> /// <param name="dataTableBytes">要解析的数据表二进制流。</param> /// <param name="startIndex">数据表二进制流的起始位置。</param> /// <param name="length">数据表二进制流的长度。</param> /// <param name="userData">用户自定义数据。</param> /// <returns>是否解析数据表成功。</returns> public override bool ParseData(DataTableProvider dataTable, byte[] dataTableBytes, int startIndex, int length, object userData) { try { using (MemoryStream memoryStream = new MemoryStream(dataTableBytes, startIndex, length, false)) { using (BinaryReader binaryReader = new BinaryReader(memoryStream, Encoding.UTF8)) { while (binaryReader.BaseStream.Position < binaryReader.BaseStream.Length) { int dataRowBytesLength = binaryReader.ReadInt32(); if (!dataTable.AddDataRow(dataTableBytes, (int)binaryReader.BaseStream.Position, dataRowBytesLength, userData)) { Log.Warning("Can not parse data row bytes."); return(false); } binaryReader.BaseStream.Position += dataRowBytesLength; } } } return(true); } catch (Exception exception) { Log.Warning("Can not parse dictionary bytes with exception '{0}'.", exception.ToString()); return(false); } }
/// <summary> /// 读取数据表。 /// </summary> /// <param name="dataTable">数据表。</param> /// <param name="dataTableAssetName">数据表资源名称。</param> /// <param name="dataTableBytes">数据表二进制流。</param> /// <param name="startIndex">数据表二进制流的起始位置。</param> /// <param name="length">数据表二进制流的长度。</param> /// <param name="userData">用户自定义数据。</param> /// <returns>是否读取数据表成功。</returns> public override bool ReadData(DataTableProvider dataTable, string dataTableAssetName, byte[] dataTableBytes, int startIndex, int length, object userData) { if (dataTableAssetName.EndsWith(BytesAssetExtension, StringComparison.Ordinal)) { return(dataTable.ParseData(dataTableBytes, startIndex, length, userData)); } else { return(dataTable.ParseData(Utility.Converter.GetString(dataTableBytes, startIndex, length), userData)); } }
private void Dispose(bool disposing) { if (IsDisposed) { return; } if (disposing) { _provider = null; } }
/// <summary> /// 加载数据表 /// </summary> /// <param name="dataTableName">数据表</param> private async CFVoid LoadDataTable(string dataTableName) { DataTableProvider dataTableBase = CentorPivot.This.GetComponent <DataTableComponent>().CreateDataTable(dataTableName); bool status = await dataTableBase.ReadDataAsync(GlobalPath.Hoftix.GetDataTableResources(dataTableBase.Name), ConstData.Priority.DataTable, AssetCategory.DataTable, null); if (status) { m_CurrPreloadCount += 1; Log.Info("Load data table '{0}' OK.", dataTableBase.Name, LogCategory.Resource); } else { Log.Error("Can not load data table '{0}' error .", dataTableBase.Name, LogCategory.Resource); } }
/// <summary> /// 读取数据表。 /// </summary> /// <param name="dataTable">数据表。</param> /// <param name="dataTableAssetName">数据表资源名称。</param> /// <param name="dataTableAsset">数据表资源。</param> /// <param name="userData">用户自定义数据。</param> /// <returns>是否读取数据表成功。</returns> public override bool ReadData(DataTableProvider dataTable, string dataTableAssetName, object dataTableAsset, object userData) { TextAsset dataTableTextAsset = dataTableAsset as TextAsset; if (dataTableTextAsset != null) { if (dataTableAssetName.EndsWith(BytesAssetExtension, StringComparison.Ordinal)) { return(dataTable.ParseData(dataTableTextAsset.bytes, userData)); } else { return(dataTable.ParseData(dataTableTextAsset.text, userData)); } } Log.Warning("Data table asset '{0}' is invalid.", dataTableAssetName); return(false); }
private void DrawDataTable(DataTableProvider dataTable) { EditorGUILayout.LabelField(dataTable.FullName, Utility.Text.Format("{0} Rows", dataTable.Count.ToString())); }
internal DataTableFeatureDataReader(DataTableProvider provider, BoundingBox bounds) { _provider = provider; _bounds = bounds; }
/// <summary> /// 释放数据表资源。 /// </summary> /// <param name="dataTable">数据表。</param> /// <param name="dataTableAsset">要释放的数据表资源。</param> public override void ReleaseDataAsset(DataTableProvider dataTable, object dataTableAsset) { CentorPivot.This.GetComponent <ResourceComponent>()?.UnloadAsset(dataTableAsset, AssetCategory.DataTable); }
private async void OnStartPreloadCallBack(TimeAction timeAction) { DataTableProvider dataTableBase = (DataTableProvider)CentorPivot.This.GetComponent <DataTableComponent>().ICreateDataTable <DRDataTable>("DataTable"); bool status = await dataTableBase.ReadDataAsync(GlobalPath.Hoftix.GetDataTableResources(dataTableBase.Name), ConstData.Priority.DataTable, AssetCategory.DataTable, null); if (status) { //1、获取要加载的表格 AwaitGetDataTableInfo(); } //2、获取要加载的热更CODE AwaitGetHotfixCode(); //3、获取要加载的多语言字典信息 AwaitGetDict(); //4、获取要加载的shader信息 AwaitGetShader(); //5、获取要加载的fui信息 AwaitGetFUIPackage(); //当前+阶后的 预设进度值(计算值) timeAction.CFParams.FloatParam1 = 0f; //当前下载进度(计算值) timeAction.CFParams.FloatParam2 = 0f; //当前下载进度(UI) timeAction.CFParams.FloatParam3 = 0f; //初始的读条自增值(计算值) timeAction.CFParams.FloatParam5 = 0.01f; bool needUpdateResources = ProcedureComponent.This.GetProcedure <ProcedureResource>().OnOuterApi_11(); L0_Text.This.m_MCycle_LoadRes.visible = true; //如果需要更新 则打开进度条弹窗 if (needUpdateResources) { //资源更新完毕,正在校验资源… L0_Text.This.m_Text_Mseg .SetGTextByCode("Text_Mseg_007"); //客户端资源更新完毕,正在校验资源 L1_Loading.This.m_Text_ParDesc .SetGTextByCode("Text_ParDesc_002"); L1_Loading.This .m_LoginPBar.value = 0; //selectedIndex = 2 进度条加载 Block_Layout.This.m_Ctrl_Layout.selectedIndex = 1; } else { //信息获取完毕,正在校验资源... L0_Text.This.m_Text_Mseg .SetGTextByCode("Text_Mseg_006"); L1_Loading.This .m_LoginPBar.value = 0; //selectedIndex = 0 默认 Block_Layout.This.m_Ctrl_Layout.selectedIndex = 0; } }
public FormListView(Control parentCntrl) { this._name = ""; this._visible = true; this._enabled = true; this._title = ""; this._parent = null; this._parentControl = parentCntrl; this._methodName = ""; this._thisScript = null; this._methodNameDblClick = ""; this._scriptDblClick = null; this._methodOnChoice = ""; this._scriptOnChoice = null; this._methodOnKeyDown = ""; this._scriptOnKeyDown = null; _bindingSource = new BindingSource(); _dataTable = new DataTableProvider(); _item = new ListView(); _viewStyle = new FormListViewView(); ((ListView)_item).View = (View)1; //# Создаем контейнер для элемента формы _panelMainContainer = new Panel(); _panelTitleContainer = new Panel(); _panelControlContainer = new Panel(); _panelMainContainer.Controls.Add(_panelControlContainer); _panelMainContainer.Controls.Add(_panelTitleContainer); _panelMainContainer.Dock = DockStyle.Top; _panelMainContainer.MinimumSize = new Size(150, 22); _panelMainContainer.AutoSize = true; _panelMainContainer.AutoSizeMode = AutoSizeMode.GrowAndShrink; _panelTitleContainer.Dock = DockStyle.Left; _panelTitleContainer.MinimumSize = new Size(50, 21); _panelTitleContainer.AutoSize = true; _panelTitleContainer.AutoSizeMode = AutoSizeMode.GrowAndShrink; _label = new Label(); _panelTitleContainer.Controls.Add(_label); _label.AutoSize = true; _label.Dock = DockStyle.Fill; //# Установка параметров панели для поля с данными _panelControlContainer.Dock = DockStyle.Fill; _panelControlContainer.MinimumSize = new Size(100, 21); _panelControlContainer.AutoSize = true; _panelControlContainer.AutoSizeMode = AutoSizeMode.GrowAndShrink; this._parentControl.Controls.Add(_panelMainContainer); _panelMainContainer.BringToFront(); this.createFormFieldByType(); _columnWithImageIndex = 0; _smallImages = new FormListViewImagePack(); _largeImages = new FormListViewImagePack(); ((ListView)_item).SmallImageList = _smallImages.list(); ((ListView)_item).StateImageList = _smallImages.list(); ((ListView)_item).LargeImageList = _largeImages.list(); }