添加项目文件。

master
Tay 10 months ago
parent 0e00b464f0
commit 897d4314d4

@ -0,0 +1,25 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.30011.22
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Dat2Bin", "Dat2Bin\Dat2Bin.csproj", "{E431FBFE-D292-45BB-BCD8-DEE8AE2D2392}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{E431FBFE-D292-45BB-BCD8-DEE8AE2D2392}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E431FBFE-D292-45BB-BCD8-DEE8AE2D2392}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E431FBFE-D292-45BB-BCD8-DEE8AE2D2392}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E431FBFE-D292-45BB-BCD8-DEE8AE2D2392}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {48053491-F800-4F93-85E0-00D9177B2781}
EndGlobalSection
EndGlobal

@ -0,0 +1,110 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{E431FBFE-D292-45BB-BCD8-DEE8AE2D2392}</ProjectGuid>
<OutputType>WinExe</OutputType>
<RootNamespace>Dat2Bin</RootNamespace>
<AssemblyName>DatToolkit</AssemblyName>
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<Deterministic>true</Deterministic>
<TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
</PropertyGroup>
<PropertyGroup>
<ApplicationIcon>Toolbox.ico</ApplicationIcon>
</PropertyGroup>
<PropertyGroup>
<NoWin32Manifest>true</NoWin32Manifest>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Buffers, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll</HintPath>
</Reference>
<Reference Include="System.Core" />
<Reference Include="System.Memory, Version=4.0.1.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Memory.4.5.5\lib\net461\System.Memory.dll</HintPath>
</Reference>
<Reference Include="System.Numerics" />
<Reference Include="System.Numerics.Vectors, Version=4.1.4.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll</HintPath>
</Reference>
<Reference Include="System.Runtime.CompilerServices.Unsafe, Version=4.0.4.1, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Runtime.CompilerServices.Unsafe.4.5.3\lib\net461\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
</Reference>
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Deployment" />
<Reference Include="System.Drawing" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="Dat2BinForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Dat2BinForm.Designer.cs">
<DependentUpon>Dat2BinForm.cs</DependentUpon>
</Compile>
<Compile Include="LinkList.cs" />
<Compile Include="MTEMHead.cs" />
<Compile Include="Node.cs" />
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="SiteParameter.cs" />
<EmbeddedResource Include="Dat2BinForm.resx">
<DependentUpon>Dat2BinForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
<SubType>Designer</SubType>
</EmbeddedResource>
<Compile Include="Properties\Resources.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Resources.resx</DependentUpon>
</Compile>
<None Include="app.config" />
<None Include="packages.config" />
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
</None>
<Compile Include="Properties\Settings.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Settings.settings</DependentUpon>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
</Compile>
</ItemGroup>
<ItemGroup>
<Content Include="Toolbox.ico" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>

