范统.贾 发表于 2019-6-24 19:09:44

有些日子没来了,来请教个问题,数字生成。

从201900001开始,按+1的顺序连续生成50000个数字,含4的全部跳过。

好多函数都忘得一干二净了,求指教。

afan 发表于 2019-6-24 20:16:08

本帖最后由 afan 于 2019-6-24 20:17 编辑

Local $sNum = 201900001 & @LF
For $ii = 1 To 50000
      $sNum &= 201900001 + $ii & @LF
Next
Local $aNum = StringRegExp($sNum, "(?m)^[^4\v]+$", 3)
MsgBox(0, '数组数量', UBound($aNum))

范统.贾 发表于 2019-6-24 20:20:38

老大,十来年过去了,忘得差不多了。。。

做回伸手党,需要导出到txt :face (11):

范统.贾 发表于 2019-6-24 20:22:24

主要是客户在我这做了5万张会员卡,卡号就是这么排的,要跳4,工厂只管印刷,不管给我卡号,客户那边又需要卡号录入系统。唉。

范统.贾 发表于 2019-6-24 20:23:32

大恩就不言谢了。:face (11):

afan 发表于 2019-6-24 20:28:52

本帖最后由 afan 于 2019-6-25 10:07 编辑

Local $sNum = 201900001 & @CRLF
For $ii = 1 To 50000
      $sNum &= 201900001 + $ii & @CRLF
Next
$sNum = StringRegExpReplace($sNum, "(?m)^\d*?4\d*\v+", '')
FileWrite('不含4.txt', $sNum)
如果要达到 50000 条,改为 For $ii = 1 To 86625

afan 发表于 2019-6-24 20:37:23

范统.贾 发表于 2019-6-24 20:20
老大,十来年过去了,忘得差不多了。。。

做回伸手党,需要导出到txt

你得找找忘得差不多了的原因,是不是名字没起好……

范统.贾 发表于 2019-6-24 21:37:29

反正,总之,谢谢了。:face (11):

niqindong 发表于 2019-6-25 09:31:43

$a = 201900001
$txt_name = FileOpen('1.txt', 1)
FileWrite($txt_name, $a & @CRLF)
For $i = 1 To 5000
        $a = $a + 1
        If StringInStr($a, '4') > 0 Then
                Do
                        $a = $a + 1
                Until StringInStr($a, '4') = 0
        EndIf
        FileWrite($txt_name, $a & @CRLF)
       
Next
FileClose($txt_name)

niqindong 发表于 2019-6-25 10:24:04

niqindong 发表于 2019-6-25 09:31
$a = 201900001
$txt_name = FileOpen('1.txt', 1)
FileWrite($txt_name, $a & @CRLF)


楼主,我这个应该可以直接生成5000个,具体4999还是5001,你自己看一下吧。

adev8088 发表于 2019-6-28 08:08:09

进来学习一下。

haijie1223 发表于 2019-6-29 17:07:16

Local $iNum = 201900001
Local $sRet = $iNum & @CRLF
Local $n = 1
While $n < 50000       
        $iNum += 1
        If StringInStr($iNum, '4') Then ContinueLoop
        $sRet &= $iNum & @CRLF
        $n += 1       
WEnd
ConsoleWrite($sRet & @CRLF)

zmdzhxj 发表于 2019-7-1 00:04:00

实用的计算啊
页: [1]
查看完整版本: 有些日子没来了,来请教个问题,数字生成。