【发布时间】:2021-11-22 03:54:05
【问题描述】:
我有一个这样的字符串:
;EncoderMin:250;EncoderMax:5755;MinPixel:-240;MaxPixel:980;
给定一个返回变体类型并接受属性类型作为参数的函数(例如 EncoderMin),我希望该函数返回属性的值,因此在本例中为 250
我正在使用此代码,但我无法处理 2 个分隔符。第一个分隔符应该是 ';'分隔每个属性,第二个分隔符应该是 ':' 将属性与其值分开。
function TFrameLayout3DSTD.GetAttributiSTD(ALoc: Integer;
AField: String; AVarType: Word): Variant;
var
Q: TADOQuery;
LLista : TStringList;
begin
Result := null;
Q := DMConn.GetQuery(
'select AttributiSTD from Locazioni3D where idLocazione = %d', [ALoc]);
try
Q.Open;
LLista := TStringList.Create;
try
LLista.Delimiter := ';';
LLista.StrictDelimiter := True;
LLista.DelimitedText := Q.Fields[0].AsString;
Result := LLista.Values[AField];
finally
LLista.Free;
end;
finally
Q.Free;
end;
end;
其中 Q.Fields[0].AsString 等于 ;EncoderMin:250;EncoderMax:5755;MinPixel:-240;MaxPixel:980;
【问题讨论】:
-
只需添加一个
LLista.NameValueSeparator := ':';
标签: delphi delimiter separator tstringlist