删除Visual FoxPro 9中的尾随零和小数点

时间:2012-09-11 15:39:11

标签: foxpro

我知道这种编程语言已经过时了,但我的公司仍在使用它,因为它不受支持,很难在网上找到这些类型的特定帮助。我在这里搜索了一些选项,但一无所获。

以下是我的数据:8005551234.000000

以下是我需要的数据:8005551234

它显示尾随零的原因是因为我假设当我通过excel将数据导入FoxPro时字段上是一个整数字段,当它转换为dbf时它需要是一个人物场。

我已经玩了一下TRANSFORM功能,但我似乎无法弄明白。

如果有帮助,我的字段名称是“电话”......

提前感谢您的支持!

5 个答案:

答案 0 :(得分:2)

使用STREXTRACT()函数。它处理可能没有小数的场景以及可能存在其他角色的场景。 e.g。

? STREXTRACT("8005551234.000000", "", ".", 1, 2)  && returns 8005551234
? STREXTRACT("8005551234", "", ".", 1, 2)  && returns 8005551234
? STREXTRACT("800-555-1234", "", ".", 1, 2)  && returns 800-555-1234

答案 1 :(得分:2)

如果字段“phone”中没有连字符,请在另一个答案中由Frank评论,您可以使用LEFT(x,at())始终删除..例如

replace Phone with left( phone, at( ".", phone ) -1 );
    for at( ".", phone ) > 0

如果你有一个带小数的格式作为手机的占位符,例如

1.800.TRY.MORE。

您可能必须使用“AT()”函数的可选第3个参数来指示“。”。你感兴趣的实例。在1.800的例子中......你可以尝试

replace Phone with left( phone, at( ".", phone, 4) -1 );
    for at( ".", phone, 4 ) > 0

AT()函数基本上是

查找字符串“Y”中的“X”,并可选择查找“n”实例,例如 AT(X,Y,n)

希望这有帮助。

答案 2 :(得分:0)

如果这是一个数字,试试这个。

MyNewValue = INT(8005551234.000000)

或     MyNewValue = INT(MyTable.MyFieldName)

如果这是一个字符串,请尝试:

MyNewValue = INT(VAL("8005551234.000000"))

或     MyNewValue = INT(VAL(MyTable.MyFieldName))

要查看它的类型,请在命令窗口中执行此操作:

USE myTableName
DISPLAY STRUCTURE

答案 3 :(得分:0)

   *Make Numeric value to String value
   nilai=01230045600.00789000
   ?makestr(nilai) &&result => 1230045600.00789
   function makestr(nilai)
      cNum1=alltrim(str(int(nilai)))
      nNol=0
      for i=1 to len(cNum1)
        if right(left(cNum1,i),1)="0" then
          nNol=nNol+1
        endif
      endfor
      cnilai=str(nilai,20,10) 
      if nNol>0 then
        cnilai=alltrim(strtran(cnilai,"0"," ",nNol))
      else
        cnilai=alltrim(strtran(cnilai,"0"," "))
      endif
      cnilai=alltrim(strtran(cnilai," ","0"))
   return cnilai
  

答案 4 :(得分:-2)

使用STR()函数。例: 1.创建一个光标,其中一个数字字段表示您导入的数据,另一个字符串字段用于转换 2.插入你的数字电话# 3.用字符串替换数字电话# 4.浏览结果

CREATE CURSOR xphone (nphone n(17,6), cphone c(10))
INSERT INTO xphone (nphone) VALUES (8005551234)
REPLACE cphone WITH STR(nphone)
BROWSE
  • 您可以将上述代码复制并粘贴到vfp9的程序窗口中,突出显示,右键单击并选择执行选择,它将对您有用。