社区
CGI
帖子详情
关于读取文本文件的问题,请指教
ATCG
2002-06-13 09:53:42
我有这么一个文本文件,格式为;
>S1
ABC
DEF
>S2
ABC
DEF
我将这个文件,用PERL改成如下格式,即把ABC和DEF等连成一行
>S1
ABCDEF
>S2
ABCDEF
每行可能有12万个字节!
然后我用PERL程序区读取这个更改后的文本,提示OUT OF MEMORY
我不知到为什么,请各位兄弟帮帮忙,分析一下,先谢谢!
...全文
45
3
打赏
收藏
关于读取文本文件的问题,请指教
我有这么一个文本文件,格式为; >S1 ABC DEF >S2 ABC DEF 我将这个文件,用PERL改成如下格式,即把ABC和DEF等连成一行 >S1 ABCDEF >S2 ABCDEF 每行可能有12万个字节! 然后我用PERL程序区读取这个更改后的文本,提示OUT OF MEMORY 我不知到为什么,请各位兄弟帮帮忙,分析一下,先谢谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ATCG
2002-06-14
打赏
举报
回复
请问一行可以有120K吗?是文本文件吗?谢谢告诉!
tsingson
2002-06-14
打赏
举报
回复
你可以先将文件 用 perl 分成小文件,后再对每个小文章操作,每一行 120K, 应该不是很长的,只是文件大小就要占更多内存啦。
52cgi
2002-06-13
打赏
举报
回复
文件太大了, 内存溢出呗
不知道你是怎么读取的,
有许多教材都有这方面介绍, 可以优化读取文件
VC++(VS2010)读写Excel文件代码(附示例)
【前言】 工作或学习中可能需要实现基于VC读\写Excel文件的功能,本人最近也遇到了该
问题
。中间虽经波折,但是最终还是找到了解决
问题
的办法。 在此跟大家分享,希望对跟我同样迷茫过的同学们有所帮助。 1、程序功能 1)打开一个excel文件; 2)显示到CListCtrl上; 3)新建一个Excel文件。 以上均在对话框中实现。 2、平台 VC++2010 3、实现方法 常用的Excel打开方式有两种 1)通过数据库打开; 2)OLE方式打开。 由于方式1)操作繁琐,经常出现莫名的错误,这里选用方式2). 4、准备步骤 首先新建一个Dialog窗体程序,添加list control和两个按钮 1)将ExcelLib文件夹拷贝到程序目录下; 2)将Export2Excel.h,Export2Excel.cpp两个文件添加到项目; 3)包含头文件,#include "ExcelLib/Export2Excel.h" 通过以上步骤在程序中引入了可以
读取
Excle文件的CExport2Excel类; 5、打开excel文件 通过按钮点击打开 void CExcelTestDlg::OnBnClickedButtonOpenExcel() { //获取文件路径 CFileDialog* lpszOpenFile; CString szGetName; lpszOpenFile = new CFileDialog(TRUE,"","",OFN_FILEMUSTEXIST|OFN_HIDEREADONLY,"Excel File(*.xlsx;*.xls)|*.xls;*.xlsx",NULL); if (lpszOpenFile->DoModal()==IDOK) { szGetName = lpszOpenFile->GetPathName(); SetWindowText(szGetName); delete lpszOpenFile; } else return; //打开文件 //文件中包含多个sheet时,默认打开第一个sheet CExport2Excel Excel_example; Excel_example.OpenExcel(szGetName); //获取sheet个数 int iSheetNum = Excel_example.GetSheetsNumber(); //获取已使用表格行列数 int iRows = Excel_example.GetRowCount(); int iCols = Excel_example.GetColCount(); //获取单元格的内容 CString cs_temp = Excel_example.GetText(1,1); //AfxMessageBox(cs_temp); //List control上显示 //获取工作表列名(第一行) CStringArray m_HeadName; m_HeadName.Add(_T("ID")); for (int i=1;iGetItemCount()>0) { m_list.DeleteColumn(0); } //初始化ClistCtrl,加入列名 InitList(m_list,m_HeadName); //填入内容 //第一行是标题,所以从第2行开始 CString num; int pos; for (int row = 2;row<=iRows; row++) { pos = m_list.GetItemCount(); num.Format(_T("%d"),pos +1); m_list.InsertItem(pos,num); for (int colum=1;columDoModal()==IDOK) { szGetName = lpszOpenFile->GetPathName(); SetWindowText(szGetName); delete lpszOpenFile; } else return; //文件全名称 CString csFileName = szGetName; //需要添加的两个sheet的名称 CString csSheetName = "newSheet"; CString csSheetName2 = "newSheet2"; // 新建一个excel文件,自己写入文字 CExport2Excel Excel_example; //新建excel文件 Excel_example.CreateExcel(csFileName); //添加sheet,新加的sheet在前,也就是序号为1 Excel_example.CreateSheet(csSheetName); Excel_example.CreateSheet(csSheetName2); //操作最开始添加的sheet:(newSheet) Excel_example.SetSheet(2); //添加表头 Excel_example.WriteHeader(1,"第一列"); Excel_example.WriteHeader(2,"第二列"); //添加核心数据 Excel_example.WriteData(1,1,"数据1"); Excel_example.WriteData(1,2,"数据2"); //保存文件 Excel_example.Save(); //关闭文件 Excel_example.Close(); } 7、注意事项 1)一般单个Excel文件包含多个sheet,程序默认打开第一个; 2)指定操作sheet,使用Excel_example.SetSheet(2)函数; 3)打开文件时最左侧的sheet序号为1,新建excel时最新添加的sheet序号为1. 【后记】 本程序主要基于网络CSDN中---“Excel封装库V2.0”---完成,下载地址是:http://download.csdn.net/detail/yeah2000/3576494,在此表示感谢!同时, 1)在其基础上作了小改动,改正了几个小错误,添加了几个小接口; 2)添加了如何使用的例子,原程序是没有的; 3)详细的注释 发现不足之处,还
请
大家多多
指教
!
Txt_java.rar_java 记事本_txt ja_txtja_记事本
这是本人自己所编写的JAVA小程序,记事本,功能不是很全,
请
多
指教
!
ccf_offline_stage1_train.zip_python_python 实验_train
python 编程新手实验编程,练习代码,多多
指教
。
C# 点名器期末作业
C#点到软件,实现文件导入自动
读取
文件,和保存文件,还是可以设置随机抽点的人数。
PHP
读取
大文件
最近在工作中遇到了需要
读取
系统日志的
问题
,日志文件很大,大概在1G以上甚至更大,随即研究了
读取
得方法,直接使用PHP自带的函数就可以解决这几个
问题
,但是绝对不能使用file和file_get_contents,这两个函数是一次性将文件全部加载进来,如果文件在几十M 还是可以的,但是稍大的文件时不能用的,内存是会溢出的 ,贴个自己的方法,欢迎大家
指教
! <? /** * PHP
读取
大文件 测试文件大于1G的
文本文件
* * @copyright(c) 2010 by 高成. All rights.
CGI
2,203
社区成员
4,518
社区内容
发帖
与我相关
我的任务
CGI
Web 开发 CGI
复制链接
扫一扫
分享
社区描述
Web 开发 CGI
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章