@ -0,0 +1,469 @@
namespace Dat2Bin
{
partial class Dat2BinForm
{
/// <summary>
/// 必需的设计器变量。
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// 清理所有正在使用的资源。
/// </summary>
/// <param name="disposing">如果应释放托管资源,为 true否则为 false。</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows 窗体设计器生成的代码
/// <summary>
/// 设计器支持所需的方法 - 不要修改
/// 使用代码编辑器修改此方法的内容。
/// </summary>
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Dat2BinForm));
this.groupBox1 = new System.Windows.Forms.GroupBox();
this.buttonSplitDat = new System.Windows.Forms.Button();
this.buttonReadStaNum2 = new System.Windows.Forms.Button();
this.button2 = new System.Windows.Forms.Button();
this.button1 = new System.Windows.Forms.Button();
this.cbUseBackGround = new System.Windows.Forms.CheckBox();
this.pgbarPrecent = new System.Windows.Forms.ProgressBar();
this.lblPrecent = new System.Windows.Forms.Label();
this.buttonConvertBin = new System.Windows.Forms.Button();
this.dtpEndTime = new System.Windows.Forms.DateTimePicker();
this.dtpBeginTime = new System.Windows.Forms.DateTimePicker();
this.label5 = new System.Windows.Forms.Label();
this.label4 = new System.Windows.Forms.Label();
this.listBox1 = new System.Windows.Forms.ListBox();
this.textBox_sps = new System.Windows.Forms.TextBox();
this.listView1 = new System.Windows.Forms.ListView();
this.textBoxSingleFileLength = new System.Windows.Forms.TextBox();
this.label2 = new System.Windows.Forms.Label();
this.label3 = new System.Windows.Forms.Label();
this.label1 = new System.Windows.Forms.Label();
this.buttonReadStaNum = new System.Windows.Forms.Button();
this.buttonSelectData = new System.Windows.Forms.Button();
this.tabControl1 = new System.Windows.Forms.TabControl();
this.tabPage1 = new System.Windows.Forms.TabPage();
this.tabPage2 = new System.Windows.Forms.TabPage();
this.textBoxConByFloat = new System.Windows.Forms.TextBox();
this.button4 = new System.Windows.Forms.Button();
this.textBoxFloat = new System.Windows.Forms.TextBox();
this.cbBigEnd = new System.Windows.Forms.CheckBox();
this.button3 = new System.Windows.Forms.Button();
this.textBox1 = new System.Windows.Forms.TextBox();
this.btnReadDatSingle = new System.Windows.Forms.Button();
this.buttonSplitAsync = new System.Windows.Forms.Button();
this.groupBox1.SuspendLayout();
this.tabControl1.SuspendLayout();
this.tabPage1.SuspendLayout();
this.tabPage2.SuspendLayout();
this.SuspendLayout();
//
// groupBox1
//
this.groupBox1.Controls.Add(this.buttonSplitAsync);
this.groupBox1.Controls.Add(this.buttonSplitDat);
this.groupBox1.Controls.Add(this.buttonReadStaNum2);
this.groupBox1.Controls.Add(this.button2);
this.groupBox1.Controls.Add(this.button1);
this.groupBox1.Controls.Add(this.cbUseBackGround);
this.groupBox1.Controls.Add(this.pgbarPrecent);
this.groupBox1.Controls.Add(this.lblPrecent);
this.groupBox1.Controls.Add(this.buttonConvertBin);
this.groupBox1.Controls.Add(this.dtpEndTime);
this.groupBox1.Controls.Add(this.dtpBeginTime);
this.groupBox1.Controls.Add(this.label5);
this.groupBox1.Controls.Add(this.label4);
this.groupBox1.Controls.Add(this.listBox1);
this.groupBox1.Controls.Add(this.textBox_sps);
this.groupBox1.Controls.Add(this.listView1);
this.groupBox1.Controls.Add(this.textBoxSingleFileLength);
this.groupBox1.Controls.Add(this.label2);
this.groupBox1.Controls.Add(this.label3);
this.groupBox1.Controls.Add(this.label1);
this.groupBox1.Controls.Add(this.buttonReadStaNum);
this.groupBox1.Controls.Add(this.buttonSelectData);
this.groupBox1.Location = new System.Drawing.Point(8, 6);
this.groupBox1.Name = "groupBox1";
this.groupBox1.Size = new System.Drawing.Size(1063, 375);
this.groupBox1.TabIndex = 0;
this.groupBox1.TabStop = false;
this.groupBox1.Text = "groupBox1";
//
// buttonSplitDat
//
this.buttonSplitDat.Location = new System.Drawing.Point(245, 20);
this.buttonSplitDat.Name = "buttonSplitDat";
this.buttonSplitDat.Size = new System.Drawing.Size(97, 31);
this.buttonSplitDat.TabIndex = 19;
this.buttonSplitDat.Text = "同步分割";
this.buttonSplitDat.UseVisualStyleBackColor = true;
this.buttonSplitDat.Click += new System.EventHandler(this.buttonSplitDat_Click);
//
// buttonReadStaNum2
//
this.buttonReadStaNum2.Location = new System.Drawing.Point(244, 20);
this.buttonReadStaNum2.Name = "buttonReadStaNum2";
this.buttonReadStaNum2.Size = new System.Drawing.Size(98, 32);
this.buttonReadStaNum2.TabIndex = 18;
this.buttonReadStaNum2.Text = "读取台站编号2";
this.buttonReadStaNum2.UseVisualStyleBackColor = true;
this.buttonReadStaNum2.Visible = false;
this.buttonReadStaNum2.Click += new System.EventHandler(this.buttonReadStaNum2_Click);
//
// button2
//
this.button2.Location = new System.Drawing.Point(941, 30);
this.button2.Name = "button2";
this.button2.Size = new System.Drawing.Size(75, 23);
this.button2.TabIndex = 17;
this.button2.Text = "bin";
this.button2.UseVisualStyleBackColor = true;
this.button2.Click += new System.EventHandler(this.button2_Click);
//
// button1
//
this.button1.Location = new System.Drawing.Point(851, 30);
this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(75, 23);
this.button1.TabIndex = 16;
this.button1.Text = "Dat";
this.button1.UseVisualStyleBackColor = true;
this.button1.Click += new System.EventHandler(this.button1_Click);
//
// cbUseBackGround
//
this.cbUseBackGround.AutoSize = true;
this.cbUseBackGround.Location = new System.Drawing.Point(465, 29);
this.cbUseBackGround.Name = "cbUseBackGround";
this.cbUseBackGround.Size = new System.Drawing.Size(72, 16);
this.cbUseBackGround.TabIndex = 15;
this.cbUseBackGround.Text = "后台进程";
this.cbUseBackGround.UseVisualStyleBackColor = true;
this.cbUseBackGround.CheckedChanged += new System.EventHandler(this.cbUseBackGround_CheckedChanged);
//
// pgbarPrecent
//
this.pgbarPrecent.Location = new System.Drawing.Point(577, 27);
this.pgbarPrecent.Name = "pgbarPrecent";
this.pgbarPrecent.Size = new System.Drawing.Size(153, 23);
this.pgbarPrecent.TabIndex = 14;
//
// lblPrecent
//
this.lblPrecent.AutoSize = true;
this.lblPrecent.Location = new System.Drawing.Point(750, 33);
this.lblPrecent.Name = "lblPrecent";
this.lblPrecent.Size = new System.Drawing.Size(17, 12);
this.lblPrecent.TabIndex = 13;
this.lblPrecent.Text = "0%";
//
// buttonConvertBin
//
this.buttonConvertBin.Location = new System.Drawing.Point(348, 20);
this.buttonConvertBin.Name = "buttonConvertBin";
this.buttonConvertBin.Size = new System.Drawing.Size(97, 32);
this.buttonConvertBin.TabIndex = 12;
this.buttonConvertBin.Text = "转存Bin";
this.buttonConvertBin.UseVisualStyleBackColor = true;
this.buttonConvertBin.Click += new System.EventHandler(this.buttonConvertBin_Click);
//
// dtpEndTime
//
this.dtpEndTime.CustomFormat = "yyyy-MM-dd HH:mm:ss";
this.dtpEndTime.Format = System.Windows.Forms.DateTimePickerFormat.Custom;
this.dtpEndTime.Location = new System.Drawing.Point(522, 66);
this.dtpEndTime.Name = "dtpEndTime";
this.dtpEndTime.Size = new System.Drawing.Size(152, 21);
this.dtpEndTime.TabIndex = 11;
this.dtpEndTime.Value = new System.DateTime(2020, 10, 7, 13, 40, 0, 0);
//
// dtpBeginTime
//
this.dtpBeginTime.CustomFormat = "yyyy-MM-dd HH:mm:ss";
this.dtpBeginTime.Format = System.Windows.Forms.DateTimePickerFormat.Custom;
this.dtpBeginTime.Location = new System.Drawing.Point(281, 66);
this.dtpBeginTime.Name = "dtpBeginTime";
this.dtpBeginTime.Size = new System.Drawing.Size(152, 21);
this.dtpBeginTime.TabIndex = 11;
this.dtpBeginTime.Value = new System.DateTime(2020, 10, 7, 10, 30, 0, 0);
//
// label5
//
this.label5.AutoSize = true;
this.label5.Location = new System.Drawing.Point(463, 69);
this.label5.Name = "label5";
this.label5.Size = new System.Drawing.Size(53, 12);
this.label5.TabIndex = 10;
this.label5.Text = "结束时间";
//
// label4
//
this.label4.AutoSize = true;
this.label4.Location = new System.Drawing.Point(222, 69);
this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(53, 12);
this.label4.TabIndex = 9;
this.label4.Text = "开始时间";
//
// listBox1
//
this.listBox1.FormattingEnabled = true;
this.listBox1.ItemHeight = 12;
this.listBox1.Location = new System.Drawing.Point(851, 93);
this.listBox1.Name = "listBox1";
this.listBox1.Size = new System.Drawing.Size(206, 280);
this.listBox1.TabIndex = 6;
//
// textBox_sps
//
this.textBox_sps.Location = new System.Drawing.Point(747, 66);
this.textBox_sps.Name = "textBox_sps";
this.textBox_sps.Size = new System.Drawing.Size(45, 21);
this.textBox_sps.TabIndex = 5;
this.textBox_sps.Text = "1000";
this.textBox_sps.TextAlign = System.Windows.Forms.HorizontalAlignment.Right;
//
// listView1
//
this.listView1.HideSelection = false;
this.listView1.Location = new System.Drawing.Point(6, 93);
this.listView1.Name = "listView1";
this.listView1.Size = new System.Drawing.Size(830, 276);
this.listView1.TabIndex = 4;
this.listView1.UseCompatibleStateImageBehavior = false;
//
// textBoxSingleFileLength
//
this.textBoxSingleFileLength.Location = new System.Drawing.Point(100, 66);
this.textBoxSingleFileLength.Name = "textBoxSingleFileLength";
this.textBoxSingleFileLength.Size = new System.Drawing.Size(47, 21);
this.textBoxSingleFileLength.TabIndex = 3;
this.textBoxSingleFileLength.Text = "120";
this.textBoxSingleFileLength.TextAlign = System.Windows.Forms.HorizontalAlignment.Right;
//
// label2
//
this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(153, 69);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(29, 12);
this.label2.TabIndex = 2;
this.label2.Text = "分钟";
//
// label3
//
this.label3.AutoSize = true;
this.label3.Location = new System.Drawing.Point(694, 69);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(47, 12);
this.label3.TabIndex = 2;
this.label3.Text = "采样率:";
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(23, 69);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(71, 12);
this.label1.TabIndex = 2;
this.label1.Text = "单文件时长:";
//
// buttonReadStaNum
//
this.buttonReadStaNum.Location = new System.Drawing.Point(142, 20);
this.buttonReadStaNum.Name = "buttonReadStaNum";
this.buttonReadStaNum.Size = new System.Drawing.Size(96, 32);
this.buttonReadStaNum.TabIndex = 1;
this.buttonReadStaNum.Text = "读取台站编号";
this.buttonReadStaNum.UseVisualStyleBackColor = true;
this.buttonReadStaNum.Visible = false;
this.buttonReadStaNum.Click += new System.EventHandler(this.buttonReadStaNum_Click);
//
// buttonSelectData
//
this.buttonSelectData.Location = new System.Drawing.Point(25, 20);
this.buttonSelectData.Name = "buttonSelectData";
this.buttonSelectData.Size = new System.Drawing.Size(101, 32);
this.buttonSelectData.TabIndex = 0;
this.buttonSelectData.Text = "打开Dat数据";
this.buttonSelectData.UseVisualStyleBackColor = true;
this.buttonSelectData.Click += new System.EventHandler(this.buttonSelectData_Click);
//
// tabControl1
//
this.tabControl1.Controls.Add(this.tabPage1);
this.tabControl1.Controls.Add(this.tabPage2);
this.tabControl1.Location = new System.Drawing.Point(0, 0);
this.tabControl1.Name = "tabControl1";
this.tabControl1.SelectedIndex = 0;
this.tabControl1.Size = new System.Drawing.Size(1103, 426);
this.tabControl1.TabIndex = 1;
//
// tabPage1
//
this.tabPage1.Controls.Add(this.groupBox1);
this.tabPage1.Location = new System.Drawing.Point(4, 22);
this.tabPage1.Name = "tabPage1";
this.tabPage1.Padding = new System.Windows.Forms.Padding(3);
this.tabPage1.Size = new System.Drawing.Size(1095, 400);
this.tabPage1.TabIndex = 0;
this.tabPage1.Text = "tabPage1";
this.tabPage1.UseVisualStyleBackColor = true;
//
// tabPage2
//
this.tabPage2.Controls.Add(this.textBoxConByFloat);
this.tabPage2.Controls.Add(this.button4);
this.tabPage2.Controls.Add(this.textBoxFloat);
this.tabPage2.Controls.Add(this.cbBigEnd);
this.tabPage2.Controls.Add(this.button3);
this.tabPage2.Controls.Add(this.textBox1);
this.tabPage2.Controls.Add(this.btnReadDatSingle);
this.tabPage2.Location = new System.Drawing.Point(4, 22);
this.tabPage2.Name = "tabPage2";
this.tabPage2.Padding = new System.Windows.Forms.Padding(3);
this.tabPage2.Size = new System.Drawing.Size(1095, 400);
this.tabPage2.TabIndex = 1;
this.tabPage2.Text = "tabPage2";
this.tabPage2.UseVisualStyleBackColor = true;
//
// textBoxConByFloat
//
this.textBoxConByFloat.Location = new System.Drawing.Point(8, 249);
this.textBoxConByFloat.Name = "textBoxConByFloat";
this.textBoxConByFloat.Size = new System.Drawing.Size(165, 21);
this.textBoxConByFloat.TabIndex = 6;
//
// button4
//
this.button4.Location = new System.Drawing.Point(8, 199);
this.button4.Name = "button4";
this.button4.Size = new System.Drawing.Size(93, 32);
this.button4.TabIndex = 5;
this.button4.Text = "button4";
this.button4.UseVisualStyleBackColor = true;
this.button4.Click += new System.EventHandler(this.button4_Click);
//
// textBoxFloat
//
this.textBoxFloat.Location = new System.Drawing.Point(8, 160);
this.textBoxFloat.Name = "textBoxFloat";
this.textBoxFloat.Size = new System.Drawing.Size(165, 21);
this.textBoxFloat.TabIndex = 4;
//
// cbBigEnd
//
this.cbBigEnd.AutoSize = true;
this.cbBigEnd.Location = new System.Drawing.Point(122, 14);
this.cbBigEnd.Name = "cbBigEnd";
this.cbBigEnd.Size = new System.Drawing.Size(60, 16);
this.cbBigEnd.TabIndex = 3;
this.cbBigEnd.Text = "BigEnd";
this.cbBigEnd.UseVisualStyleBackColor = true;
//
// button3
//
this.button3.Location = new System.Drawing.Point(8, 102);
this.button3.Name = "button3";
this.button3.Size = new System.Drawing.Size(93, 31);
this.button3.TabIndex = 2;
this.button3.Text = "button3";
this.button3.UseVisualStyleBackColor = true;
this.button3.Click += new System.EventHandler(this.button3_Click);
//
// textBox1
//
this.textBox1.Location = new System.Drawing.Point(8, 61);
this.textBox1.Name = "textBox1";
this.textBox1.Size = new System.Drawing.Size(165, 21);
this.textBox1.TabIndex = 1;
this.textBox1.Text = "00000D34";
//
// btnReadDatSingle
//
this.btnReadDatSingle.Location = new System.Drawing.Point(8, 6);
this.btnReadDatSingle.Name = "btnReadDatSingle";
this.btnReadDatSingle.Size = new System.Drawing.Size(93, 30);
this.btnReadDatSingle.TabIndex = 0;
this.btnReadDatSingle.Text = "读取Dat";
this.btnReadDatSingle.UseVisualStyleBackColor = true;
this.btnReadDatSingle.Click += new System.EventHandler(this.btnReadDatSingle_Click);
//
// buttonSplitAsync
//
this.buttonSplitAsync.Location = new System.Drawing.Point(142, 20);
this.buttonSplitAsync.Name = "buttonSplitAsync";
this.buttonSplitAsync.Size = new System.Drawing.Size(96, 33);
this.buttonSplitAsync.TabIndex = 20;
this.buttonSplitAsync.Text = "异步分割";
this.buttonSplitAsync.UseVisualStyleBackColor = true;
this.buttonSplitAsync.Click += new System.EventHandler(this.buttonSplitAsync_Click);
//
// Dat2BinForm
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(1108, 430);
this.Controls.Add(this.tabControl1);
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.Name = "Dat2BinForm";
this.Text = "Txgy.DatToolkit_20230319";
this.Load += new System.EventHandler(this.Form1_Load);
this.groupBox1.ResumeLayout(false);
this.groupBox1.PerformLayout();
this.tabControl1.ResumeLayout(false);
this.tabPage1.ResumeLayout(false);
this.tabPage2.ResumeLayout(false);
this.tabPage2.PerformLayout();
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.GroupBox groupBox1;
private System.Windows.Forms.TextBox textBoxSingleFileLength;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Button buttonReadStaNum;
private System.Windows.Forms.Button buttonSelectData;
private System.Windows.Forms.ListView listView1;
private System.Windows.Forms.TextBox textBox_sps;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.DateTimePicker dtpBeginTime;
private System.Windows.Forms.Label label5;
private System.Windows.Forms.Label label4;
private System.Windows.Forms.ListBox listBox1;
private System.Windows.Forms.DateTimePicker dtpEndTime;
private System.Windows.Forms.Button buttonConvertBin;
private System.Windows.Forms.ProgressBar pgbarPrecent;
private System.Windows.Forms.Label lblPrecent;
private System.Windows.Forms.CheckBox cbUseBackGround;
private System.Windows.Forms.Button button1;
private System.Windows.Forms.Button button2;
private System.Windows.Forms.TabControl tabControl1;
private System.Windows.Forms.TabPage tabPage1;
private System.Windows.Forms.TabPage tabPage2;
private System.Windows.Forms.Button btnReadDatSingle;
private System.Windows.Forms.Button button3;
private System.Windows.Forms.TextBox textBox1;
private System.Windows.Forms.CheckBox cbBigEnd;
private System.Windows.Forms.Button button4;
private System.Windows.Forms.TextBox textBoxFloat;
private System.Windows.Forms.TextBox textBoxConByFloat;
private System.Windows.Forms.Button buttonReadStaNum2;
private System.Windows.Forms.Button buttonSplitDat;
private System.Windows.Forms.Button buttonSplitAsync;
}
}

