Wolfgang Chien's Homepage | Delphi學習筆記 - 問答篇 |
我要將一個Memo的資料讀入TStream, 我用了下面的寫法
(code snipped) Stream1.writeBuffer(Buffer, Size); ==>錯在這行
但Run Time時卻在執行到上面那行時出現: Runtime error 210 at 00008A88
TStream 是給後代子孫慎終追遠的, 本身沒有 I/O 的能力, 其read/write 是 abstract 抽象方法, 所有的 read/write 都必須由後代子孫繼承改寫. 換句話說, 該怎麼 read 該怎麼write是由後代的 THandleStream, TFileStream....等等類別自己決定的.
您可以改用 TFileStream 試試看.
// 請不要來信告知 Memo1.Lines.SaveToFlie() // 我們在談 Stream 的應用喔... procedure TForm1.Button1Click(Sender: TObject); var Stream1: TFileStream; Size: integer; Buffer: pointer; begin Stream1 := TFileStream.Create('c:\temp\test.txt', fmCreate or fmOpenWrite); Size := Memo1.GetTextLen; // Get length of string in Memo11 Inc(Size); // Add room for null character GetMem(Buffer, Size); // Creates Buffer dynamic variable Memo1.GetTextBuf(Buffer, Size); Stream1.WriteBuffer(Buffer^, Size); // 是 Buffer^, 不是 Buffer Stream1.Free; end;
首頁 | 學習筆記 | 主題公園 | 軟體下載 | 關於本站 | 討論信群 | 相約下次 |