全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:2575
推到 Plurk!
推到 Facebook!

請問要如何一行一行讀入txt檔

尚未結案
gaui
一般會員


發表:25
回覆:36
積分:12
註冊:2004-06-11

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-11-03 15:23:25 IP:61.59.xxx.xxx 未訂閱
請教一下: 因為我現在要從txt檔中截取關鍵字,取得後面的資訊, 所以我要如何一行一行讀入txt檔呢 以便我能截取關鍵字
JackTasy
初階會員


發表:22
回覆:97
積分:28
註冊:2002-06-06

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-11-03 15:42:14 IP:211.76.xxx.xxx 未訂閱
最簡單做法 載入到 Memo 裡,用迴圈跑,就等於一行一行讀了 ex: Memo.Lines.LoadFromFile('c:\abc.txt'); for i := 0 to Memo.Lines.Count-1 do sStr := Memo.Lines[i]; //<-讀出某一行 JackTasy
------
JackTasy
change.jian
版主


發表:29
回覆:620
積分:439
註冊:2003-06-02

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-11-03 15:42:29 IP:61.218.xxx.xxx 未訂閱
試試TStrigList:
var
  ss:TStringList;
begin
  ss:=TStringList.Create;
  try
    ss.LoadFromFile('你的txt檔名');
    ....//讀入的txt內容就在TStringList裡
  finally
    ss.Free;
  end;
end;
發表人 - change.jian 於 2004/11/03 16:14:22
gaui
一般會員


發表:25
回覆:36
積分:12
註冊:2004-06-11

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-11-03 17:07:36 IP:61.59.xxx.xxx 未訂閱
想再請問一下 關於fileread函式要怎麼用呢
wameng
版主


發表:31
回覆:1336
積分:1188
註冊:2004-09-16

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-11-03 17:14:08 IP:61.222.xxx.xxx 未訂閱
引言: 想再請問一下 關於fileread函式要怎麼用呢
要配合 FileOpen 使用
gaui
一般會員


發表:25
回覆:36
積分:12
註冊:2004-06-11

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-11-03 17:27:28 IP:61.59.xxx.xxx 未訂閱
我用Delphi寫的Help看了Fileread, 不過裡面有宣告一個PChar的型態, 不知道那是何用途?
wameng
版主


發表:31
回覆:1336
積分:1188
註冊:2004-09-16

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-11-03 17:39:13 IP:61.222.xxx.xxx 未訂閱
引言: 我用Delphi寫的Help看了Fileread, 不過裡面有宣告一個PChar的型態, 不知道那是何用途?
將檔案內容讀取道 PCHAR 這個變數中。
var
  iFileHandle: Integer;
  iFileLength: Integer;
  iBytesRead: Integer;
  Buffer: PChar;
begin
  try
    iFileHandle := FileOpen('C:\A.txt', fmOpenRead);
    iFileLength := FileSeek(iFileHandle,0,2);
    FileSeek(iFileHandle,0,0);
    Buffer := PChar(AllocMem(iFileLength   1));
    iBytesRead := FileRead(iFileHandle, Buffer, iFileLength);
    Showmessage(Buffer);
    FileClose(iFileHandle);
  finally
    FreeMem(Buffer);
  end;
end;
不過建議您還是用 TstringList 來操作比較簡單。 發表人 - wameng 於 2004/11/03 17:44:21
mine
中階會員


發表:28
回覆:129
積分:56
註冊:2004-03-31

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-11-03 18:38:38 IP:61.221.xxx.xxx 未訂閱
var
Tfs:TextFile;
Astr:String;
begin
try
 AssignFile(Tfs,TextFileName);
 ReSet(Tfs);
 While Not Eof(Tfs) do begin//未到檔尾
  Readln(Tfs,Astr);
  Astr<---讀進的字串
 //你要作的處理
 end;
 CloseFile(tfs);
except
 MessageDlg('檔案處理錯誤',mtWarning,[mbOK],0); 
end;
搞不懂!搞不懂!永遠都搞不懂!! 發表人 - mine 於 2004/11/03 18:41:43
bennykyp
一般會員


發表:11
回覆:31
積分:8
註冊:2004-10-21

發送簡訊給我
#9 引用回覆 回覆 發表時間:2004-11-05 11:08:08 IP:218.208.xxx.xxx 未訂閱
另一種讀取方法!! http://delphi.ktop.com.tw/topic.php?TOPIC_ID=59191
gaui
一般會員


發表:25
回覆:36
積分:12
註冊:2004-06-11

