c#分页读取GB文本文件实例
本文实例讲述了c#分页读取GB文本文件的方法。分享给大家供大家参考。具体如下:
一、应用场景:
① .我在做BI开发测试的时候,有可能面对source文件数GB的情况,如果使用一般的文本编辑器,则会卡死,或要等很久才能显示出来。
② .有时候,我们使用ascii(01)或ascii(02)作为行或列的分隔符,这样的临时文件用于导数据到DB,如果文件导入过程中有错误,需要查看文件 的时候,普通的编辑器不支持换行,则会很恐怖。
为解决这两个需求,我使用c#完成了一个简单的winform的应用程序。
功能列表:
1.根据配置的行数,写测试文件,指定行终止符,列分隔符暂时没有使用上。
2.根据指定的行终止符,和pagesize,分页读取文件内容,而且可以在text和byte间转换。
二、实现代码:
主要的代码如下,使用了一个迭代器:
private IEnumerator<string> ReadLines(string filename)
{
/*
string line;
using (TextReader reader = File.OpenText(filename))
{
while ((line = reader.ReadLine()) != null)
yield return line;
}
*/
StringBuilder sb = new StringBuilder();
using (FileStream fs = File.OpenRead(filename))
{
int b = 0;
while ((b=fs.ReadByte())!=-1)
{
//textbox3 store the row terminator
if (b.ToString() == textBox3.Text.Trim())
{
yield return sb.ToString();
sb.Clear();
}
else
sb.Append(UnicodeEncoding.ASCII.GetString(new byte[] { byte.Parse(b.ToString()) }));
}
}
}
示例截图如下所示:
我测试了一次,生成了1个亿的数据行,在系统中显示占用6GB的空间,
我尝试读写,无卡顿情况。
可以进一步更新:
根据列行分隔符显示到gridview中,这样更清晰。
可以从后往前读文件。
希望本文所述对大家的C#程序设计有所帮助。
相关推荐
-
C#拼接SQL语句 用ROW_NUMBER实现的高效分页排序
如果项目中要用到数据库,铁定要用到分页排序.之前在做数据库查询优化的时候,通宵写了以下代码,来拼接分页排序的SQL语句 复制代码 代码如下: /// <summary> /// 单表(视图)获取分页SQL语句 /// </summary> /// <param name="tableName">表名或视图名</param> /// <param name="key">唯一键</param> //
-
C#基于数据库存储过程的AJAX分页实例
本文实例讲述了C#基于数据库存储过程的AJAX分页实现方法.分享给大家供大家参考.具体如下: 首先我们在数据库(SQL Server)中声明定义存储过程 复制代码 代码如下: use sales --指定数据库 if(exists(select * from sys.objects where name='proc_location_Paging')) --如果这个proc_location_paging存储过程存在则删除 drop proc proc_location_Pagin
-
C# DataTable分页处理实例代码
有时候我们从数据库获取的数据量太大,而我们不需要一次性显示那么多的时候,我们就要对数据进行分页处理了,让每页显示不同的数据. public DataTable GetPagedTable(DataTable dt, int PageIndex, int PageSize)//PageIndex表示第几页,PageSize表示每页的记录数 { if (PageIndex == 0) return dt;//0页代表每页数据,直接返回 DataTable newdt = dt.Copy(); new
-
基于jquery的分页控件(C#)
JS代码: Code: 复制代码 代码如下: var _MaxPageSize = 0; var _PageSize = 5; var _IsUpDown = false; function InitPage(funName, currentPageSize, maxPageSize, pageSize, isUpDown) { _FunName = funName; _CurrentPageSize = currentPageSize; _MaxPageSize = maxPageSize;
-
C#中常用的分页存储过程小结
表中主键必须为标识列,[ID] int IDENTITY (1,1)//每次自增一 1.分页方案一:(利用Not In和SELECT TOP分页) 语句形式: 复制代码 代码如下: SELECT TOP 10 * FROM TestTable WHERE (ID NOT IN (SELECT TOP 20 id FROM TestTable ORDER BY id)) ORDER BY ID SELECT TOP 页大小 * FROM TestTable WHERE (ID NOT IN (SE
-
c#分页显示服务器上指定目录下的所有图片示例
c#分页显示服务器上指定目录下的所有图片 复制代码 代码如下: <%@ Page Language="C#" EnableViewState="false" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
C#构建分页应用的方法分析
本文实例讲述了C#构建分页应用的方法.分享给大家供大家参考,具体如下: 1.SQL语句 WITH [temptableforStockIC] AS ( SELECT *,ROW_NUMBER() OVER (ORDER BY CreateTime DESC) AS RowNumber FROM [StockIC] WHERE 1=1 AND Model = 'FTY765OP' ) SELECT * FROM [temptableforStockIC] WHERE RowNumber BETWE
-
C#实现分页组件的方法
分页无论是前端和后端,基本都有广泛应用!下面通过一个小小案例完成这个分页效果: 参数含义: string urlFormat: 要传给服务器端的URL地址格式,方便在点超链接时进行相应的跳转 long totalSize: 总的数据条数. long pageSize: 每页多少条数据 long currentPage: 当前的页数 后面通过具体的一个案例来用这个分页方法: 一.分页方法: /// <summary> /// 生成页码的html /// </summary&g
-
适用于WebForm Mvc的Pager分页组件C#实现
本文为大家分享了自己写的一个Pager分页组件,WebForm,Mvc都适用,具体内容如下 分页控件其实就是根据链接在页面间传递参数,因为我看到MVC中你可以看到这样传递参数的new {para=val}这种方式传递参数,于是我想到用可以模仿这种传递参数的方式,那就用dynamic来作为参数对象传递. 下面是附上我写的具体的实现的代码 数据处理代码: 1.定义IPagedList接口 using System; using System.Collections.Generic; using Sy
-
c#分页读取GB文本文件实例
本文实例讲述了c#分页读取GB文本文件的方法.分享给大家供大家参考.具体如下: 一.应用场景: ① .我在做BI开发测试的时候,有可能面对source文件数GB的情况,如果使用一般的文本编辑器,则会卡死,或要等很久才能显示出来. ② .有时候,我们使用ascii(01)或ascii(02)作为行或列的分隔符,这样的临时文件用于导数据到DB,如果文件导入过程中有错误,需要查看文件 的时候,普通的编辑器不支持换行,则会很恐怖. 为解决这两个需求,我使用c#完成了一个简单的winform的应用程序.
-
PHP读取txt文本文件并分页显示的方法
本文实例讲述了PHP读取txt文本文件并分页显示的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: <?php session_start(); if (empty($page)) {$page=1;} if (isset($_GET['page'])==TRUE) {$page=$_GET['page']; } ?> <html> <head> <meta http-equiv="Content-Type&q
-
Python读取分割压缩TXT文本文件实例
废话不多说,上代码看吧! ''' 为了避免截断中文字符 文件要求是 unicode 编码 txt文件另存为对话框下面有下拉框,可选存 储编码格式 ''' import os import struct #导入所需python模块方法 filename = str(raw_input("Please enter an old file name: ")) filenamepre = str(raw_input("Please enter an new file name pre
-
Android提高之SQLite分页读取实现方法
一般来说,Android自身就包含了常用于嵌入式系统的SQLite,这样就免去了开发者自己移植安装的功夫.SQLite 支持多数SQL92标准,很多常用的SQL命令都能在SQLite上面使用,除此之外Android还提供了一系列自定义的方法去简化对SQLite数据库的操作.不过有跨平台需求的程序还是建议使用标准的SQL语句,毕竟这样容易在多个平台之间进行移植. 先来贴出本文程序运行的结果图: 本文实例程序主要讲解了SQLite的基本用法,如:创建数据库,使用SQL命令查询数据表.插入数据,关闭数
-
Java web的读取Excel简单实例代码
目录结构: Data.xls数据: 后台页面: public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //System.out.println(this.getServletContext().getRealPath ("/")); try{ Workbook wb = Workbook.getWorkbook(
-
python读取二进制mnist实例详解
python读取二进制mnist实例详解 training data 数据结构: <br>[offset] [type] [value] [description] 0000 32 bit integer 0x00000803(2051) magic number 0004 32 bit integer 60000 number of images 0008 32 bit integer 28 number of rows 0012 32 bit integer 28 number of co
-
Android 中读取Excel文件实例详解
Android 中读取Excel文件实例详解 最近有个需求需要在app内置数据,新来的产品扔给了我两个Excel表格就不管了(两个表格格式还不统一...),于是通过度娘等方法找到了Android中读取Excel表格文件的一种方法,记录一下. 闲话一下Excel中工作簿和工作表的区别: 工作簿中包含有工作表.工作簿可以由一张或多张工作表组成,一个工作簿就是一个EXCEL表格文件. 好了,开始读取表格文件吧. 前提 首先,我们假设需要读取的表格文件名字为test.xls, 位于assets根目录下.
-
PHP读取配置文件类实例(可读取ini,yaml,xml等)
本文实例讲述了PHP读取配置文件类实例.分享给大家供大家参考.具体如下: <?php class Settings { var $_settings = array (); function get($var) { $var = explode ( '.', $var ); $result = $this->_settings; foreach ( $var as $key ) { if (! isset ( $result [$key] )) { return false; } $resul
-
Java 自定义注解及利用反射读取注解的实例
一.自定义注解 元注解: @interface注解: 定义注解接口 @Target注解: 用于约束被描述的注解的使用范围,当被描述的注解超出使用范围则编译失败.如:ElementType.METHOD,ElementType.TYPE: @Retention 注解:用于约束被定义注解的作用范围,作用范围有三个: 1.RetentionPolicy.SOURCE:作用范围是源码,作用于Java文件中,当执行javac时去除该注解. 2.RetentionPolicy.CLASS:作用范围是二进制码
-
mybatis实现读取树结构数据实例代码
mybatis实现读取树结构数据详细介绍如下所示: 表结构 CREATE TABLE `lscrm_function_privilege` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '编号', `create_id` varchar(30) NOT NULL DEFAULT 'sys', `update_id` varchar(30) NOT NULL DEFAULT 'sys', `create_time` timestam
随机推荐
- JavaScript 创建对象
- 学习YUI.Ext 第六天--关于树TreePanel(Part 1)
- 解决MyEclipse10.7部署报错抛空指针异常问题的方法
- JavaScript的null和undefined区别示例介绍
- [PHP]实用函数3
- python进阶教程之异常处理
- Django中使用group_by的方法
- 浅谈vim的四种模式及模式切换
- php is_file()和is_dir()用于遍历目录时用法注意事项
- Android 活动条ActionBar的详解及实例代码
- JavaScript 常用函数
- 关于rundl132.exe vidll.dll LOGO1.exe 的清除方法
- IE6下opacity与JQuery的奇妙结合
- SpringMVC Validator验证示例
- 十三步完成内置ADSL Modem卡的设置
- PyQt5实现下载进度条效果
- Java实现简单汽车租赁系统
- 深入浅析Vue 中 ref 的使用
- JavaScript静态作用域和动态作用域实例详解
- 浅析java中的取整(/)和求余(%)