0
我正在使用以下代碼將TStringStream轉換爲TStream。但是當我嘗試將TStringStream的內容複製到TStream時會出錯。XE6 - 如何將TStringStream內容轉換爲TStream?
看來我正在犯一些非常明顯的錯誤,但無法抓住它。
我的代碼:
procedure TfrmMain2.Button1Click(Sender: TObject);
var
SS:TStringStream;
S, S2:TStream;
PhotoStr: String;
begin
PhotoStr := 'Hello World, Testing: /9j/4AAQSkZJRgABAQAAAQABAAD//' +
'gA7Q1JFQVRPUjogZ2QtanBlZyB2MS4wICh1c2luZyBJSkcgSlBFRyB2NjIp' +
'LCBxdWFsaXR5ID0gODUK/9sAQwAFAwQEBAMFBAQEBQUFBgcMCAcHBwcPCwsJ' +
'DBEPEhIRDxERExYcFxMUGhURERghGBodHR8fHxMXIiQiHiQcHh8e';
SS := TStringStream.Create(PhotoStr);
S := TStream.Create();
S.CopyFrom(SS, SS.Size); //<= This line gives error
end;
我得到的錯誤信息是:...類EWriteError與消息 '流寫入錯誤'。
我不知道爲什麼我得到這個錯誤。
一個忠告的話,總是在這樣的問題中包含錯誤信息。並逐字包括它,不要形容它。通常會在錯誤消息中找到信息。不要忽略他們的內容。 –
您的示例對S沒有任何作用。如果您使用S的實際代碼採用TStream類型的值,則它也會接受類型TStringStream的值,因爲TStringStream從TStream繼承。 –
@StijnSanders,我沒有提供整個代碼。最後一行本身會給出錯誤並在那裏停止。我已經注意到了這一點。 –