File diff suppressed because it is too large Load Diff

@ -0,0 +1,197 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAAEAICAAAAEAIACoEAAAFgAAACgAAAAgAAAAQAAAAAEAIAAAAAAAABAAAMMOAADDDgAAAAAAAAAA
AAATGyEHExshbRMbId0TGyH6Exsh+xMbIfsTGyH7Exsh+xMbIfsTGyH7Exsh+xMbIe8TGyFeExshABMb
IQAAAAAAAAAAABMbIQATGyEAExshZxMbIfYTGyH/Exsh/xMbIf8TGyH/Exsh/xMbIf8TGyH/Exsh/xMb
IeITGyFwExshBxMbIW8TGyHzExsh/xMbIf4TGyH9Exsh/RMbIf0TGyH9Exsh/RMbIf0TGyH+Exsh/xMb
IZcTGyEAExshAAAAAAAAAAAAExshABIaKQATGyGdExsh/xMbIf4TGyH9Exsh/RMbIf0TGyH9Exsh/RMb
If0TGyH+Exsh/xMbIfMTGyFuExsh4hMbIf8TGyG6ExshWxMbIVYTGyFWExshVhMbIVYTGyFWExshVxMb
IcITGyH/ExshmxMbIQATGyEAAAAAAAAAAAATGyEAFBwiARMbIaITGyH/ExshvRMbIVYTGyFWExshVhMb
IVYTGyFWExshVhMbIVsTGyG+Exsh/xMbId4TGyH/Exsh/BMbIVUTGyEAExshABMbIQATGyEAExshABMb
IQATGyEAExshnxMbIf8TGyGeCBAQABMbIQAAAAAAAAAAABMbIQATGyIBExshpBMbIf8TGyGYExshABMb
IQATGyEAExshABMbIQATGyEAExshABMbIVwTGyH+Exsh+hMbIf8TGyH7ExshTxMbIQATGyEAAQEBAAAA
AAAAAAAAExshABcdJgATGyGdExsh/xMbIaEUHCEBExshAAAAAAAAAAAAExshABMbIQITGyGnExsh/xMb
IZYTGyAAExshAAAAAAAAAAAAAQMEABMbIQATGyEAExshVhMbIf0TGyH7Exsh/xMbIfsTGyFQExshAAAA
AAAAAAAAAAAAAAAAAAATGyEAExshABMbIZoTGyH/ExshpBMbIgETGyEAAAAAAAAAAAATGyEAExshAxMb
IaoTGyH/ExshkxMbIQATGyEAAAAAAAAAAAAAAAAAAQMEABMbIQATGyFWExsh/RMbIfsTGyH/Exsh+xMb
IVATGyEAAAAAAAAAAAAAAAAAAAAAABMbIQATGyAAExshlxMbIf8TGyGnExshAhMbIQAAAAAAAAAAABMb
IQATGyEEExshrRMbIf8TGyGQExshABMbIQAAAAAAAAAAAAAAAAAAAAAAExshABMbIVYTGyH9Exsh+xMb
If8TGyH7ExshUBMbIQAAAAAAAAAAAAAAAAAAAAAAExshABMbIQATGyGUExsh/xMbIaoTGyEDExshAAAA
AAAAAAAAExshABMbIQQTGyGwExsh/xMbIY0TGyEAExshAAAAAAAAAAAAAAAAAAAAAAATGyEAExshVhMb
If0TGyH7Exsh/xMbIfsTGyFQExshAAAAAAAAAAAAAAAAABMbIQATGyEAExshABMbIZYTGyH/ExshrhMb
IQQTGyEAAAAAAAAAAAATGyEAExshBRMbIbMTGyH/ExshjhMbIQATGyEAExshAAAAAAAAAAAAAAAAABMb
IQATGyFWExsh/RMbIfsTGyH/Exsh+xMbIVATGyEAAAAAAAAAAAATGyEAExshABMbIQATGyE6Exsh3RMb
If8TGyGnExshAhMbIQAAAAAAAAAAABMbIQATGyEDExshqxMbIf8TGyHXExshMxMbIQATGyEADSkfAAAA
AAAAAAAAExshABMbIVYTGyH9Exsh+xMbIf8TGyH7ExshUBMbIQAAAAAAAAAAABMbIQATGyEAExshHhMb
IckTGyH/Exsh4RMbIUMTGyEAERUYAEOy/wBDsv8AERYZABMbIQATGyFBExsh3xMbIf8TGyHCExshGhMb
IQATGyEAAAAAAAAAAAATGyEAExshVhMbIf0TGyH7Exsh/xMbIfsTGyFQExshAAAAAAALGSIAExshABMb
IQMTGyGRExsh/xMbIe0TGyFRIEVeAEKu+QBDsv8AQ7L/AEOy/wBDsv8AQq75AB9AVwATGyFOExsh7BMb
If8TGyGIExshARMbIQAUGyEAAAAAABMbIQATGyFWExsh/RMbIfsTGyH/Exsh+xMbIVATGyEAAAAAABMb
IQATGyEAExshNhMbIesTGyH/ExshgD6j6ABEtv8QQ7L/W0Oy/21Dsv9sQ7L/bEOy/21Dsv9aRLb/DziO
yQATGyF/Exsh/xMbIecTGyEwExshABMbIQAAAAAAExshABMbIVYTGyH9Exsh+xMbIf8TGyH7ExshUBMb
IQAAAAAAExshABMbIQATGyGIExsh/xMbIdMTGyEbM4C1AEOy/11Dsv//Q7L//0Oy//9Dsv//Q7L//0Oy
//5Dsv9YM3+0ABMbIRwTGyHUExsh/xMbIYETGyEAExshAAAAAAATGyEAExshVhMbIf0TGyH7Exsh/xMb
IfsTGyFQExshAAAAAAATGyEAExshDRMbIcUTGyH/ExshiBMbIQBCsPsAQ7L/NEOy/7xDsv/OQ7L/zUOy
/81Dsv/OQ7L/ukOy/zFCr/oAExshABMbIYsTGyH/ExshvxMbIQsTGyEAAAAAABMbIQATGyFWExsh/RMb
IfsTGyH/Exsh+xMbIVATGyEAAAAAABMbIQATGyEhExsh4hMbIf0TGyFTExshAP///wA8m90ARbn/CkW3
/xBFt/8QRbf/EEW3/xBFuf8KPaDkABUhLAATGyEAExshWBMbIf8TGyHdExshHRMbIQAAAAAAExshABMb
IVYTGyH9Exsh+xMbIf8TGyH7ExshUBMbIQAAAAAAExshABMbISsTGyHqExsh9xMbIUETGyEAEhkfAB4+
UwAODAsHDQcECA0HBAgNBwQIDQcECA4MCwcYKzgAExkfABMbIQATGyFGExsh+hMbIecTGyEmExshAAAA
AAATGyEAExshVxMbIf4TGyH8Exsh/xMbIfsTGyFQExshAAAAAAATGyEAExshJBMbIeUTGyH8ExshThMb
IQABADIAExshXxMbIbwTGyG9ExshvRMbIb0TGyG9ExshuxMbIVsTGyEAExshABMbIVITGyH9Exsh4RMb
ISATGyEAAAAAABMbIQATGyE6Exsh4xMbIdETGyH/Exsh+xMbIVATGyEAAAAAABMbIQATGyERExshzBMb
If8TGyF9ExshABMbIQgTGyG9Exsh/xMbIf8TGyH/Exsh/xMbIf8TGyH/ExshuBMbIQYTGyEAExshgRMb
If8TGyHHExshDhMbIQAAAAAAExshABMbIQMTGyEtExshIhMbIf8TGyH7ExshUBMbIQAAAAAAExshABUe
JAATGyGVExsh/xMbIckTGyEUExshCBMbIb8TGyH/ExshvRMbIX4TGyF+ExshwRMbIf8TGyG6ExshBhMb
IRYTGyHMExsh/xMbIY8TGyEAExshAAAAAAATGyEAExshABMbIQATGyEAExsh/xMbIfsTGyFQExshAAAA
AAATGyEAExshABMbIUETGyHxExsh/hMbIXkTGyEJExshvhMbIf8TGyF6ExshABMbIQATGyGBExsh/xMb
IbkTGyEIExshexMbIf8TGyHvExshPBMbIQATGyEAAAAAAAAAAAAAAAAAAAAAAAAAAAATGyH/Exsh+xMb
IVATGyEAAAAAABIbIgATGyEAExshBRMbIZkTGyH/Exsh7xMbIW8TGyHDExsh/xMbIXwTGyEAExshABMb
IYMTGyH/ExshvxMbIW0TGyHvExsh/xMbIZQTGyEEExshABMbIgAAAAAAExshABMbIQATGyEAExshABMb
If8TGyH7ExshUBMbIQAAAAAAAAAAABMbIQATGyEAExshHhMbIcETGyH/Exsh9hMbIfUTGyH/ExshfBMb
IQATGyEAExshgxMbIf8TGyHzExsh9hMbIf8TGyG9ExshHBMbIQATGyEAAAAAAAAAAAATGyEAExshBRMb
IToTGyEsExsh/xMbIfsTGyFQExshAAAAAAAAAAAAEhshABMbIQATGyEAExshJxMbIbgTGyH/Exsh/xMb
If8TGyF9ExshABMbIQATGyGEExsh/xMbIf8TGyH/ExshtBMbISQTGyEAExshABMcIQAAAAAAAAAAABMb
IQATGyE+Exsh6xMbIdsTGyH/Exsh+xMbIVATGyEAAAAAAAAAAAAAAAAAExshABMbIQATGyEAExshFBMb
IXkTGyHYExsh7xMbIVoTGyEAExshABMbIWATGyHwExsh1hMbIXYTGyESExshABMbIQATGyEAAAAAAAAA
AAAAAAAAExshABMbIVcTGyH+Exsh/BMbIf8TGyH7ExshUBMbIQAAAAAAAAAAAAAAAAAAAAAAExshABMb
IQATGyEAExshABMbIR4TGyE1ExshCRMbIQATGyEAExshCRMbITUTGyEcExshABMbIQATGyEAExshAAAA
AAAAAAAAAAAAAAAAAAATGyEAExshVhMbIf0TGyH7Exsh/xMbIfsTGyFQExshAAAAAAAAAAAAAAAAAAAA
AAAAAAAAExshABMbIQATGyEAExshABMbIQATGyEAExshABMbIQATGyEAExshABMbIQATGyEAExshABMb
IQAAAAAAAAAAAAAAAAAAAAAAAAABABMbIQATGyFWExsh/RMbIfsTGyH/Exsh+xMbIU8TGyEAExohAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATGyEAExshABMbIVYTGyH9Exsh+xMbIf8TGyH8ExshVBMb
IQATGyEAExshABMbIQATGyEAExshABMbIQATGyEAExshABMbIQATGyEAExshABMbIQATGyEAExshABMb
IQATGyEAExshABMbIQATGyEAExshABMbIQATGyEAExshABMbIQATGyEAExshWxMbIf4TGyH6Exsh4xMb
If8TGyG2ExshVBMbIU8TGyFQExshUBMbIVATGyFQExshUBMbIVATGyFQExshUBMbIVATGyFQExshUBMb
IVATGyFQExshUBMbIVATGyFQExshUBMbIVATGyFQExshUBMbIVATGyFQExshTxMbIVUTGyG6Exsh/xMb
Id4TGyFzExsh9BMbIf8TGyH8Exsh+xMbIfsTGyH7Exsh+xMbIfsTGyH7Exsh+xMbIfsTGyH7Exsh+xMb
IfsTGyH7Exsh+xMbIfsTGyH7Exsh+xMbIfsTGyH7Exsh+xMbIfsTGyH7Exsh+xMbIfsTGyH7Exsh/BMb
If8TGyHzExshbhMbIQkTGyFzExsh4xMbIf8TGyH/Exsh/xMbIf8TGyH/Exsh/xMbIf8TGyH/Exsh/xMb
If8TGyH/Exsh/xMbIf8TGyH/Exsh/xMbIf8TGyH/Exsh/xMbIf8TGyH/Exsh/xMbIf8TGyH/Exsh/xMb
If8TGyH/Exsh4hMbIXATGyEHAAGAAAABgAAAAYAAAAGAAAMBgMAPAYDgDwGA8A8BgPAOAYBwDAGAMAwA
ADAIAAAQCAAAEAgAABAIAAAQCAAAEAgAABAIAAAQCAAAEAgAABAIAAAfCAAAEAwAADAMAAAwDgAAcA8A
APAPgAHgB///4AAAAAAAAAAAAAAAAAAAAAA=
</value>
</data>
</root>

