2

我知道这种编程语言已经过时了,但我的公司仍在使用它,而且由于不受支持,很难在网上找到这类事情的具体帮助。我在这里搜索了一些选项,但一无所获。

这是我的数据的样子:8005551234.000000

这是我需要我的数据的样子:8005551234

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

我已经玩过 TRANSFORM 函数了一点,但我似乎无法弄清楚。

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

提前感谢您的支持!

4

5 回答 5

2

使用STREXTRACT() 函数。它处理可能没有小数的情况和可能存在其他字符的情况。例如

? STREXTRACT("8005551234.000000", "", ".", 1, 2)  && returns 8005551234
? STREXTRACT("8005551234", "", ".", 1, 2)  && returns 8005551234
? STREXTRACT("800-555-1234", "", ".", 1, 2)  && returns 800-555-1234
于 2012-09-12T09:08:50.190 回答
2

If the field "phone" doesn't have hyphens in it as commented by Frank in another answer, you can always strip by using LEFT( x, at()).. such as

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

If you have a format with decimals as place-holders for the phone, such as

1.800.TRY.MORE.

You might have to use the optional 3rd parameter of "AT()" function which indicates which "." instance you are interested in. In the example of 1.800... you could try

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

AT() function is basically

Look for "X" found in string "Y" and optionally, look for the "n" instance such as AT( X, Y, n )

Hope this helps.

于 2012-09-18T20:08:33.633 回答
0

   *将数值转换为字符串值
   汝来=01230045600.00789000
   ?makestr(nilai) &&result => 1230045600.00789
   函数 makestr(nilai)
      cNum1=alltrim(str(int(nilai)))
      nNol=0
      对于 i=1 到 len(cNum1)
        如果右(左(cNum1,i),1)=“0”那么
          nNol=nNol+1
        万一
      结束
      cnilai=str(nilai,20,10)
      如果 nNol>0 则
        cnilai=alltrim(strtran(cnilai,"0","",nNol))
      别的
        cnilai=alltrim(strtran(cnilai,"0",""))
      万一
      cnilai=alltrim(strtran(cnilai," ","0"))
   返回 cnilai
  

于 2014-06-20T04:39:29.843 回答
0

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

MyNewValue = INT(8005551234.000000)

或 MyNewValue = INT(MyTable.MyFieldName)

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

MyNewValue = INT(VAL("8005551234.000000"))

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

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

USE myTableName
DISPLAY STRUCTURE
于 2012-09-11T17:23:40.957 回答
-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 的程序窗口中,突出显示它,右键单击并选择执行选择,它将为您工作。
于 2012-09-12T04:57:34.397 回答