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

別の回答でFrankがコメントしたように、フィールド「phone」にハイフンが含まれていない場合は、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」を探し、オプションで、AT(X、Y、n)などの「n」インスタンスを探します。

お役に立てれば。

于 2012-09-18T20:08:33.633 に答える
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 に答える
0

   *数値を文字列値にする
   nilai = 01230045600.00789000
   ?makestr(nilai)&& result => 1230045600.00789
   関数makestr(nilai)
      cNum1 = alltrim(str(int(nilai)))
      nNol = 0
      i = 1からlen(cNum1)の場合
        right(left(cNum1、i)、1)= "0"の場合、
          nNol = nNol + 1
        endif
      endfor
      cnilai = str(nilai、20,10)
      nNol> 0の場合、
        cnilai = alltrim(strtran(cnilai、 "0"、 ""、nNol))
      そうしないと
        cnilai = alltrim(strtran(cnilai、 "0"、 ""))
      endif
      cnilai = alltrim(strtran(cnilai、 ""、 "0"))
   cnilaiを返す
  

于 2014-06-20T04:39:29.843 に答える
-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 に答える