@ -0,0 +1,246 @@
using System;
using System.Collections.Generic;
using System.Text;
using System.Net;
using System.Net.Sockets;
namespace Dat2Bin
{
public class LinkList
{
/// <summary>
/// 链表长度
/// </summary>
private int _length;//每次做插入操作,加一,删除操作减一
public int Length
{
get { return _length; }
}//链表长度的接口只读。
private Node _head;//链表头
public Node head
{
get { return _head; }
}
private Node _end;//链表尾
public Node End
{
get { return _end; }
}
/// <summary>
/// 查找索引值index个链表节点。
/// </summary>
/// <param name="index"></param>
/// <param name="flag"></param>
/// <returns></returns>
private Node FindNodeByIndex(int index)
{
//如果越界则抛出异常。
//异常包括有长度为0index为0也为异常。index<0则为越界。
if (_length <= index || index < 0) throw new IndexOutOfRangeException("索引超出了链表界限。");
Node flag = null;
int hcount = index;//从头遍历的开销
int ecount = _length - index - 1;//从尾遍历的开销。
//如果从头查找的开销小于等于从尾查找的开销,就从头开始查。
if (hcount <= ecount)
{
flag = _head;
int count = hcount;//关键一步,因为是双向链表
//开始移动标记,直到移到要找到的节点位置
while (count > 0)
{
flag = flag.Next;
count--;
}
}
else
{
flag = _end;
int count = ecount;//关键一步,因为是双向链表
//开始移动标记,直到移到要找到的节点位置
while (count > 0)
{
flag = flag.Pre;
count--;
}
}
//此时的flag位置标记了
return flag;
}
public LinkList()
{
//新建一个空链表,长度为0
_head = null;
_end = null;
_length = 0;
}
/// <summary>
/// 把T类型的data装入链表位置在链表的最后端
/// </summary>
/// <param name="data"></param>
/// <returns></returns>
public void Add(string fileName, string SafeFileName, DateTime fileStartTime, DateTime fileEndTime, HEADInfo file_head)
{
//新建一节点
Node newNode = new Node();
newNode.Next = null;//插入的为尾部故其next指向必定为空
newNode.data.fileName = fileName;
newNode.data.SafeFileName = SafeFileName;
newNode.data.fileStartTime = fileStartTime;
newNode.data.fileEndTime = fileEndTime;
newNode.data.fileHead = file_head;
if (_head == null) //如果头节点为空,则链表为空,
{
_head = newNode; //_head直接指向新建的节点。
_head.Pre = null; //而新建的节点的前向引用为null
}
else
{
_end.Next = newNode;
newNode.Pre = _end; //做一次握手。
}
_end = newNode; //插入的位置为链表尾部
_length++; //插入操作,链表长度加一
}
public void Add(string fileName, string SafeFileName, DateTime fileStartTime, DateTime fileEndTime, HEADInfo file_head, byte transtimeOK)
{
//新建一节点
Node newNode = new Node();
newNode.Next = null;//插入的为尾部故其next指向必定为空
newNode.data.fileName = fileName;
newNode.data.SafeFileName = SafeFileName;
newNode.data.fileStartTime = fileStartTime;
newNode.data.fileEndTime = fileEndTime;
newNode.data.fileHead = file_head;
newNode.data.transtimeOK = transtimeOK;
if (_head == null) //如果头节点为空,则链表为空,
{
_head = newNode; //_head直接指向新建的节点。
_head.Pre = null; //而新建的节点的前向引用为null
}
else
{
_end.Next = newNode;
newNode.Pre = _end; //做一次握手。
}
_end = newNode; //插入的位置为链表尾部
_length++; //插入操作,链表长度加一
}
/// <summary>
/// 把T类型的data装入链表位置在链表的最后端
/// </summary>
/// <param name="data"></param>
/// <returns></returns>
public void Add(SiteParameter data)
{
//新建一节点
Node newNode = new Node();
newNode.Next = null;//插入的为尾部故其next指向必定为空
newNode.data = data;
if (_head == null) //如果头节点为空,则链表为空,
{
_head = newNode; //_head直接指向新建的节点。
_head.Pre = null; //而新建的节点的前向引用为null
}
else
{
_end.Next = newNode;
newNode.Pre = _end; //做一次握手。
}
_end = newNode; //插入的位置为链表尾部
_length++; //插入操作,链表长度加一
}
/// <summary>
/// 移除指定位置的元素
/// </summary>
/// <param name="index"></param>
public void RemoveAt(int index)
{
//越界的exception已经在FindNodeByIndex中处理了。
Node flag = FindNodeByIndex(index);
//flag现在已经在要删除的节点处。
if (_head.Next == null)//只有一个节点且index没有越界即删除的是_head
{
//直接赋空
_head = null;
_end = null;
//这里必须得独立处理,因为 flag.Next.Pre = flag.Pre;
//_head.Next如果为空就不能有Pre指向
}
else//有多于一的节点,且index没有越界,经画图发现可以统一操作。
{
//删除节点操作。。
if (index == _length - 1) _end = _end.Pre;
else flag.Next.Pre = flag.Pre;
if (index == 0) _head = flag.Next;
else flag.Pre.Next = flag.Next;
}
_length--;//非空链表,并且长度没有越界,故长度在删除之后,必然减一
//增加一个字段,就必须要保持一致性。
}
public SiteParameter GetnodeData(int position)
{
Node flag = FindNodeByIndex(position - 1);//从1开始
return flag.data;
}
public void SetNodeData(int position, ref SiteParameter data)
{
Node flag = FindNodeByIndex(position - 1);//从1开始
flag.data = data;
}
/// <summary>
/// 获得索引SiteParameter里边的值
/// </summary>
/// <param name="index"></param>
/// <returns></returns>
public SiteParameter this[int index]
{
get
{
Node flag = FindNodeByIndex(index);
return flag.data;
}
set
{
Node flag = FindNodeByIndex(index);
flag.data = value;
}
}
/// <summary>
/// 清空链表
/// </summary>
public void Clear()
{
_head = null;
_end = null;
_length = 0;
}
/// <summary>
/// 获取链表元素的个数
/// </summary>
public int GetLength()
{
return _length;
}
}
}

