用于将列表值升序排序的功能

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

是否有任何功能在对以逗号分隔的列表值进行升序排序?还是有另一种方式呢?前-4,6,8,1输出-1,4,6,8

progress-4gl
1个回答
0
投票

没有内置函数对定界列表进行排序。

对于有序的数据集,通常将使用带有索引的临时表来支持所需的顺序。

例如(假设整数值按整数顺序排序::

define temp-table numberList
  field number as integer
  index number-idx as primary number
.

create numberList.
numberList.number = 4.

create numberList.
numberList.number = 6.

create numberList.
numberList.number = 8.

create numberList.
numberList.number = 1.

for each numberList:
  display number.
end.

如果出于某种原因迫切需要将列表包含在分隔的字符串中,则可以创建一个函数来从源列表构建临时表,然后将该TT转换为有序列表:

define temp-table numberList
  field number as integer
  index number-idx as primary number
.

function sortList returns character ( input csv as character ):
  define variable n as integer no-undo.
  define variable i as integer no-undo.
  define variable s as character no-undo.
  empty temp-table numberList.
  n = num-entries( csv ).
  do i = 1 to n:
    create numberList.
    numberList.number = integer( entry( i, csv )).
  end.
  for each numberList:
    s = s + string( numberList.number ) + ",".
  end.
  return trim( s, "," ).
end.

display sortList( "4,6,8,1" ).
© www.soinside.com 2019 - 2024. All rights reserved.