ps:TStrings;
ss:TStringlist:
ps:=ss;
1.同一个dll 里面 ps 相当于ss 的引用,修改了ps,相当于修改了ss
2.不同的dll 调用函数想实现这个引用的效果 要使用var变量
3.TSringList 里面的键值对如果包含了空格会影响正常的取值
procedure TForm1.Button1Click(Sender: TObject);
var
sSQL,sName,sValue,sPrefix,ss:string;
i:Integer;
AParams: TStrings;
AList: TStringList;
begin
ss:='l_op_code=8888,vc_op_password=8888,l_station_no = 0, l_action_in = 1,l_serial_no= 123 ';
ss:=StringReplace(ss,' ', '', [rfReplaceAll]); //关键语句
AList:= TStringList.Create;
AList.Delimiter:= ',';
AList.DelimitedText:= ss;
AParams:=AList;
sSQL:= EmptyStr;
for i:=0 to Pred(AParams.Count) do
begin
sName:= AParams.Names[i];
sValue:= AParams.Values[sName];
sPrefix:= Copy(Trim(sName), 1, 2);
if (sPrefix<>'l_') and (sPrefix<>'en') then
sValue:= QuotedStr(sValue);
sSQL:= sSQL + ',@'+sName+'='+sValue;
end;
Delete(sSQL, 1, 1);
ShowMessage(sSQL);
end;
如果去掉关键语句 则name会取出空格来,切记