Rss & SiteMap

金字塔客服中心 - 专业程序化交易软件提供商 http://www.weistock.com/bbs/

专业程序化软件提供商
共3 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:IF THEN BEGIN 为何条件不成立,也执行里边的语句??

1楼
期货大圣 发表于:2020/3/5 22:31:41
s:='';
a := if(s='','s为空','s不为空');
drawtext(ISLASTBAR,L,a);
IF s!='' THEN
BEGIN
p1:STRTONUM( s ), COLORred,linedot; //转为数字
END

以上同样的语句,在我的主图公式里,输出p1:0
我新建一个新的主图公式,就没有输出
这是为什么呢?
[此贴子已经被作者于2020/3/5 22:33:27编辑过]
2楼
期货大圣 发表于:2020/3/5 22:45:17
s1:=GETINIFILESTRING('c:/jzt_data/mycore/alert_price_current.ini' ,code , 'price'); //读取ini文件中的价格

a := if(s1='','s1为空','s1不为空');
drawtext(ISLASTBAR,L,a);
IF s1!='' THEN
BEGIN
p1:STRTONUM( s1 ), COLORred,linedot; //转为数字
END

看来关键是在GETINIFILESTRING函数,当它取不到值的时候,返回是不是空字符串呢?
我用a := if(s1='','s1为空','s1不为空');判断,确实是空字符串。
但是,用if 判断,就不行了。
以上语句输出如图:

图片点击可在新窗口打开查看此主题相关图片如下:sshot-2.png
图片点击可在新窗口打开查看

3楼
wenarm 发表于:2020/3/5 23:52:47

字符串比较用STRCMP函数。

 

 

s1:=GETINIFILESTRING('d:/aaa.ini' ,'code' , 'price1');   //读取ini文件中的价格


a := if(STRCMP( s1,'')=0,'s1为空','s1不为空');
drawtext(ISLASTBAR,L,a);
IF STRCMP( s1,'' )<>0 THEN
BEGIN
 p1:STRTONUM(s1), COLORred,linedot;   //转为数字
END

 

共3 条记录, 每页显示 10 条, 页签: [1]


Powered By Dvbbs Version 8.3.0
Processed in 0.56250 s, 3 queries.