delphi的TFileStream 記憶體流

2021-07-11 01:45:19 字數 3749 閱讀 5479

一、檔案  

文字檔案是以行為單位進行讀、寫操作的。文字檔案只能單獨為讀或寫而開啟,在乙個開啟的文字檔案上同時進行讀、寫操作是不允許的。  

二、定義  

filestream: tfilestream;  

三、開啟檔案  

filestream:= tfilestream.

create(afilename: 

string

; mode: word);  

引數afilename:檔名;引數mode:檔案開啟的方式。  

mode由開啟模式與共享模式組成,取值見下表:   

分類  

引數  

說明  

打  開  

模  式  

fmcreate  

建立檔案, 如果指定檔名的檔案已經存在,則以寫模式開啟  

fmopenread  

唯讀開啟  

fmopenwrite  

以寫模式開啟檔案,寫到檔案的內容將替換檔案以前的內容  

fmopenreadwrite  

讀寫開啟  

共  享  

模  式  

fmsharecompat  

共享模式, 相容 dos  

fmshareexclusive  

他的應用程式不能開啟該檔案  

fmsharedenywrite  

其他的應用程式只能以只寫方式開啟  

fmsharedenyread  

其他的應用程式只能以唯讀方式開啟  

fmsharedenynone  

其他的應用程式可以以任何方式開啟檔案  

四、讀寫檔案  

function

read(

varbuffer;count:

longint

):longint

; //從檔案流當前位置讀count位元組到緩衝區buffer;

function

write

(const

buffer;count:

longint

):longint

; //將緩衝區buffer的count個位元組的資料寫到檔案流當前位置中,覆蓋該位置後面的count個位元組的資料;

function

seek(offset:

longint

;origin:

word

):longint

; //設定檔案流當前讀寫指標位置,origin=

function

copyfrom(source:tstream;count:

longint

):longint

; //從另一檔案流中當前位置複製count到當前檔案流當前位置;

八、關閉檔案  

檔案的關閉須呼叫freeandnil(filestream)。  

//乙個例項  

/type

tbuffer = array

[0..16000]of

char

procedure

getmessagefromdir( afilename: 

string

; var

abuffer: tbuffer);  

varfilestream: tfilestream;  

begin

filestream:=tfilestream.

create(afilename,fmshareexclusive);  

filestream.

position:=

0;  

filestream.

read(abuffer,sizeof(abuffer));  

freeandnil(filestream);  

end;  

procedure

putmessagetodir(afilename:

string

; astr :

string

);  

varfilestream: tfilestream;  

tempbuffer:tbuffer;  

begin

strpcopy(tempbuffer,astr);  

filestream:=tfilestream.

create(afilename,fmshareexclusive 

orfmcreate);  

filestream.

position:=

0;  

filestream.

write(tempbuffer,length(astr));  

freeandnil(filestream);  

end;  

//乙個例項  

//乙個例項:讀取流中的資料,顯示  

/type

tform1 = class

(tform)  

img1: timage;  

procedure

formshow(sender: tobject);  

private

public

fstream:tfilestream;  

end;  

varform1: tform1;  

filename:string

= '.\weimir.uib'

;  implementation

procedure

tform1

.formshow(sender: tobject);  

varbmp:tbitmap;  

begin

fstream:=tfilestream.

create(filename,fmopenread);  

fstream.

seek(

0,sofrombeginning);  

bmp:=tbitmap.

create;  

bmp.

loadfromstream(fstream);  

img1.

picture

.bitmap:=bmp;  

end;  

end.  

Delphi 02 Delphi程式的結構

一 工程檔案 program multiunit uses sysutils,unit1 in unit1.pas begin 引用unit1中的變數,因為是在介面部分定義所以可以引用 strgreet hello world 呼叫unit1中的過程 因為是在介面部分定義所以可以引用 greetin...

delphi讀音 delphi漢字轉拼音

loading.function getpyindexchar hzchar string char begin 的到乙個漢字的拼音頭個字母 case word hzchar 1 shl 8 word hzchar 2 of b0a1.b0c4 result a b0c5.b2c0 result b...

delphi中的指標

從最初的 pascal 發展至今 的object pascal 可以說在指標運用上,絲毫不會遜色於 c語言的指標。以下內容分為八個部分,分別是 一 型別指標的定義 二 無型別指標的定義 三 指標的解除引用 四 取位址 指標賦值 五 指標運算 六 動態記憶體分配 七 字元陣列的運算 八 函式指標 對於...