Delphi 快速讀取TXT 指定行的資料
繼上次的問題。在提取了大量的Email 資料後。現在讀取資料成了一個問題。今天我取過1~100w的資料。明天我要取100w~200w的資料。在不用資料庫的情況下,我搞了一個下午。Delphi Tstringlist 和 textfile 的簡單讀取是滿足不了的。Tstringlist載入不了大資料。普通的textfile 讀取指定行,必須迴圈count到指定行。
想了一下午,然後想到另類點的解決方法。先對齊資料,每行規定一樣的長度。比如每行是 255位元組。那麼100w行就是 255*100w。直接用流seek到相應位置。動手過程中,發現了更加簡單的方法。是對齊資料後,配合textfile read實現的。
定義資料結構:
type
TEmail = packed record
Address : string[32];
end;
var
MyData : file of TEmail;
Email : TEmail;
把TXT資料,對齊一下,按照格式生成。
procedure TForm1.btn2Click(Sender: TObject); var txt:TextFile; str:string; begin AssignFile(MyData,'NewSave.txt'); Rewrite(MyData); AssignFile(txt,'saved.txt'); Reset(txt); while not Eof(txt) do begin str := ''; Readln(txt,str); Email.Address := str; write(MyData,Email); end; CloseFile(MyData); CloseFile(txt); ShowMessage('OK'); end;
然後下面是讀寫的示例:
{ 讀取指定行測試 }
procedure TForm1.btn1Click(Sender: TObject);
var
txt:TextFile;
str:string;
begin
AssignFile(MyData,'NewSave.txt');
Reset(MyData);
Seek(MyData,StrToInt(Trim(edt1.Text)));
Read(MyData,Email);
ShowMessage(Email.Address);
CloseFile(MyData);
end;
簡單粗暴 快速。{ 讀取1萬行測試 } procedure TForm1.btn3Click(Sender: TObject); var txt:TextFile; str:string; i:Integer; begin AssignFile(MyData,'NewSave.txt'); AssignFile(txt,'10000email.txt'); Rewrite(txt); Reset(MyData); Seek(MyData,StrToInt(edt2.Text)); for I := StrToInt(edt2.Text) to StrToInt(edt3.Text) do begin Read(MyData,Email); Writeln(txt,Email.AddRess); end; CloseFile(txt); CloseFile(MyData); ShowMessage('OK'); end;
相關推薦
Delphi 快速讀取TXT 指定行的資料
繼上次的問題。在提取了大量的Email 資料後。現在讀取資料成了一個問題。今天我取過1~100w的資料。明天我要取100w~200w的資料。在不用資料庫的情況下,我搞了一個下午。Delphi Tstringlist 和 textfile 的簡單讀取是滿足不了的。Tstrin
Python3.6 讀取txt內容建立資料夾;將圖片拷貝至指定資料夾,並刪除圖片
讀取txt內容建立資料夾 # 引入模組 import os #建立資料夾 def mkdir(path): # 去除首位空格 path = path.strip() # 去除尾部 \ 符號 path = path.rstrip("\\")
C++ 使用 fscanf 命令迴圈讀取 TXT每行的數值資料(不用陣列)
// 設定匯入的衛星角速度和角加速度資料 char parasfileomega[100]; int flag = 1; printf("是否匯入預
delphi一行一行的讀取txt文字的資料
var Form1: TForm1; mylist:TStringlist; i,a:integer; implementation {$R *.dfm} procedure TForm1.Button2Click(Sender: TObject); begin
Java 讀取excel指定行列資料以及將資料儲存到txt檔案中
在使用的軟體中經常要用到一些資料的匯入匯出,以及準確的定位資料,這些經常會涉及excle表格,因此把今天學習到的關於如何利用Java準確獲取到excle中的某一列資料,同時將此列資料輸出到txt檔案格式中。 使用的jar包:jxl.jar 相關的API:http://jx
C++如何讀取txt檔案的資料並且以二位陣列存到記憶體中
本次實驗主要的目的就是讀取txt的資料,在上次博文中說到如何讀取txt的資料,那篇博文讀了一行資料並存在了一個一維向量中,本次實現讀取二維向量。直接上程式碼: 解釋一下:程式碼中的40代表有40行,8064代表有8064列。 #include <iostream> #includ
Myeclipse中快速定位到指定行
溫馨提示: 顯示所有快捷鍵的組合使用 ctrl+shift+L 快捷鍵是 Ctrl + L 快速的定位到指定行 &nb
通過spark-sql快速讀取hive中的資料
1 配置並啟動 1.1 建立並配置hive-site.xml 在執行Spark SQL CLI中需要使用到Hive Metastore,故需要在Spark中新增其uris。具體方法是將HIVE_CONF/hive-site.xml複製到SPARK_CONF目錄下,然後在該配置檔案中,新增hive.metast
python讀取excel指定列資料並寫入到新的excel
#encoding=utf-8 import xlrd from xlwt import * #------------------讀資料-------------------------------
C++:依次讀取TXT檔案各行資料
// FileHandle.cpp : 定義控制檯應用程式的入口點。 // #include "stdafx.h" #include <iostream> #include <fstream> #include <string> int main() { s
R語言:快速讀取txt檔案
用R語言來讀取600多M的txt檔案,使用常用的read.table,太費時間。想起之前用readr包來讀取csv、spss的、sas、excel的很快,便嘗試了翻。 直接上程式碼: >
Ext:GirdPanel獲取表內指定行資料方法
前臺程式碼 在要某控制元件提交事件的標籤內,新增如下程式碼: <DirectEvents> <Click OnEvent="btn_Click"> <ExtraParams> <ext
vb6.0 快速讀取txt
Function GetFile(FileName As String) As String Dim i As Integer, s As String, BB() As Byte If Dir(FileName) = "" Then Exit Function i = F
python讀取txt並將資料插入到sql中
原始資料在txt中 處理有很多不便 想要把它們插入到sql中去 程式碼如下: 連線資料庫: import MySQLdb conn=MySQLdb.connect(host="localhost",user="root",passwd="root",db="mydatab
MATLAB中批量從txt檔案中讀取指定行的資料儲存為txt檔案
經常遇到,我們想要讀取的資料,不是從頭開始讀取的,我們往往要求從固定的行開始讀取,MATLAB程式碼如下: function readData() %從指定行開始讀取資料 readFilePat
[C#]統計文本文件txt中的行數(快速讀取)
cnblogs () stop static nbsp nes req stream filename 快速統計文本文件中的行數( StreamReader.ReadLine() ): 測試代碼如下: 1 //讀取txt文件中總行數的方法 2
Java實現讀取Excel指定列的指定行的資料
package utils; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import j
Python如何快速讀取資料檔案若干行
用Python進行資料分析的童鞋們,經常遇到的問題就是遇到一個數據檔案,大概幾百兆,而只需要其中若干行資料。那麼我們怎麼辦?最笨的辦法,就是一次性將所有的檔案資料載入到記憶體中再做索引或切片處理,可能一次性載入就需要耗費一點時間。如果重複性地做這種事情,你都會覺得不好意思跟自己交代。 這裡,我給
C++學習--向txt檔案寫入資料、讀取資料、獲取行數以及刪除檔案
基於VS2013平臺的程式碼如下: #include <iostream> #include <fstream> using namespace std; void main() { ofstream fout; int a = 15;
C++讀取以空格作為資料區分標記,以回車為行標記的txt檔案到一個整數陣列(字串妙用)
這次讀取的就是上一篇中的original檔案的每一行到一個整數陣列中。 使用getline(預設吧回車符endl作為行標記)分別把每一行讀入到一個字串陣列,在這個字元數字最後加上/0構成一個字串; 使用strtok函式把每行組成的字串以空格為標記