我正在尝试使用TIdHTTP.Get将USPS Zip4结果网页源加载到变量中(以提取4位数的邮政编码后缀),例如,
PgSrc := IdHTTP1.Get('https://tools.usps.com/go/ZipLookupResultsAction!input.action?resultMode=0&companyName=&address1=1600+PENNSYLVANIA+AVE+NW&address2=&city=&state=Select&urbanCode=&postalCode=&zip=20500');
Run Code Online (Sandbox Code Playgroud)
如果我将它粘贴到任何浏览器中,上面的示例url工作正常.但是,在我的代码中,我收到EIdIOHandlerPropInvalid错误,并显示以下消息"IOHandler值无效".
我有很多邮政编码要查找,所以我很感激任何帮助,以避免这个错误或建议采用不同的方法.
我从未使用过线程 - 从未想过我的代码会受益.但是,我认为线程可能会提高以下伪代码的性能:
Loop through table of records containing security symbol field and a quote field
Load a web page (containing a security quote for a symbol) into a string variable
Parse the string for the quote
Save the quote in the table
Get next record
end loop
Run Code Online (Sandbox Code Playgroud)
加载每个网页需要花费最多的时间.解析报价非常快.我想我可以拿一个线程的一半记录,然后在另一个线程中处理另一半.
我在启动第二个Delphi 2010实例时遇到了调试设计时包的问题.在项目选项|调试器下,我使用"C:\ Program Files\Embarcadero\RAD Studio\7.0\bin\bds.exe"作为具有以下参数的主机应用程序:" - pDelphi -nocache"
我运行包时收到以下错误消息:
如果我继续,我会得到以下内容:
然后,如果我继续,我得到以下内容:
我究竟做错了什么?这一直以前都有效.(我已经修复并卸载/重新安装了Delphi 2010.)
System.TypInfo.TPropInfo有两个函数成员(至少在D-XE3中):
function NameFld: TTypeInfoFieldAccessor; inline;
function Tail: PPropInfo; inline;
Run Code Online (Sandbox Code Playgroud)
我找不到他们的任何文档或其使用的任何示例.它们是什么,它们如何使用?(希望有资格作为一个问题.)
我正在尝试将项目从D6移动到D-XE3.使用VirtualStringTree版本5.10在OnSaveNode和OnLoadEvents中保存和加载树数据时,我得到了垃圾.我可能没有正确处理Unicode,但我可能还有其他一些无知:
procedure TfMain.vstGridSaveNode(Sender: TBaseVirtualTree; Node: PVirtualNode;
Stream: TStream);
var
Data: PStkData;
begin
Data := Sender.GetNodeData(Node);
// Owned: boolean;
Stream.Write(Data.Owned, SizeOf(boolean) );
// Symbol: string;
Stream.Write(PChar(Data.Symbol)^, Length(Data.Symbol) * SizeOf(Char));
// AvgTarget: currency;
//Stream.Write(Data.AvgTarget, SizeOf(currency));
// PE: double;
Stream.Write(Data.PE, SizeOf(double));
end;
procedure TfMain.vstGridLoadNode(Sender: TBaseVirtualTree; Node: PVirtualNode;
Stream: TStream);
var
Data: PStkData;
begin
Data := Sender.GetNodeData(Node);
//Owned: boolean;
Stream.Read(Data.Owned, SizeOf(boolean));
//Symbol: string;
Stream.Read(PChar(Data.Symbol)^, Length(Data.Symbol) * SizeOf(Char));
//AvgTarget: currency;
Stream.Read(Data.AvgTarget, SizeOf(currency));
//PE: double;
Stream.Read(Data.PE, SizeOf(double));
end;
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助.
delphi unicode virtualtreeview tvirtualstringtree delphi-xe3