請問要如何一行一行讀入txt檔 |
尚未結案
|
gaui
一般會員 發表:25 回覆:36 積分:12 註冊:2004-06-11 發送簡訊給我 |
|
JackTasy
初階會員 發表:22 回覆:97 積分:28 註冊:2002-06-06 發送簡訊給我 |
|
change.jian
版主 發表:29 回覆:620 積分:439 註冊:2003-06-02 發送簡訊給我 |
|
gaui
一般會員 發表:25 回覆:36 積分:12 註冊:2004-06-11 發送簡訊給我 |
|
wameng
版主 發表:31 回覆:1336 積分:1188 註冊:2004-09-16 發送簡訊給我 |
|
gaui
一般會員 發表:25 回覆:36 積分:12 註冊:2004-06-11 發送簡訊給我 |
|
wameng
版主 發表:31 回覆:1336 積分:1188 註冊:2004-09-16 發送簡訊給我 |
引言: 我用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 發送簡訊給我 |
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 發送簡訊給我 |
|
gaui
一般會員 發表:25 回覆:36 積分:12 註冊:2004-06-11 發送簡訊給我 |
想再請問一下:
我要如何截取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 發送簡訊給我 |
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 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |