使用Marshal.Copy把Txt行数据转为Struct类型值
添加重要的命名空间:
using System.Runtime.InteropServices;
先建立结构相同(char长度相同)的Struct类型用于转换:
[StructLayout(LayoutKind.Sequential, Pack = 1)]public struct Employee{[MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]public char[] EmployeeId;[MarshalAs(UnmanagedType.ByValArray, SizeConst = 30)]public char[] LastName;[MarshalAs(UnmanagedType.ByValArray, SizeConst = 30)]public char[] FirstName;//这里省略很多列}
数据文本类似下面, 如这三列固定长度(6,30,30):
10001 Nick Yang 10002 Nick2 Yang 10003 Nick3 Yang
代码获取并转换:
/// <summary>/// Get data from interface file/// </summary>public void GetDataFromFile(){try{string path = ConfigurationManager.ConnectionStrings["DataPath"].ConnectionString;if (File.Exists(path)){string[] rows = File.ReadAllLines(path, Encoding.UTF8);foreach (string row in rows){byte[] bytes = Encoding.UTF8.GetBytes(row);//以下为重点代码int size = Marshal.SizeOf(typeof(Employee));IntPtr buffer = Marshal.AllocHGlobal(size);try{Marshal.Copy(bytes, 0, buffer, size);//此处已经完成转换Employee emp = (Employee)Marshal.PtrToStructure(buffer, typeof(Employee));//省略很多代码 }catch (Exception ex){throw new Exception("Error when Copying bytes from interface to Employee", ex);}finally{Marshal.FreeHGlobal(buffer);}}}else{throw new Exception(string.Format("Error. Can`t not find the interface file at '{0}'", path));}}catch (Exception ex){throw new Exception("Error when getting data from interface file.", ex);}}
转载于:https://www.cnblogs.com/xachary/p/3745063.html
使用Marshal.Copy把Txt行数据转为Struct类型值相关推荐
- sqlserver中将行数据转为Xml文件格式
将sqlserver中的某张表中的行数据转为XML格式的文件的方法: 语法:select * from 表名 for xml path(xml文件中父节点的名称) 案例: // 在Movie数 ...
- Excel如何快速将多行数据转为一行
今天跟大家分享一下Excel如何快速将多行数据转为一行 1.表格文件中含有多行数据,现在我们想要将这些数据转为一行显示 2.首先我们选中单元格区域 3.点击下图选项(Excel工具箱,百度即可了解详细 ...
- Excel如何把两列多行数据转为多列少行
今天跟大家分享一下Excel如何把两列多行数据转为多列多行 1.如下图有两列数据,现在我们想要将这两列数据转为多列 2.首先我们选中要转换的数据单元格区域 3.然后点击下图选项(Excel工具箱,百度 ...
- Excel如何将一列多行数据转为多列多行显示
如下图我们想要将A列这一列多行数据,转为四列多行显示. 选中A列数据单元格全部区域 点击下图选项(Excel工具箱,百度即可了解详细的下载安装信息,本文这里就不做具体介绍) 点击[合并 ...
- python读取txt中数据转为列表
import numpy as np#直接读取 a=np.loadtxt("D:/Desktop/a.txt") print(type(a),a,np.shape(a))#自己编一 ...
- 将Excel每行数据存储到单独的txt文件中
将Excel每行数据存储到单独的txt文件中 将Excel每行的第一格作为文件名,每行的剩余数据存放到该文件中. 实现Excel文件转换为txt文件. 以下是Python代码: import os i ...
- python提取txt数据到excel_python 读取txt中每行数据,并且保存到excel中的实例
使用xlwt读取txt文件内容,并且写入到excel中,代码如下,已经加了注释. 代码简单,具体代码如下: # coding=utf-8 ''' main function:主要实现把txt中的每行数 ...
- python读取txt文件如何按数字分隔_python 读txt文件,按‘,’分割每行数据操作
按行读取TXT文件 fname = './新建文件夹/yob2010.txt' //文件夹路径 with open(fname,'r+',encoding='utf-8') as f: for lin ...
- C++--读取txt文件中的多行数据
前言 很久都没有写过C++了,但是最近交通信息工程有个实验,需要用到C++读取GPS数据,提取出经纬度,然后根据坐标绘制位置点.这个思路其实也不是很难,读取数据,提取需要的元素,数据处理,显示位置点. ...
最新文章
- python微控制器编程从零开始-Python微控制器编程从零开始 使用MicroPython
- Wince5.0自定义工具条
- 如何在OpenJDK中使用ECC
- docker项目部署 php_「Docker部署PHP+Vue项目」- 海风纷飞Blog
- python创建控件,用 IronPython 创建和调用用户控件.doc
- 电脑上怎么做pdf文件_怎么编辑pdf文件内容?什么工具可以编辑pdf?
- 移动组件到指定坐标_《我的世界》传送石碑组件 史蒂夫表示跑路的日子终于结束了...
- dbeaver 设置编码_DBeaver 一个神奇的数据库操作软件
- CSS知识点梳理(二)
- Django之Django debug toolbar调试工具
- 如何利用ping命令拥有最佳MTU?
- WEB三大攻击之—SQL注入攻击与防护
- 服务于win10的telnet的简易聊天服务器(单进程)
- smartdns使用指南_OpenWrt之SmartDNS 使用教程(PW版)
- 服务器装无线上网卡,dlink无线上网卡怎么安装和设置
- 高德地图导航,不显示地图只有语音
- 关于集成网卡怎么设置pxe网卡启动
- 正则表达式详解(贪婪与懒惰、前瞻与后顾、后向引用等)
- java bidi_java11教程--类Bidi用法
- PHP_微信公众号开发(1)
热门文章
- 批量替换 MySQL 指定字段中的字符串
- CSDN-markdown编辑器使用说明
- c# 编程学习(二)
- python模块学习之glob模块
- Java练习 SDUT-1586_计算组合数
- MacOS下MySQL配置
- IBM DS300 安装
- kafka tool 查看指定group下topic的堆积数量_ELK架构下利用Kafka Group实现Logstash的高可用...
- mysql正在运行安全文件怎么办_MySQL服务器运行的安全文件化选项,所以它不能执行该语句什么情? 爱问知识人...
- Flask werkzeug 源码解析