C#创建.txt文件存储和android读取txt文件数据的问题

&UIPower企业宣传片
vb6 怎么很快的读取数据量大的TXT文件
vb6 怎么很快的读取数据量大的TXT文件
1)测量仪器测量数据保存在仪器的内存卡中,保存格式为TXT文件
2)数据一组一组的按顺序存储如:AAB46823BBAAB46823BBAAB46823BB.......
3)由于是按秒存储txt文本比较大,一分钟就快到0.2兆了,一天下来数据很大几百兆了
4)请教VB高手如何读取TXT中数据较快?怎么样的解决方案较好
关键是你要读取到什么地方,作什么用途!!!!
如需要写代码给你,你最好生成一个1M左右的文本,压缩打包后上传到某处,供我们下载测试实际速度.
俺写的一个简单的文件读取函数。。。很潦草就是了,无聊无聊写的。。。
Private Declare Function OpenFile& Lib "kernel32" (ByVal FileName As String, ByVal OFs As Long, ByVal Flags As Long)
Private Declare Function NtReadFile& Lib "ntdll" (ByVal Handle As Long, ByVal Events As Long, ByVal APCRoutine As Long, ByVal APCContext As Long, ByVal IoStatus As Long, ByVal Buffer As Long, ByVal Length As Long, Optional ByVal Number As Long, Optional ByVal Keys As Long)
Private Declare Function NtWriteFile& Lib "ntdll" (ByVal Handle As Long, ByVal Events As Long, ByVal APCRoutine As Long, ByVal APCContext As Long, ByVal IoStatus As Long, ByVal Buffer As Long, ByVal Length As Long, Optional ByVal Number As Long, Optional ByVal Keys As Long)
Private Declare Function CloseHandle& Lib "kernel32" (ByVal Handle As Long)
Public Function ReadFile(ByVal FileName As String, ByRef ByteIn() As Byte) As Boolean
Dim Handle&, Block&(1), Struct&(33)
ReDim ByteIn(FileLen(FileName))
Handle = OpenFile(FileName, VarPtr(Struct(0)), 0)
If NtReadFile(Handle, 0, 0, 0, VarPtr(Block(0)), VarPtr(ByteIn(0)), UBound(ByteIn)) = 0 Then ReadFile = True
CloseHandle Handle
End Function
Public Function WriteFile(ByVal FileName As String, ByRef ByteIn() As Byte) As Boolean
Dim Handle&, Block&(1), Struct&(33)
CloseHandle OpenFile(FileName, VarPtr(Struct(0)), 4096)
Handle = OpenFile(FileName, VarPtr(Struct(0)), 1)
If NtWriteFile(Handle, 0, 0, 0, VarPtr(Block(0)), VarPtr(ByteIn(0)), UBound(ByteIn)) = 0 Then WriteFile = True
CloseHandle Handle
End Function
'使用方法如:
Private Sub Form_Load()
Dim Temp() As Byte
Me.Caption = ReadFile("C:WINDOWSwin.ini", Temp)
MsgBox StrConv(Temp, vbUnicode)
Erase Temp
Me.Caption = ReadFile("C:WINDOWS
otepad.exe", Temp)
Me.Caption = WriteFile("C:
otepad.exe", Temp)
一、使用内存映射方式读取文件。
二、将内存映射得到的文件内容指针绑定到VB的byte数组上,以数组形式访问文件内容。
具体代码可参考我博客中《》一文。
引用 3 楼 lyserver 的回复:
一、使用内存映射方式读取文件。
二、将内存映射得到的文件内容指针绑定到VB的byte数组上,以数组形式访问文件内容。
具体代码可参考我博客中《VB快速查找大型文件中包含的字符串》一文。
引用 1 楼 bcrun 的回复:
关键是你要读取到什么地方,作什么用途!!!!
如需要写代码给你,你最好生成一个1M左右的文本,压缩打包后上传到某处,供我们下载测试实际速度.
引用 2 楼 a 的回复:
俺写的一个简单的文件读取函数。。。很潦草就是了,无聊无聊写的。。。
Private Declare Function OpenFile& Lib "kernel32" (ByVal FileName As String, ByVal OFs As Long, ByVal Flags As Long)
Private Declare Function NtRea……
引用 6 楼 hbutwzc 的回复:
这个我知道讲数据写入数组处理,但几百兆上G的数据能写入一个数组么?那样读取处理很慢啊
引用 3 楼 lyserver 的回复:
一、使用内存映射方式读取文件。
二、将内存映射得到的文件内容指针绑定到VB的byte数组上,以数组形式访问文件内容。
具体代码可参考我博客中《VB快速查找大型文件中包含的字符串》一文。
帮顶,,,,
引用 5 楼 hbutwzc 的回复:
要讲TXT文件里的数据一组一组(AA......BB为一组)分析,写入数据库啊
引用 3 楼 lyserver 的回复:
一、使用内存映射方式读取文件。
二、将内存映射得到的文件内容指针绑定到VB的byte数组上,以数组形式访问文件内容。
具体代码可参考我博客中《VB快速查找大型文件中包含的字符串》一文。
看给出的示例内容,貌似是[AA][数据内容][BB]这样的格式,无物理分隔符,是内容逻辑分隔.
那么,如果其中的[数据内容]长度是一定的话,则可以参考上面10楼的方案,代码会很简单.
如果长度不一定,那就只有自己扫描这段内容了.
不过无论哪种方案,都有个读文件的问题,因为关键在于文件很大,能上G,那么我觉得就最好使用分段读取的方案,比如一次读取10M进来处理.
以前我在处理大文件时也使用过内存映射,但发现一个问题,就是进程的连续逻辑内存必须要有文件那么大,不然会映射失败.
不过这个问题当时没时间详细跟进,就使用了分段读取.不知道这个问题江南兄是否遇到?
我处理大文件一般用 Binary 方式打开。这样,打开文件时不必等待操作系统读取整个文件。每次读取并处理 4K 左右还是很快的。
对于定长记录的文件,最好每次读取记录长度的整倍数。
引用 12 楼 myjian 的回复:
看给出的示例内容,貌似是[AA][数据内容][BB]这样的格式,无物理分隔符,是内容逻辑分隔.
那么,如果其中的[数据内容]长度是一定的话,则可以参考上面10楼的方案,代码会很简单.
如果长度不一定,那就只有自己扫描这段内容了.
不过无论哪种方案,都有个读文件的问题,因为关键在于文件很大,能上G,那么我觉得就最好使用分段读取的方案,比如一次读取10M进来处理.
以前我在处理……c# 读取文件内容存放到int数组 array.txt,ASPNET教程,ASPNET案例,ASPNET实例
本站中文域名:、 
        
     
 |  |  |  |  
     |     |     |   
您的位置: &&
&& c# 读取文件内容存放到int数组 array.txt
c# 读取文件内容存放到int数组 array.txt
  本文标签:c#,读取文件内容,int数组
复制代码 代码如下:using S using System.D using System.C using System.W using System.Web.S using System.Web.UI; using System.Web.UI.WebC using System.Web.UI.WebControls.WebP using System.Web.UI.HtmlC using System.C using System.IO; using System.T /// &summary& /// Summary description for ReadFile /// &/summary& public class ReadFile { public ReadFile() { // // TODO: Add constructor logic here // } public int[,] ReadFileToArray() { int[,] iret = ArrayList alNumLine = getFileContent(); string[] strLineArr = if (alNumLine.Count & 0) { strLineArr = Convert.ToString(alNumLine[0]).Trim(,).Split(,); iret = new int[alNumLine.Count, strLineArr.Length]; for (int i = 0; i & alNumLine.C i++) { strLineArr = Convert.ToString(alNumLine[i]).Trim(,).Split(,); for (int j = 0; j & strLineArr.L j++) { iret[i, j] = Convert.ToInt32(strLineArr[j]); } } }
} public ArrayList getFileContent() { ArrayList alRet = new ArrayList(); string strFilePath = HttpContext.Current.Server.MapPath("'") + "/array.txt"; if (!File.Exists(strFilePath)) { HttpContext.Current.Response.Write("文件[" + strFilePath + "]不存在&。"); return alR } try { //读出一行文本,并临时存放在ArrayList中 StreamReader sr = new StreamReader(strFilePath, Encoding.GetEncoding("gb2312"));
while ((l = sr.ReadLine()) != null) { if (!string.IsNullOrEmpty(l.Trim())) alRet.Add(l.Trim()); } sr.Close(); } catch (IOException ex) { HttpContext.Current.Response.Write("读文件出错!请检查文件是否正确&。"); HttpContext.Current.Response.Write(ex.ToString()); } return alR } }
复制代码 代码如下:using S using System.D using System.C using System.W using System.Web.S using System.Web.UI; using System.Web.UI.WebC using System.Web.UI.WebControls.WebP using System.Web.UI.HtmlC using System.C using System.IO; using System.T /// &summary& /// Summary description for ReadFile /// &/summary& public class ReadFile { public ReadFile() { // // TODO: Add constructor logic here // } public int[,] ReadFileToArray() { int[,] iret = ArrayList alNumLine = getFileContent(); string[] strLineArr = if (alNumLine.Count & 0) { strLineArr = Convert.ToString(alNumLine[0]).Trim(,).Split(,); iret = new int[alNumLine.Count, strLineArr.Length]; for (int i = 0; i & alNumLine.C i++) { strLineArr = Convert.ToString(alNumLine[i]).Trim(,).Split(,); for (int j = 0; j & strLineArr.L j++) { iret[i, j] = Convert.ToInt32(strLineArr[j]); } } }
} public ArrayList getFileContent() { ArrayList alRet = new ArrayList(); string strFilePath = HttpContext.Current.Server.MapPath("'") + "/array.txt"; if (!File.Exists(strFilePath)) { HttpContext.Current.Response.Write("文件[" + strFilePath + "]不存在&。"); return alR } try { //读出一行文本,并临时存放在ArrayList中 StreamReader sr = new StreamReader(strFilePath, Encoding.GetEncoding("gb2312"));
while ((l = sr.ReadLine()) != null) { if (!string.IsNullOrEmpty(l.Trim())) alRet.Add(l.Trim()); } sr.Close(); } catch (IOException ex) { HttpContext.Current.Response.Write("读文件出错!请检查文件是否正确&。"); HttpContext.Current.Response.Write(ex.ToString()); } return alR } }
Google搜索中
搜狗搜索中
在线教程导航
数据库开发
产品库推荐
| 站长工具:
All Rights Reserved.
珠江路在线版权所有
苏ICP备号 中文域名:
 |  | C#保存文件或读取数据库文件另存为_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
文档贡献者
评价文档:
暂无相关推荐文档
C#保存文件或读取数据库文件另存为
C​#​保​存​文​件​或​读​取​数​据​库​文​件​另​存​为
把文档贴到Blog、BBS或个人站等:
普通尺寸(450*500pix)
较大尺寸(630*500pix)
大小:1.07KB
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
C# 使用List泛型读取和保存文本文件.txt
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口

我要回帖

更多关于 php读取txt 的文章

 

随机推荐