亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? 053.htm

?? Delphi基礎(chǔ)知識(shí)講座
?? HTM
?? 第 1 頁(yè) / 共 4 頁(yè)
字號(hào):
<p> </font><font face="Arial"></p>
<p>20.2.2.2 TWriter</font><font face="宋體" lang="ZH-CN">對(duì)象的實(shí)現(xiàn)</p>
<p> </p>
<p>  </font><font face="Arial">TWriter</font><font face="宋體" lang="ZH-CN">對(duì)象提供了許多往流中寫各種類型數(shù)據(jù)的方法,這對(duì)于程序員來說是很重要的功能。</font><font
face="Arial">TWrite</font><font face="宋體" lang="ZH-CN">對(duì)象往流中寫數(shù)據(jù)是依據(jù)不同的數(shù)據(jù)采取不同的格式的。</font>
<font face="宋體" lang="ZH-CN">因此要掌握</font><font face="Arial">TWriter</font><font
face="宋體" lang="ZH-CN">對(duì)象的實(shí)現(xiàn)和應(yīng)用方法,必須了解</font><font
face="Arial">Writer</font><font face="宋體" lang="ZH-CN">對(duì)象存儲(chǔ)數(shù)據(jù)的格式。</p>
<p>  首先要說明的是,每個(gè)</font><font face="Arial">Filer</font><font
face="宋體" lang="ZH-CN">對(duì)象的流中都包含有</font><font face="Arial">Filer</font><font
face="宋體" lang="ZH-CN">對(duì)象標(biāo)簽。該標(biāo)簽占四個(gè)字節(jié)其值為“</font><font
face="Arial">TPF0</font><font face="宋體" lang="ZH-CN">”。</font><font face="Arial">Filer</font><font
face="宋體" lang="ZH-CN">對(duì)象為</font><font face="Arial">WriteSignature</font><font
face="宋體" lang="ZH-CN">和</font><font face="Arial">ReadSignature</font><font
face="宋體" lang="ZH-CN">方法存取該標(biāo)簽。該標(biāo)簽主要用于</font><font
face="Arial">Reader</font><font face="宋體" lang="ZH-CN">對(duì)象讀數(shù)據(jù)</font><font
face="Arial">(</font><font face="宋體" lang="ZH-CN">部件等</font><font face="Arial">)</font><font
face="宋體" lang="ZH-CN">時(shí),指導(dǎo)讀操作。</p>
<p>  其次,</font><font face="Arial">Writer</font><font face="宋體" lang="ZH-CN">對(duì)象在存儲(chǔ)數(shù)據(jù)前都要留一個(gè)字節(jié)的標(biāo)志位,以指出后面存放的是什么類型的數(shù)據(jù)。該字節(jié)為</font><font
face="Arial">TValueType</font><font face="宋體" lang="ZH-CN">類型的值。</font><font
face="Arial">TValueType</font><font face="宋體" lang="ZH-CN">是枚舉類型,占一個(gè)字節(jié)空間,其定義如下:</p>
<p> </p>
<p>  </font><font face="Arial">TValueType = (VaNull, VaList, VaInt8, VaInt16, VaInt32,
VaEntended, VaString, VaIdent, </p>
<p>VaFalse, VaTrue, VaBinary, VaSet, VaLString, VaNil, VaCollection); </p>
<p></font> <font face="Arial"></p>
<p></font><font face="宋體" lang="ZH-CN">因此,對(duì)</font><font face="Arial">Writer</font><font
face="宋體" lang="ZH-CN">對(duì)象的每一個(gè)寫數(shù)據(jù)方法,在實(shí)現(xiàn)上,都要先寫標(biāo)志位再寫相應(yīng)的數(shù)據(jù)</font><font
face="Arial">;</font><font face="宋體" lang="ZH-CN">而</font><font face="Arial">Reader</font><font
face="宋體" lang="ZH-CN">對(duì)象的每一個(gè)讀數(shù)據(jù)方法都要先讀標(biāo)志位進(jìn)行判斷,如果符合就讀數(shù)據(jù),否則產(chǎn)生一個(gè)讀數(shù)據(jù)無效的異常事件。</font><font
face="Arial">VaList</font><font face="宋體" lang="ZH-CN">標(biāo)志有著特殊的用途,它是用來標(biāo)識(shí)后面將有一連串類型相同的項(xiàng)目,而標(biāo)識(shí)連續(xù)項(xiàng)目結(jié)束的標(biāo)志是</font><font
face="Arial">VaNull</font><font face="宋體" lang="ZH-CN">。因此,在</font><font
face="Arial">Writer</font><font face="宋體" lang="ZH-CN">對(duì)象寫連續(xù)若干個(gè)相同項(xiàng)目時(shí),先用</font><font
face="Arial">WriteListBegin</font><font face="宋體" lang="ZH-CN">寫入</font><font
face="Arial">VaList</font><font face="宋體" lang="ZH-CN">標(biāo)志,寫完數(shù)據(jù)項(xiàng)目后,再寫出</font><font
face="Arial">VaNull</font><font face="宋體" lang="ZH-CN">標(biāo)志;而讀這些數(shù)據(jù)時(shí),以</font><font
face="Arial">ReadListBegin</font><font face="宋體" lang="ZH-CN">開始,</font><font
face="Arial">ReadListEnd</font><font face="宋體" lang="ZH-CN">結(jié)束,中間用</font><font
face="Arial">EndofList</font><font face="宋體" lang="ZH-CN">函數(shù)判斷是否有</font><font
face="Arial">VaNull</font><font face="宋體" lang="ZH-CN">標(biāo)志。</p>
<p>  下面就介紹它們的實(shí)現(xiàn)。</p>
<p>  </font><font face="Arial">1. TWriter</font><font face="宋體" lang="ZH-CN">對(duì)象屬性的實(shí)現(xiàn)</p>
<p>  </font><font face="Arial">TWriter</font><font face="宋體" lang="ZH-CN">對(duì)象直接從</font><font
face="Arial">TFiler</font><font face="宋體" lang="ZH-CN">對(duì)象繼承,它只增加了</font><font
face="Arial">Position</font><font face="宋體" lang="ZH-CN">和</font><font face="Arial">RootAncestor</font><font
face="宋體" lang="ZH-CN">屬性。</font><font face="Arial"></p>
<p>RootAncestor</font><font face="宋體" lang="ZH-CN">屬性在</font><font face="Arial">private</font><font
face="宋體" lang="ZH-CN">部分有數(shù)據(jù)域</font><font face="Arial">FRootAncestor</font><font
face="宋體" lang="ZH-CN">存入其值。在屬性定義的讀與控制上都是直接讀取該值。</p>
<p>  </font><font face="Arial">Position</font><font face="宋體" lang="ZH-CN">屬性的定義中包含了兩個(gè)讀寫控制方法:</font><font
face="Arial">GetPosition</font><font face="宋體" lang="ZH-CN">和</font><font
face="Arial">SetPosition</font><font face="宋體" lang="ZH-CN">:</p>
<p> </p>
<p></font><font face="Arial">TWriter = class(TFiler)</p>
<p>private</p>
<p>FRootAncestor: TComponent;</p>
<p></font><font face="宋體" lang="ZH-CN">…</p>
<p></font><font face="Arial">function GetPosition: Longint;</p>
<p>procedure SetPosition(Value: Longint);</p>
<p>public</p>
<p></font><font face="宋體" lang="ZH-CN">…</p>
<p></font><font face="Arial">property Position: Longint read GetPosition write
SetPosition;</p>
<p>property RootAncestor: TComponent read FRootAncestor write FRootAncestor;</p>
<p>end;</p>
<p></font> <font face="Arial"></p>
<p>GetPosition</font><font face="宋體" lang="ZH-CN">和</font><font face="Arial">SetPosition</font><font
face="宋體" lang="ZH-CN">方法實(shí)現(xiàn)如下:</p>
<p> </p>
<p></font><font face="Arial">function TWriter.GetPosition: Longint;</p>
<p>begin</p>
<p>Result := FStream.Position + FBufPos;</p>
<p>end;</font><font face="宋體" lang="ZH-CN"></p>
<p> </p>
<p></font><font face="Arial">procedure TWriter.SetPosition(Value: Longint);</p>
<p>var</p>
<p>StreamPosition: Longint;</p>
<p>begin</p>
<p>StreamPosition := FStream.Position;</p>
<p>{ </font><font face="宋體" lang="ZH-CN">只清除越界的緩沖區(qū)</font> <font
face="Arial">}</p>
<p>if (Value &lt; StreamPosition) or (Value &gt; StreamPosition + FBufPos) then</p>
<p>begin</p>
<p>WriteBuffer;</p>
<p>FStream.Position := Value;</p>
<p>end</p>
<p>else FBufPos := Value - StreamPosition;</p>
<p>end; </p>
<p></font> <font face="宋體" lang="ZH-CN"></p>
<p>  </font><font face="Arial">WriteBuffer</font><font face="宋體" lang="ZH-CN">是</font><font
face="Arial">TWriter</font><font face="宋體" lang="ZH-CN">對(duì)象定義的私有方法,它的作用是將</font><font
face="Arial">Writer </font><font face="宋體" lang="ZH-CN">對(duì)象內(nèi)部緩沖區(qū)中的有效數(shù)據(jù)寫入流中,并將</font><font
face="Arial">FBufPos</font><font face="宋體" lang="ZH-CN">置為</font><font
face="Arial">0</font><font face="宋體" lang="ZH-CN">。</font><font face="Arial">Writer</font><font
face="宋體" lang="ZH-CN">對(duì)象的</font><font face="Arial">FlushBuffer</font><font
face="宋體" lang="ZH-CN">對(duì)象就是用</font><font face="Arial">WriteBuffer</font><font
face="宋體" lang="ZH-CN">方法刷新緩沖區(qū)。</p>
<p>  在</font><font face="Arial">SetPosition</font><font face="宋體" lang="ZH-CN">方法中,如果</font><font
face="Arial">Value</font><font face="宋體" lang="ZH-CN">值超出了邊界</font><font
face="Arial">(FStream.Position</font><font face="宋體" lang="ZH-CN">,</font><font
face="Arial">FStream.Position + FBufPos)</font><font face="宋體" lang="ZH-CN">,就將緩沖區(qū)中的內(nèi)容寫入流,重新設(shè)置緩沖區(qū)在流中的相對(duì)位置;否則,就只是移動(dòng)</font><font
face="Arial">FBufPos</font><font face="宋體" lang="ZH-CN">指針。</p>
<p>  </font><font face="Arial">2. TWriter</font><font face="宋體" lang="ZH-CN">方法的實(shí)現(xiàn)</p>
<p>  ⑴</font><font face="Arial"> WriteListBegin</font><font face="宋體"
lang="ZH-CN">和</font><font face="Arial">WriteListEnd</font><font face="宋體"
lang="ZH-CN">的實(shí)現(xiàn)</p>
<p>  這兩個(gè)方法都是用于寫連續(xù)若干個(gè)相同類型的值。</font><font
face="Arial">WriteListBegin</font><font face="宋體" lang="ZH-CN">寫入</font><font
face="Arial">VaList</font><font face="宋體" lang="ZH-CN">標(biāo)志,</font><font
face="Arial">WriteListEnd</font><font face="宋體" lang="ZH-CN">寫入</font><font
face="Arial">VaNull</font><font face="宋體" lang="ZH-CN">標(biāo)志。</p>
<p> </p>
<p></font><font face="Arial">procedure TWriter.WriteListBegin;</p>
<p>begin</p>
<p>WriteValue(vaList);</p>
<p>end;</p>
<p></font> <font face="Arial"></p>
<p>procedure TWriter.WriteListEnd;</p>
<p>begin</p>
<p>WriteValue(vaNull);</p>
<p>end;</p>
<p></font> <font face="宋體" lang="ZH-CN"></p>
<p>  這兩個(gè)方法都調(diào)用</font><font face="Arial">TWriter</font><font
face="宋體" lang="ZH-CN">對(duì)象的</font><font face="Arial">WriteValue</font><font
face="宋體" lang="ZH-CN">方法,該方法主要用于寫入</font><font face="Arial">TValueType</font><font
face="宋體" lang="ZH-CN">類型的值。</p>
<p> </p>
<p></font><font face="Arial">procedure TWriter.WriteValue(Value: TValueType);</p>
<p>begin</p>
<p>Write(Value, SizeOf(Value)); </p>
<p>end;</p>
<p></font> <font face="宋體" lang="ZH-CN"></p>
<p>  ⑵</font><font face="Arial"> </font><font face="宋體" lang="ZH-CN">簡(jiǎn)單數(shù)據(jù)類型的寫入</p>
<p>  簡(jiǎn)單數(shù)據(jù)類型指的是整型、字符型、字符串型、浮點(diǎn)型、布爾型等。</font><font
face="Arial">TWriter</font><font face="宋體" lang="ZH-CN">對(duì)象都定義了相應(yīng)的寫入方法。</p>
<p>  </font><font face="Arial">WriteInteger</font><font face="宋體" lang="ZH-CN">方法用于寫入整型數(shù)據(jù)。</p>
<p> </p>
<p></font><font face="Arial">procedure TWriter.WriteInteger(Value: Longint);</p>
<p>begin</p>
<p>if (Value &gt;= -128) and (Value &lt;= 127) then</font><font face="宋體" lang="ZH-CN"></p>
<p></font><font face="Arial">begin</font><font face="宋體" lang="ZH-CN"></p>
<p></font><font face="Arial">WriteValue(vaInt8);</p>
<p>Write(Value, SizeOf(Shortint));</p>
<p>end else</p>
<p>if (Value &gt;= -32768) and (Value &lt;= 32767) then</p>
<p>begin</p>
<p>WriteValue(vaInt16);</p>
<p>Write(Value, SizeOf(Smallint));</p>
<p>end else</p>
<p>begin</p>
<p>WriteValue(vaInt32);</p>
<p>Write(Value, SizeOf(Longint));</p>
<p>end;</p>
<p>end;</p>
<p></font> <font face="宋體" lang="ZH-CN"></p>
<p>  </font><font face="Arial">WriteInteger</font><font face="宋體" lang="ZH-CN">方法將整型數(shù)據(jù)分為</font><font
face="Arial">8</font><font face="宋體" lang="ZH-CN">位、</font><font face="Arial">16</font><font
face="宋體" lang="ZH-CN">位和</font><font face="Arial">32</font><font face="宋體"
lang="ZH-CN">位三種,并分別用</font><font face="Arial">vaInt8</font><font
face="宋體" lang="ZH-CN">、</font><font face="Arial">vaInt16</font><font face="宋體"
lang="ZH-CN">和</font><font face="Arial">VaInt32</font><font face="宋體" lang="ZH-CN">。</p>
<p>  </font><font face="Arial">WriteBoolean</font><font face="宋體" lang="ZH-CN">用于寫入布爾型數(shù)據(jù):</p>
<p> </p>
<p></font><font face="Arial">procedure TWriter.WriteBoolean(Value: Boolean);</p>
<p>begin</p>
<p>if Value then</p>

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲国产一区二区在线播放| 中文字幕免费不卡在线| 亚洲地区一二三色| 欧美日韩国产一区二区三区地区| 亚洲精品中文在线| 欧美日韩高清一区二区不卡| 日韩不卡手机在线v区| 欧美mv日韩mv| 波多野结衣欧美| 亚洲国产精品自拍| 精品久久久久久综合日本欧美| 精品写真视频在线观看| 国产精品久久三区| 欧美理论片在线| 国内精品伊人久久久久av影院| 中文天堂在线一区| 欧美日韩午夜在线| 国产一区二区美女| 樱桃国产成人精品视频| 这里只有精品免费| 国产91精品欧美| 亚洲午夜电影在线观看| 久久只精品国产| 一本色道久久综合亚洲aⅴ蜜桃| 视频一区视频二区中文| 国产日产欧美精品一区二区三区| 在线观看免费成人| 国产成人免费av在线| 亚洲国产精品久久一线不卡| 26uuu成人网一区二区三区| av欧美精品.com| 老司机精品视频在线| 一区二区三区影院| 久久一区二区视频| 欧美午夜精品电影| 成人综合婷婷国产精品久久蜜臀| 午夜久久久久久久久久一区二区| 国产欧美精品国产国产专区| 欧美精品 日韩| 91最新地址在线播放| 精品一区二区影视| 午夜婷婷国产麻豆精品| 亚洲欧洲精品天堂一级| 精品国产一区久久| 欧美精品黑人性xxxx| 色又黄又爽网站www久久| 韩国成人精品a∨在线观看| 亚洲一区在线观看网站| 中文字幕一区视频| 久久久不卡影院| 538prom精品视频线放| 91国偷自产一区二区三区观看 | 欧美一级视频精品观看| 99久久国产综合精品女不卡| 国产乱对白刺激视频不卡| 偷拍亚洲欧洲综合| 亚洲激情av在线| 日韩码欧中文字| 日本一区二区三区四区| 精品美女被调教视频大全网站| 欧美午夜精品一区二区三区| 色拍拍在线精品视频8848| 成人精品小蝌蚪| 成人一道本在线| 国产91精品久久久久久久网曝门| 国产一区二区主播在线| 奇米影视一区二区三区| 天天综合日日夜夜精品| 亚洲线精品一区二区三区| 一区二区三区鲁丝不卡| 亚洲美女在线国产| 亚洲自拍都市欧美小说| 亚洲综合男人的天堂| 一区二区三区日韩欧美精品| 亚洲少妇30p| 亚洲自拍偷拍综合| 午夜久久久久久电影| 视频一区二区中文字幕| 免费成人小视频| 精品系列免费在线观看| 国产综合一区二区| 国产精品一区一区三区| 成人深夜福利app| 99国产精品视频免费观看| 99久久综合狠狠综合久久| 91在线观看成人| 在线一区二区三区| 欧美日韩色综合| 日韩三级伦理片妻子的秘密按摩| 精品久久国产老人久久综合| 26uuu另类欧美| 国产精品人成在线观看免费| 亚洲视频在线一区观看| 亚洲高清在线精品| 久久99久久久欧美国产| 国产不卡视频在线观看| 97精品国产97久久久久久久久久久久| 99久久综合国产精品| 欧美日韩免费电影| 亚洲精品一区二区三区香蕉| 国产精品久久久久久久久搜平片| 亚洲九九爱视频| 久88久久88久久久| 91猫先生在线| 日韩欧美亚洲一区二区| 欧美国产日韩精品免费观看| 亚洲一区二区在线播放相泽| 久久精品国产澳门| 99国产精品国产精品久久| 欧美日韩视频在线一区二区| 久久久久久久久免费| 亚洲免费在线看| 黄一区二区三区| 欧日韩精品视频| 久久午夜羞羞影院免费观看| 亚洲精品日产精品乱码不卡| 精品一区二区日韩| 日本韩国精品一区二区在线观看| 欧美一级高清片在线观看| 中文字幕亚洲成人| 麻豆精品一二三| 欧美在线免费观看视频| 国产午夜精品一区二区三区四区 | 欧美日韩国产乱码电影| 国产亚洲一区二区三区四区| 亚洲国产日日夜夜| 国产白丝精品91爽爽久久| 777色狠狠一区二区三区| 中文字幕亚洲欧美在线不卡| 久久99热狠狠色一区二区| 在线看一区二区| 日本一区二区三区四区| 久久黄色级2电影| av一区二区久久| 不卡区在线中文字幕| av一区二区久久| 日韩女同互慰一区二区| 亚洲国产精品激情在线观看| 美国三级日本三级久久99| 欧美性做爰猛烈叫床潮| 日韩亚洲欧美高清| 亚洲黄一区二区三区| 成人国产亚洲欧美成人综合网 | 91在线国产观看| 亚洲视频精选在线| 欧美三级三级三级| 蜜桃精品视频在线观看| 久久久久久免费网| 91丨九色丨黑人外教| 一区二区三区 在线观看视频 | 精品国产一区二区三区忘忧草| 紧缚奴在线一区二区三区| 国产日韩v精品一区二区| av在线不卡网| 亚洲国产视频在线| 欧美成人三级在线| 成人黄色免费短视频| 亚洲午夜免费视频| 欧美mv和日韩mv的网站| 成av人片一区二区| 亚洲成人免费观看| 久久久久久**毛片大全| 91麻豆蜜桃一区二区三区| 亚洲第一二三四区| 久久女同互慰一区二区三区| 99精品桃花视频在线观看| 亚洲h动漫在线| 久久精品水蜜桃av综合天堂| 一本久久a久久免费精品不卡| 奇米精品一区二区三区在线观看一 | 性做久久久久久久免费看| 精品日韩欧美在线| 成人av在线资源网站| 偷拍日韩校园综合在线| 国产欧美一区二区精品性色| 91免费在线看| 久久99精品久久久久婷婷| 亚洲欧美国产三级| 欧美成人综合网站| 欧美日韩精品免费| 国产成人精品亚洲日本在线桃色| 一区二区成人在线观看| 精品久久久久99| 欧美三级在线视频| 成人免费观看av| 美国十次综合导航| 夜夜嗨av一区二区三区四季av| 欧美成人综合网站| 欧美性大战久久久久久久| 高清beeg欧美| 日本不卡免费在线视频| 亚洲人成网站精品片在线观看| 日韩三级视频在线看| 欧美视频自拍偷拍| 99v久久综合狠狠综合久久| 久久99这里只有精品| 亚洲大片免费看| 亚洲免费av高清| 国产精品热久久久久夜色精品三区| 日韩欧美国产一区二区三区|