發送簡訊給我
#10 引用回覆 回覆 發表時間:2004-11-05 15:08:51 IP:61.59.xxx.xxx 未訂閱
想再請問一下: 我要如何截取txt檔中的一段文字 例如: Mon 2004-11-01 00:01:11: Session 3834; child 4; thread 1664 Mon 2004-11-01 00:01:11: Accepting SMTP connection from [220.139.60.105 : 2766] Mon 2004-11-01 00:01:11: Looking up PTR record for 220.139.60.105 (105.60.139.220.IN-ADDR.ARPA) Mon 2004-11-01 00:01:11: D=105.60.139.220.IN-ADDR.ARPA TTL=(398) PTR=[220-139-60-105.dynamic.hinet.net] Mon 2004-11-01 00:01:11: Gathering A-records for PTR hosts Mon 2004-11-01 00:01:11: D=220-139-60-105.dynamic.hinet.net TTL=(1428) A=[220.139.60.105] Mon 2004-11-01 00:01:11: --> 220 mail2.wieson.com ESMTP MDaemon 7.0.1; Mon, 01 Nov 2004 00:01:11 0800 Mon 2004-11-01 00:01:11: <-- EHLO wieson.com Mon 2004-11-01 00:01:11: --> 550 Domain mail2.wieson.com does not accept mail from wieson.com Mon 2004-11-01 00:01:11: <-- HELO wieson.com Mon 2004-11-01 00:01:11: --> 550 Domain mail2.wieson.com does not accept mail from wieson.com Mon 2004-11-01 00:01:11: Unexpected socket closure Mon 2004-11-01 00:01:11: SMTP session abnormally terminated (Bytes in/out: 34/207) Mon 2004-11-01 00:01:11: ---------- Mon 2004-11-01 00:01:46: Session 3836; child 2; thread 1208 Mon 2004-11-01 00:01:46: Accepting SMTP connection from [61.228.204.40 : 3937] Mon 2004-11-01 00:01:46: Looking up PTR record for 61.228.204.40 (40.204.228.61.IN-ADDR.ARPA) Mon 2004-11-01 00:01:46: D=40.204.228.61.IN-ADDR.ARPA TTL=(1440) PTR=[61-228-204-40.dynamic.hinet.net] Mon 2004-11-01 00:01:46: Gathering A-records for PTR hosts Mon 2004-11-01 00:01:46: D=61-228-204-40.dynamic.hinet.net TTL=(1440) A=[61.228.204.40] Mon 2004-11-01 00:01:46: --> 220 mail2.wieson.com ESMTP MDaemon 7.0.1; Mon, 01 Nov 2004 00:01:46 0800 Mon 2004-11-01 00:01:46: <-- EHLO wieson.com Mon 2004-11-01 00:01:46: --> 550 Domain mail2.wieson.com does not accept mail from wieson.com Mon 2004-11-01 00:01:46: <-- HELO wieson.com Mon 2004-11-01 00:01:46: --> 550 Domain mail2.wieson.com does not accept mail from wieson.com Mon 2004-11-01 00:01:46: Unexpected socket closure Mon 2004-11-01 00:01:46: SMTP session abnormally terminated (Bytes in/out: 34/207) Mon 2004-11-01 00:01:46: ---------- 每個段落的區隔是以session為開頭----------為結尾, 我要如何截取這一段一段的文字呢
geniustom
版主


發表:100
回覆:303
積分:260
註冊:2003-01-03

發送簡訊給我
#11 引用回覆 回覆 發表時間:2004-11-07 19:04:52 IP:219.68.xxx.xxx 未訂閱
gaui您好..以下不知道是不是您想要的 < src="http://delphi.ktop.com.tw/loadfile.php?TOPICID=18570616&CC=415324"> 程式碼如下... < class="code"> unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; OpenDialog1: TOpenDialog; Edit1: TEdit; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var i:integer; LIST,output:TstringLIST; LOGFlag:boolean; begin if OpenDialog1.execute then Edit1.text:=OpenDialog1.filename; list:=Tstringlist.create; output:=Tstringlist.create; try list.LoadFromFile(Edit1.text); for i:=0 to list.count-1 do begin if pos('Session',list.strings[i])>0 then LOGFlag:=true; //表示開始紀錄 if LOGFlag then output.add(list.strings[i]); if pos('----------',list.strings[i])>0 then begin showmessage(output.text); output.clear; LOGFlag:=false; //表示停止紀錄 end; end; finally list.Free; end; end; end. 一個簡單的小範例..應該能達到您的需求 >
gaui
一般會員


發表:25
回覆:36
積分:12
註冊:2004-06-11

發送簡訊給我
#12 引用回覆 回覆 發表時間:2004-11-08 08:59:42 IP:61.59.xxx.xxx 未訂閱
geniustom: 真的很謝謝你 感謝你的指教!
系統時間:2024-11-23 14:55:55
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!