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

請問要如何用TFileStream來寫入及讀取文字檔呢??

答題得分者是:sos_admin
rickychung
一般會員


發表:9
回覆:7
積分:3
註冊:2003-08-03

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-08-27 16:27:36 IP:211.21.xxx.xxx 未訂閱
如題 謝謝
sos_admin
版主


發表:121
回覆:697
積分:768
註冊:2003-07-23

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-08-27 16:39:53 IP:61.155.xxx.xxx 未訂閱
procedure TForm1.BitBtn16Click(Sender: TObject); var filestream,savestream:tfilestream; begin //读取 filestream:=tfilestream.Create('c:\1.txt',fmopenread) ; //创建写入 savestream:=tfilestream.Create('c:\2.txt',fmcreate) ; try filestream.Position :=0; savestream.CopyFrom(filestream,0); finally filestream.Free ; savestream.Free ; end; end;
rickychung
一般會員


發表:9
回覆:7
積分:3
註冊:2003-08-03

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-08-27 16:50:43 IP:211.21.xxx.xxx 未訂閱
不好意思可能是我說的不夠清楚 假設我有幾個字串的變數要寫入一個文字檔中 要如何做ㄋ
sos_admin
版主


發表:121
回覆:697
積分:768
註冊:2003-07-23

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-08-27 17:03:24 IP:61.155.xxx.xxx 未訂閱
unit ceshi2;    interface    uses   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,   Dialogs, StdCtrls;    type   TForm1 = class(TForm)     Button1: TButton;     Button2: TButton;     procedure Button1Click(Sender: TObject);     procedure Button2Click(Sender: TObject);      private     { Private declarations }   public     { Public declarations }   end; type //枚举 mymj=(a,b,c,d,e); //集合 myjh=set of mymj; //静态数组 mysz=array[1..10] of integer; //子界 myzj='a'..'z'; //记录 myrecord=record          name:string[100];          age:0..200;          sex:(gril,boy);          filed1:mymj;          filed2:myjh;          filed3:mysz;          filed4:myzj;          case tag:boolean of               true:(filed5:integer;);               false:(filed6:string[100]);          end; //文件 myfile=file of myrecord; myfile_nottype=file; const FileName='c:\3.txt';    var   Form1: TForm1;   tmymj:mymj;   tmyjh:myjh;   tmysz:mysz;   tmyzj:myzj;   tmyrecord:myrecord;   tmyfile:myfile;   tmyfile_nottype:myfile_nottype;    implementation        {$R *.dfm}    procedure TForm1.Button1Click(Sender: TObject);    begin    tmyrecord.name :='sos_admin'; tmyrecord.age :=22; tmyrecord.sex :=boy; tmyrecord.filed1 :=a; tmyrecord.filed2 :=[a,b,c]; tmyrecord.filed3[1]:=100; tmyrecord.filed4 :='h'; tmyrecord.tag :=true; tmyrecord.filed5 :=99; tmyrecord.filed6 :='ok';        AssignFile(tmyfile,Filename); Rewrite(tmyfile); Write(tmyfile,tmyrecord); closefile(tmyfile); end;        procedure TForm1.Button2Click(Sender: TObject); begin AssignFile(tmyfile,Filename); Reset(tmyfile); read(tmyfile,tmyrecord) ; showmessage(tmyrecord.name ); showmessage(inttostr(tmyrecord.age)); //子界 showmessage(tmyrecord.filed4); closefile(tmyfile); end;    end.    我想这个应该满足您的要求了吧,各种类型都有哦
rickychung
一般會員


發表:9
回覆:7
積分:3
註冊:2003-08-03

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-08-27 17:33:06 IP:211.21.xxx.xxx 未訂閱
我把我寫的程式碼貼上來好了 unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; FileStream : TFileStream; FileName : String; Data : array [1..10] of String; //資料 implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin FileName := 'C:\Test.txt'; FileStream :=TFileStream.Create(FileName,mCreate ); FileStream.Write(Data,Sizeof(Data)); FileStream.Free ; end; end. 我的資料寫入後會變亂碼~~有辦法便回文字嗎??
sos_admin
版主


發表:121
回覆:697
積分:768
註冊:2003-07-23

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-08-27 17:57:43 IP:61.155.xxx.xxx 未訂閱
unit Unit1;    interface    uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;    type TForm1 = class(TForm)     Button1: TButton;     Button2: TButton;    procedure Button1Click(Sender: TObject);     procedure Button2Click(Sender: TObject); private { Private declarations } public { Public declarations } end; type mydata=array [1..10] of String[50]; //資料 var Form1: TForm1; FileStream : TFileStream; FileName : String; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var data:mydata; begin Data[1]:='aaaaaaaaaaaa'; Data[2]:='bbbbbbbbbbbb'; Data[3]:='cccccccccccc'; FileName := 'C:\Test.txt'; FileStream :=TFileStream.Create(FileName,fmCreate ); FileStream.Write(Data,Sizeof(Data)); FileStream.Free ; end; procedure TForm1.Button2Click(Sender: TObject); var data1:mydata; begin FileName := 'C:\Test.txt'; FileStream :=TFileStream.Create(FileName,fmopenread); FileStream.Position :=0; FileStream.Read(data1,Sizeof(Data1)); showmessage(data1[1]); showmessage(data1[2]); showmessage(data1[3]); FileStream.Free ; end; end. test ok~~~~
rickychung
一般會員


發表:9
回覆:7
積分:3
註冊:2003-08-03

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-08-27 18:30:08 IP:211.21.xxx.xxx 未訂閱
謝謝~~~可以讀出來沒有問題 但是我有另外一個問題 就是如果去打開上面程式所產生的檔案裡面會有一推亂碼 有辦法把那些亂碼消除嗎???
sos_admin
版主


發表:121
回覆:697
積分:768
註冊:2003-07-23

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-08-27 18:39:36 IP:61.155.xxx.xxx 未訂閱
兄弟: 那是流文件的产生的特殊格式的代码,不能消除的;
系統時間:2024-05-11 4:20:22
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!