gpt4 book ai didi

.net - 在 Oxygene 中流式传输到字节数组

转载 作者:行者123 更新时间:2023-12-02 05:04:36 27 4
gpt4 key购买 nike

我正试图通过这个遗留的 Delphi Prism 应用程序找到出路。我以前从未使用过 Delphi Prism。

如何将流类型转换为字节数组类型?由于我不了解 Delphi Prism,请提供详细的代码。

基本上我想使用 WCF 服务上传图像并希望将图像数据作为字节数组传递。

谢谢。

最佳答案

选项 1) 如果您使用 MemoryStream你可以使用MemoryStream.ToArray直接方法。

选项 2) 如果您使用的是 .Net 4,请使用 CopyTo 复制源流的内容方法到 MemoryStream 并调用 MemoryStream.ToArray 函数。

像这样

method TMyClass.StreamToByteArr(AStream: Stream): array of Byte;
begin
using LStream: MemoryStream := new MemoryStream() do
begin
AStream.CopyTo(LStream);
exit(LStream.ToArray());
end
end;

选项 3)您使用的是旧版本的 .Net,您可以编写一个自定义函数来从源流中提取数据,然后填充一个 MemoryStream

method TMyClass.StreamToByteArr(AStream: Stream): array of Byte;
var
LBuffer: array of System.Byte;
rbytes: System.Int32:=0;
begin
LBuffer:=new System.Byte[1024];
using LStream: MemoryStream := new MemoryStream() do
begin
while true do
begin
rbytes := AStream.Read(LBuffer, 0, LBuffer.Length);
if rbytes>0 then
LStream.Write(LBuffer, 0, rbytes)
else
break;
end;
exit(LStream.ToArray());
end;
end;

关于.net - 在 Oxygene 中流式传输到字节数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16472969/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com