@ -0,0 +1,276 @@
using System;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;
using System.IO;
namespace Dat2Bin
{
public struct MTEMFreqFile
{
public byte No;//0-29
public ushort CycleLen;//
public ushort CycleNum;//
public int WaveStyle;//
public float SampleRate;//
public sbyte pro;//
public byte OutCurrent;//
public float Time;//
public float Freq;//。
}
[StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
public struct MTEM_TInfo
{
public short day; // 日
public short month; // 月
public short year; // 年 2001-2999
public short hour; // 时
public short minute; // 分
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 20)]
public string geo; // 工作地区 - 地名
public byte sec; // 秒
public byte met; // 记录方法代码:
//0-31
public short end_year; // 年 2001-2999
public short end_month; // 月
public short end_day; // 日
public short end_hour; // 时
public short end_minute; // 分
public byte end_sec; // 秒
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 10)]
public string standby1; // 备用
public sbyte pro; // ADC量化代码:
public byte kan; // number of channels 通道数
public byte valid; // 该记录是否有效
public short ab1; // 发射源AB的第一个电极的位置
public short ab2; //发射源AB的第二个电极的位置
public short ab3; // 发射机的位置
public short res; // 接地电阻
public float Tok; // 发射电流 I(A)
public float Voltage; // 发射电压 V(V)
//32-71
public byte Tgu; // 发射波形: 1-doubling
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 17)]
public string standby5; // 备用
public int Nom; // record of number 记录号与文件名相对应
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 6)]
public string standby6; // 备用
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 20)]
public string Fam; // surname of the operator 操作员
// 72-119
public int Lps; // number of points in record 记录的数据点数
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 18)]
public string standby7; // 备用
public short Nst; // MeterNum 仪器号
/// <summary>
/// 通道号
/// </summary>
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 8)]
public string standby8; // 备用,临时改为通道号ch01-ch03
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 48)]
public string Com;
// string of the comment 注释行
//120-199
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 90)]
public short[] Isw;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 132)]
public string standby9;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 24)]
public ChInfo[] channel;
}
[StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
public struct HEADInfo
{
public short day; // 日
public short month; // 月
public short year; // 年 2001-2999
public short hour; // 时
public short minute; // 分
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 20)]
public string geo; // 工作地区 - 地名
public byte sec; // 秒
public byte met; // 记录方法代码:
//0-31
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 21)]
public string standby1; // 备用
public sbyte pro; // ADC量化代码:
public byte kan; // number of channels 通道数
public byte standby2; // 备用
public short ab1; // Lab(meters) length of ab1, 发射源AB的长度 发射极距
public short ab2; // number AB 发射点号
public short ab3; //
public short standby3; // 备用
public float Tok; // 发射电流 I(A)
public uint standby4; // 备用
//32-71
public byte Tgu; // 发射波形: 1-doubling
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 17)]
public string standby5; // 备用
public int Nom; // record of number 记录号与文件名相对应
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 6)]
public string standby6; // 备用
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 20)]
public string Fam; // surname of the operator 操作员
// 72-119
public int Lps; // number of points in record 记录的数据点数
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 18)]
public string standby7; // 备用
public short Nst; // MeterNum 仪器号
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 8)]
public string standby8; // 备用
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 48)]
public string Com;
// string of the comment 注释行
//120-199
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 90)]
public short[] Isw;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 132)]
public string standby9;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 24)]
public ChInfo[] channel;
}
// 406-511
[StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]//按一个字节对齐
public struct ChInfo
{
public byte Idk; //
public byte standby0;
public sbyte Uko; //
public byte Ufl; // 测站号
public short Pkt; // 测点号
public short Prf; // 测线号
public short ab; // 电极距
public short datatype; // 数据类型
//1数据类型
// 1- Hall
// 2- 电极
// 4- 接收
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 8)]
public string standby1;
public float X; //coordinate 'x' (not use)
public float Y; //coordinate 'y' (not use)
public float Z; //coordinate 'z' (not use)
public float Ecs; // LSB
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 28)]
public string standby2;
} // 64*24=1536
public struct FreqFileHead
{
public MTEMFreqFile[] MTEMfreqfile;
public int totalpoint ; //用于总采样点数label_totsize
public float totaltime ; //采集总时间
public string SafeFileName;
public string FileName;
}
[StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]//按一个字节对齐
public struct SEGYFileHead
{
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 3200)]
public byte[] ASCIIByte;
public secPartSEGYFileHead secPartSEGYFileHead;///
}
[StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]//按一个字节对齐
public struct secPartSEGYFileHead
{
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 12)]
public byte[] standby;//Not use
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
public byte[] channelNumber;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
public byte[] standby2;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
public byte[] sampleGap;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
public byte[] standby3;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
public byte[] samplePointerNumber;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
public byte[] standby5;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
public byte[] codeStyle;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 28)]
public byte[] standby4;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
public byte[] measureFormat;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 344)]
public byte[] standby6;
}
[StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]//按一个字节对齐
public struct SEGYChannelHead
{
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
public byte[] fileNumber;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
public byte[] channelNumber;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
public byte[] origNumber;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 16)]
public byte[] standby;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
public byte[] channelObject;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 50)]
public byte[] standby1;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
public byte[] xScale;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
public byte[] yScale;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
public byte[] scaleObject;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 24)]
public byte[] standby2 ;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
public byte[] channelSamplePointer;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
public byte[] channelSampleGap;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 38)]
public byte[] standby3;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
public byte[] year;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
public byte[] day;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
public byte[] hour;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
public byte[] mins;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
public byte[] second;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
public byte[] UTC;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 72)]
public byte[] standby4 ;
}
}

