如何使用TMemoryStream
連接UTF-16字符串?我知道TStringBuilder
存在這種東西,但它在多線程場景中表現不佳,Eric Grange在his blog上表現得相當好。如他在下面的一張精美圖表中所示。如何使用TMemoryStream連接字符串
-1
A
回答
3
連接字符串到這樣的流:
Stream.Write(Pointer(str1)^, Length(str1)*SizeOf(Char));
Stream.Write(Pointer(str2)^, Length(str2)*SizeOf(Char));
一些評論:
- 你可能需要使用比內存流更加個性化的流。
- 字符串生成器代碼可能不是您的瓶頸。而埃裏克的基準是必要的人爲的。
- 使用更好的內存管理器可能比提高自己的字符串生成器提高性能。
+0
請一次提出一個問題。您詢問了如何將字符串連接成流。 –
+2
而我們又重新開始。當調用'WriteString'時,'TBinaryWriter'在內部和'TStringStream'完全相同。它需要內部存儲'TEncoding'類實例並從中獲取字節。以及它寫入流的那些字節。本文中的代碼是使用RTL類將字符串寫入內存流的最低方式。你爲什麼還想要那個糖? – TLama
+0
@TLama好點。不知道TBinaryWriter使用TStringStream。 –
相關問題
- 1. 在C#中使用字符串連接的字符串連接
- 2. 使用連接字符串
- 3. 如何連接字符串?
- 4. 如何連接字符串
- 5. 如何通過TMemoryStream將Unicode字符串加載到TTreeView中?
- 6. 字符串字符連接
- 7. 如何使用CONCAT運算符連接三個字符串
- 8. 重用連接字符串
- 9. 用vb6連接字符串
- 10. 如何配置帶有FailOver的ODP.NET連接字符串的連接字符串?
- 11. 字符串連接
- 12. 連接字符串
- 13. 字符串連接?
- 14. 連接字符串
- 15. 連接字符串
- 16. 連接字符串:
- 17. 連接字符串
- 18. 字符串連接
- 19. 連接字符串
- 20. 連接字符串
- 21. 連接字符串
- 22. 連接字符串
- 23. 連接字符串
- 24. 字符串連接
- 25. 連接字符串
- 26. 字符串連接
- 27. 字符串連接
- 28. 連接字符串?
- 29. 連接字符串
- 30. 連接字符串
使用TStringStream代替了什麼? –
@TLama通過使用TMemoryStream :) –
@KenWhite它比TStringBuilder更差? –