gpt4 book ai didi

delphi - 如何在 MS Windows XP 中检索 Unicode CSV 剪贴板数据?

转载 作者:行者123 更新时间:2023-12-03 15:51:09 25 4
gpt4 key购买 nike

我正在为一个较大的项目编写一个测试应用程序,似乎无法从 Windows 剪贴板检索 Unicode CSV 数据,我使用内置的 GetClipboardData api 调用成功检索 CF_UNICODETEXT,但是当我将 Unicode CSV 放在剪贴板上时在 MSExcel 中并尝试使用 CSV 格式检索,我得到了错误的数据。这是一些代码;

procedure TForm1.Button7Click(Sender: TObject);
var
hMem : THandle;
dwLen : DWord;
ps1, ps2 : pChar;
begin
OpenClipboard( form1.Handle );
RichEdit1.Lines.Clear;
try
if Clipboard.HasFormat( CF_UNICODETEXT ) then
begin
hMem := GetClipboardData( CF_UNICODETEXT );
ps1 := GlobalLock( hMem );
dwLen := GlobalSize( hMem );
ps2 := StrAlloc( 1 + dwLen );
StrLCopy( ps2, ps1, dwLen );
GlobalUnlock( hMem );
RichEdit1.Lines.Add( ps2 );
end
else
ShowMessage( 'No CF_UNICODETEXT on Clipboard!' );
finally
CloseClipboard;
end;
end;

现在这段代码也应该适用于 CSV,但是当我将剪贴板格式更改为我想要的格式时,应用程序将无法获取正确的数据。重要的是要知道我可以很好地获得选项卡式 Unicode,但不是我想要的 CSV。

最佳答案

Excel 使用的 CSV 剪贴板格式 is ANSI encoded ,而不是 Unicode。

通过转储 Excel 2007 剪贴板,启用 Unicode 的剪贴板包括:

  • CF_UNICODETEXT
  • “HTML 格式”
  • “富文本格式”
  • “XML 电子表格”

“XML 电子表格”和“HTML 格式”都有明确定义的表/行,因此从中提取数据应该不会太困难。

关于delphi - 如何在 MS Windows XP 中检索 Unicode CSV 剪贴板数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3086998/

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