Pergunta

string array[]
long lBound, uBound

lBound = LowerBound(array[]) // = 1, empty array value
uBound = UpperBound(array[]) // = 0, empty array value

array[1] = 'Item 1'
array[2] = 'Item 2'
array[3] = 'Item 3'

lBound = LowerBound(array[]) // = 1
uBound = UpperBound(array[]) // = 3

array[3] = '' //removing item 3

lBound = LowerBound(array[]) // = 1, still
uBound = UpperBound(array[]) // = 3, still (but array[3] is nulled?

Eu acho que a linha 'Array [3]' está errada, mas acho que li que isso deveria remover a célula da matriz.

Qual seria a maneira certa de remover uma célula de matriz? Depende do tipo de objeto? (String vs número vs objeto)

Ou

Pode -se manipular o valor superior para fazê -lo funcionar?

isto é, depois de remover o item 3, quero que a parte superior ou o comprimento do Arrayle seja 2, pois isso é logicamente correto.

Foi útil?

Solução

A [ME] Referência é um tipo de função no SharePoint / Office.Use o seguinte link para ver a documentação oficial em fórmulas e funções.Esta não é exatamente a comparação lado a lado que você está procurando, mas, detalhe as coisas razoavelmente bem.

Especificamente falando, se você entrar em Informações |Eu função você verá o que eles listaram para explicar como [eu] funciona.Eles explicam que "... retorna o nome de usuário atual".também.

Outras dicas

O PowerBuilder realmente não tem boas funções de manipulação de matriz construídas (que eu conheço).

Você pode alcançar o que está tentando fazer copiando os valores que deseja manter para uma nova matriz ilimitada.

Por exemplo

int i
string array3[] = {'Item 1', 'Item 2', 'Item 3'}, array2[]

for i = 1 to 2
    array2[i] = array3[i]
next
UpperBound(array2[]) // = 2

No seu exemplo, você está removendo apenas o valor mais recente - isso pode ser feito ainda mais simplesmente copiando toda a matriz para uma nova matriz menor e limitada:

string array3[] = {'Item 1', 'Item 2', 'Item 3'}, array2[2]

array2 = array3
UpperBound(array2[]) // = 2

Quando eu estava escrevendo um comentário para a resposta de Dan, comecei a pensar no que uso, já que não gosto das listas da PFC. O que eu uso é um armazenamento de dados, que, se você pensa sobre isso da maneira certa, é como uma lista em esteróides.

Em vez de copiar a matriz, se você precisar acompanhar um limite superior em mudança da matriz (por exemplo, se você estiver tentando usá -lo como algo como uma pilha), por que não apenas manter uma variável inteira separada, indicando a última real Índice do elemento? Parece muito mais simples e mais eficiente do que as soluções de cópia sugeridas acima!

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top