生成随机字母的功能

问题描述 投票:0回答:2

是否有任何内置函数可以获取随机“字母”

就像我们用来生成随机数的 RANDOM(low,high) 一样?

对于我的打字导师,我想生成一些句子(不需要有意义)。

所以我需要一些函数来生成字母,以便我可以从中生成单词。

(逻辑上的改变也可以接受。但我更喜欢这个逻辑。)

谢谢你

progress-4gl openedge
2个回答
4
投票

如果您使用“chr()”函数,您将能够生成 ASCII 字母。

chr(RANDOM(65,90))

为您提供 A 和 Z 之间的随机大写字母,

chr(RANDOM(97,122))

应该给你一个小写字母。


0
投票

基于 LyrixDeRaven 的答案的随机字符/数字字符串生成功能正在进行中。请注意,它可以根据您的参数生成相同的随机数。

备用随机数生成器 (-rand) 参数确定是否为每个会话生成相同的随机数序列。有关此参数的信息,请参阅启动命令和参数参考。

来自 RANDOM 函数 PROGRESS 文档

DEFINE VARIABLE result AS CHARACTER   NO-UNDO.

RUN CreateRandomString(INPUT 5, INPUT FALSE).
result = RETURN-VALUE.

PROCEDURE CreateRandomString:
  DEFINE INPUT PARAMETER iAmountCharacters AS INTEGER.
  DEFINE INPUT PARAMETER LCharacters AS LOGICAL.
  
  DEFINE VARIABLE iStep             AS INTEGER     NO-UNDO.
  DEFINE VARIABLE sString           AS CHARACTER   NO-UNDO.
  
  
  DO iStep = 1 TO iAmountCharacters:
     IF LCharacters THEN
       ASSIGN sString = SUBSTITUTE( "&1&2":U
        , sString
        , CHR(RANDOM(65,90))
        ).
     ELSE
       ASSIGN sString = SUBSTITUTE( "&1&2":U
      , sString
      , STRING(RANDOM(1, 9))
      ).
  END.
  
  RETURN sString.
END PROCEDURE.
© www.soinside.com 2019 - 2024. All rights reserved.