@ -0,0 +1,13 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace Dat2Bin
{
public class Node
{
public SiteParameter data;
public Node Next;
public Node Pre;
}
}

@ -0,0 +1,22 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Dat2Bin
{
static class Program
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Dat2BinForm());
}
}
}

@ -0,0 +1,36 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// 有关程序集的一般信息由以下
// 控制。更改这些特性值可修改
// 与程序集关联的信息。
[assembly: AssemblyTitle("Dat2Bin")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("Dat2Bin")]
[assembly: AssemblyCopyright("Copyright © 2020")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// 将 ComVisible 设置为 false 会使此程序集中的类型
//对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型
//请将此类型的 ComVisible 特性设置为 true。
[assembly: ComVisible(false)]
// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
[assembly: Guid("e431fbfe-d292-45bb-bcd8-dee8ae2d2392")]
// 程序集的版本信息由下列四个值组成:
//
// 主版本
// 次版本
// 生成号
// 修订号
//
//可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值
//通过使用 "*",如下所示:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]

@ -0,0 +1,71 @@
//------------------------------------------------------------------------------
// <auto-generated>
// 此代码由工具生成。
// 运行时版本: 4.0.30319.42000
//
// 对此文件的更改可能导致不正确的行为,如果
// 重新生成代码,则所做更改将丢失。
// </auto-generated>
//------------------------------------------------------------------------------
namespace Dat2Bin.Properties
{
/// <summary>
/// 强类型资源类,用于查找本地化字符串等。
/// </summary>
// 此类是由 StronglyTypedResourceBuilder
// 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。
// 若要添加或删除成员,请编辑 .ResX 文件,然后重新运行 ResGen
// (以 /str 作为命令选项),或重新生成 VS 项目。
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class Resources
{
private static global::System.Resources.ResourceManager resourceMan;
private static global::System.Globalization.CultureInfo resourceCulture;
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
internal Resources()
{
}
/// <summary>
/// 返回此类使用的缓存 ResourceManager 实例。
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Resources.ResourceManager ResourceManager
{
get
{
if ((resourceMan == null))
{
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Dat2Bin.Properties.Resources", typeof(Resources).Assembly);
resourceMan = temp;
}
return resourceMan;
}
}
/// <summary>
/// 覆盖当前线程的 CurrentUICulture 属性
/// 使用此强类型的资源类的资源查找。
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Globalization.CultureInfo Culture
{
get
{
return resourceCulture;
}
set
{
resourceCulture = value;
}
}
}
}

@ -0,0 +1,117 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

@ -0,0 +1,30 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace Dat2Bin.Properties
{
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
{
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
public static Settings Default
{
get
{
return defaultInstance;
}
}
}
}

@ -0,0 +1,7 @@
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)">
<Profiles>
<Profile Name="(Default)" />
</Profiles>
<Settings />
</SettingsFile>

@ -0,0 +1,23 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.Net.Sockets;
namespace Dat2Bin
{
public struct SiteParameter
{
public ushort fileId;
public string fileName;
public string SafeFileName;
public DateTime fileStartTime;
public DateTime fileEndTime;
public HEADInfo fileHead;
public IPAddress boxip;
public ushort upfileId;
public byte transtimeOK;
public byte LogFile;//LOG :1 OTHER:0
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

@ -0,0 +1,3 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8"/></startup></configuration>

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="System.Buffers" version="4.5.1" targetFramework="net48" />
<package id="System.Memory" version="4.5.5" targetFramework="net48" />
<package id="System.Numerics.Vectors" version="4.5.0" targetFramework="net48" />
<package id="System.Runtime.CompilerServices.Unsafe" version="4.5.3" targetFramework="net48" />
</packages>
Loading…
Cancel
Save