我需要做一個TTreeView樹的Unicode字符串,所以我想加載這個字符串到內存流,然後加載內存流到樹視圖。我怎樣才能做到這一點?如何通過TMemoryStream將Unicode字符串加載到TTreeView中?
回答
您試圖直接使用TMemoryStream
的TStringStream
類intead。但是,這TStringStream
類將編碼的UnicodeString入庫前的AnsiString類型,在Unicode的德爾福版本...
因此,這裏有一些功能來創建一個TMemoryStream
實例與純Unicode的內容,然後檢索回這樣的文字:
function StringToMemoryStream(const Text: string): TMemoryStream;
var Bytes: integer;
begin
if Text='' then
result := nil else
begin
result := TMemoryStream.Create;
Bytes := length(Text)*sizeof(Char);
result.Size := Bytes;
move(pointer(Text)^,result.Memory^,Bytes);
end;
end;
function MemoryStreamToString(MS: TMemoryStream): string;
begin
if MS=nil then
result := '' else
SetString(result,PChar(MS.Memory),MS.Size div sizeof(Char));
end;
確保你Free
TMemoryStream
當你不再需要它。
通過使用sizeof(Char)
和PChar
,此代碼也可以與以前的非Unicode版本的Delphi一起使用。
'procedure StringToMemoryStream(const Text:String; MemStream:TMemoryStream)'會更習慣。或者甚至更好:'procedure StringToMemoryStream(const Text:String; Stream:TStream)',然後使用'TStream'' Write'和'Read'方法。 – jpfollenius 2011-06-11 10:08:39
粉碎機,它的工作原理String-> MemoryStream和MemoryStream-> String。但是,當我加載到TreeView的MemoryStream我得到'!@#$%^&*'在其中...不TreeView使用unicode?它保存文件在UTF-8 ... – maxfax 2011-06-11 15:22:21
是的,我做TreeView1.LoadFromStream(UpdateMemoryStream,tencoding.Unicode)和所有warks – maxfax 2011-06-11 15:30:29
- 1. 如何在Python中將unicode字符串加載到json中?
- 2. 如何將IStream加載到TMemoryStream
- 3. 如何通過BufferedReader加載字符串?
- 4. 通過引用將字節加載到C字符串中
- 5. 如何使用TMemoryStream連接字符串
- 6. 如何將不支持的字符加載到Teradata Unicode列中?
- 7. 如何通過HTTP將HTML文件加載到用於JavaScript的字符串中?
- 8. 如何通過循環將字符串添加到字符串數組列表
- 9. 如何將帶有Unicode字符的字符串轉換爲普通字符串?
- 10. 如何將字符串轉換爲Perl中的unicode字符串
- 11. 如何將包含unicode字符的字符串轉換爲unicode?
- 12. 將unicode字符串插入到CleverCSS中
- 13. 如何通過Ajax將HTML字符串附加到div
- 14. 通過file_get_contents限制字符串加載
- 15. 在SSIS 2012中將unicode字符串隱藏到非unicode字符串中
- 16. 將字符串加載到simplexmlelement中
- 17. 將字符串加載到RichTextBox中
- 18. 如何通過python解碼unicode字符?
- 19. 使用通過引用將新字符附加到字符串
- 20. 如何遍歷字符串文件並將字符串加載到numpy ndarray中
- 21. 如何將Unicode編碼的字符串轉換爲字符串
- 22. 如何通過摺疊python實現Unicode字符串匹配
- 23. 如何將字符串添加到字符串數組中C
- 24. 如何找到字符串通過UNIX
- 25. 從XML加載Unicode字符並通過AJAX推入表單
- 26. 如何將點字符添加到字符串中的字符?
- 27. 如何將Unicode轉義序列轉換爲.NET字符串中的Unicode字符?
- 28. 如何在C#中將Unicode字符串拆分爲多個Unicode字符?
- 29. 如何將JSON字符串加載到JSON列中
- 30. 如何使用Python將CSV字符串加載到MySQL中
問題不清楚,你不會將字符串添加爲一個TreeNode或什麼?順便說一句。你使用的是什麼Delphi版本?這很重要,因爲字符串是unicode – 2011-06-11 09:34:28
你真的必須澄清。 「使用TTreeView的樹的字符串做些什麼」是什麼意思? – jpfollenius 2011-06-11 10:10:02
夥計們,我有德爾福2010年。我創建TreeView的樹,添加一些其他字符串,並將其保存在Unicode作爲一個文件。然後我想將這個樹文件加載到TreeView中,但是在我編輯文件之前:先刪除添加的字符串。然後我需要將編輯後的字符串保存到MemoryStream中並將此MemoryStream加載到TreeView中。 – maxfax 2011-06-11 15:18:39