POS函数使用问题?(50分)

  • 主题发起人 主题发起人 vivid_bai
  • 开始时间 开始时间
V

vivid_bai

Unregistered / Unconfirmed
GUEST, unregistred user!
谁能详细说明一下POS函数使用的使用呀!<br>主要是用在时间上!如果能说明详细再加100分<br>如:如何用POS函数进行4.5.78-4.5.60之类的计算<br>最好是带例子的见解!<br>
 
Pos函数是用来求子串在主字符串中的位置,不是用来计算的
 
pos怎么是干这个用的呀,你还是看看帮助吧。不能用电脑去伐木啊。是吧,因为电脑是不能伐木的,想伐木要用锯或斧头。呵呵。多说了几句,不要见怪。
 
各位理解错他的意思了,他肯定是想将”.”号分隔的各个部分进行计算,用Pos函数来找到那个”.”号,不是用Pos来计算<br>function Pos(Substr: string; S: string): Integer;<br>Pos('C','ABC')=3<br>Pos('D','ABC')=0
 
TO dx2527<br>他说的没错!是我写的不清楚!^_^:)<br>大家说说吧!
 
首先将4.5.78转换成1978-4-5(根据POS('.','4.5.78')的两个位置来分割字符串)!<br>然后再相减<br>
 
pos('.','4.5.78')=2<br>pos('.','.5.78')=1<br>pos('.','5.78')=2l<br>因该是这样的<br><br><br>
 
提供个例子给大家,可能更明白!◎~<br>例如:用POS函数计算时间注:我所说的时间只是涉及到(分.秒.毫秒)<br>思路是将”.”号分隔的各个部分进行计算<br>然后再进行+ -× ÷的时间相互计算<br>如:15.53.45÷15.40.15<br>&nbsp; &nbsp; 15.53.45-15.40.15<br>大家教教我吧!嘻嘻~!◎
 
pos找'.',後用copy出來'.'前面的,依次找出各個部分<br>後 (a*60+b)*1000+c 得到這個時間的毫秒數。後就隨你運算了。
 
把时间转换成datetime类型,计算完了,再转换成字符串不就行了。
 
不想用POS的话,还可以这样实现:<br>procedure TForm1.Button1Click(Sender: TObject);<br>var<br>&nbsp; h1,m1,s1,ms1:word;<br>&nbsp; h2,m2,s2,ms2:word;<br>&nbsp; i:integer;<br>begin<br>&nbsp; DecodeTime(strtotime('0:15:53.45'), H1, M1, S1, MS1);<br>&nbsp; DecodeTime(strtotime('0:15:40.15'), H2, M2, S2, MS2);<br>&nbsp; i:=((m1*60+s1)*1000+ms1)-((m2*60+s2)*1000+ms2); // 这是-的,其他的运算同理<br>&nbsp; ms2:= i mod 1000;<br>&nbsp; i:=trunc((i-ms2)/1000);<br>&nbsp; s2:=i mod 60;<br>&nbsp; i:=trunc((i-s2)/60);<br>&nbsp; m2:=i;<br>&nbsp; edit1.text:='0:'+inttostr(m2)+':'+inttostr(s2)+'.'+inttostr(ms2);<br>end;<br><br>****** 计算的原理同上面lichdr提到的一样 *****
 
我正在做一个关于涉及很多时间计算的软件,想找一找有没有最好的设计思路<br>有人说涉及到时间计算问题最好的方法是用POS <br>注:我涉及的时间计算问题只是涉及到(分.秒.毫秒)<br>提供个例子给大家,可能更明白!◎~<br>例如:用POS函数计算时间注:我所说的时间只是涉及到(分.秒.毫秒)<br>思路是将”.”号分隔的各个部分进行计算<br>然后再进行+ -× ÷的时间相互计算<br>如:15.53.45÷15.40.15<br>&nbsp; &nbsp;15.53.45-15.40.15<br>大家教教我吧!嘻嘻~!◎ &nbsp;<br>说说思路也行呀!!
 
分别取各部分,分别计算,最后再组合起来,一步一步来吧,虽然是笨办法,但速度不会有明显影响,可以专门做个函数。
 
Delphi里面有很多关于日期、时间计算的函数,如果真的不能到达目的,我想也不必用Pos函数来瞎折腾。以前我也对日期,时间计算要求有非常灵活的计算。我采用的方法是利用现有的函数分解各值(如,年……豪秒,等等),再进行计算。我已编译成*.dll文件调用即可,返回值达十几个,足够用,如果vivid_bai感兴趣,可向我索取原码。<br>不过,对Vivid_bai用Pos 来计算的思路感到新奇!
 
to sunnyahniu<br>能不能讲详细点!谢谢了<br>我的信箱是:vivid_bai@sina.com<br>能不能给我来份你的源码?先谢谢了!1
 
&nbsp; &nbsp;我也在想vivid_bai 为什么会相到用 pos 来处理时间呢?<br>就像上面那位老兄所说的 delphi 中有很多算是时间的函数 ,pos 只不过是起一个定位的作用而已 !
 
实现方便运算的话,当然是使用统一单位,使用数量计算,<br>可以将所有变量转化为整数,以毫秒为单位<br>定义几个函数<br><br>MyTimeToInt(const s: String): Integer;<br><br>IntToMyTime(v: Integer): String;<br><br>这样,都转化为整数,运算多方便啊<br><br>至于这两个函数怎么写,应该容易的多,方法也很多啊<br>当然要效率高才好了
 
大家教教我吧!嘻嘻~!◎ &nbsp;<br>说说别的方法的思路也行呀!! 谢谢了 <br>
 
pos是用来查找字符串中的字符,返回找到的位置
 
后退
顶部