1.如何取出快速取出字符串中数据,2.如何实现公式(88分)

  • 主题发起人 主题发起人 czy_crown
  • 开始时间 开始时间
C

czy_crown

Unregistered / Unconfirmed
GUEST, unregistred user!
问题1:有一个字符串存放如下:
str:='abc;bcd;efg'
希望能以次取出放在 s[0]='abc',s[1]='bcd',s[2]='efg'

问题2:有一个字符串
str:='digit * price + other' or 或者是 str='digit price * other +'
后面是逆波兰格式
其中digit,price,other 对应数据表中的3个字段.
对于第四个字段totalmoney 的值,通过以上公式算出,事件控制在digit 等字段数值发生变化的时候修改.
对于两种不同的公式保存形式,那一种处理更加方便??,如何处理
 
1.给你个函数
function TRowToCol.Split(src, dec: string): TStringList;
var
I: Integer;
str: string;
begin
result := TStringList.Create;
repeat
i := pos(dec,src);
str := copy(src,1,i-1);
if (str='') and (i>0) then
begin
delete(src,1,length(dec));
continue;
end;
if i>0 then
begin
result.Add(str);
delete(src,1,i+length(dec)-1);
end;
until i<=0;
if src<>'' then
result.Add(src);
end;
 
2.公式解析
有许多关于公式解析的方法,我网站上的财务系统源码中有相关内容。
www.tinstec.com
 
问题一
var
s:tstringlist;
str: string;
i: integer;
begin
str := 'abc;bcd;efg';
s := tstringlist.create;
try
s.delimiter := ';';
s.delimitedtext := str;//s[0]='abc',s[1]='bcd',s[2]='efg'
for i := 0 to s.count - 1 do
showmessage(s);
finally
s.free;
end;
end;
 
非常同意xxhadsg!
 
同意xxhadsg
 
正在学习[:D]
 
看不大明白!
 
多人接受答案了。
 
后退
顶部