Array em Clipper

add
PROCEDURE Main()

   LOCAL aLista := {}

   // Adiciona elementos à lista
   aLista := AddElement(aLista, "Elemento 1")
   aLista := AddElement(aLista, "Elemento 2")
   aLista := AddElement(aLista, "Elemento 3")

   // Exibe a lista
   DisplayList(aLista)

RETURN

FUNCTION AddElement(aList, cElement)
   // Adiciona um elemento à lista
   aList := aList + { cElement }
   RETURN aList
FUNCTION DisplayList(aList)
   // Exibe os elementos da lista
   FOR i := 1 TO Len(aList)
      ? aList[i]
   NEXT i
RETURN

 

size

PROCEDURE Main()

   LOCAL aLista := {}

   // Adiciona elementos à lista
   aLista := AddElement(aLista, "Elemento 1")
   aLista := AddElement(aLista, "Elemento 2")
   aLista := AddElement(aLista, "Elemento 3")

   // Exibe o tamanho da lista
   ? "Tamanho da lista: ", Len(aLista)

RETURN

FUNCTION AddElement(aList, cElement)
   // Adiciona um elemento à lista
   aList := aList + { cElement }
   RETURN aList

 

get

PROCEDURE Main()

   LOCAL aLista := {}

   // Adiciona elementos à lista
   aLista := AddElement(aLista, "Elemento 1")
   aLista := AddElement(aLista, "Elemento 2")
   aLista := AddElement(aLista, "Elemento 3")

   // Obtém e exibe o segundo elemento da lista
   ? "Segundo elemento da lista: ", GetElement(aLista, 2)

RETURN

FUNCTION AddElement(aList, cElement)
   // Adiciona um elemento à lista
   aList := aList + { cElement }
   RETURN aList

FUNCTION GetElement(aList, nIndex)
   // Obtém o elemento da lista pelo índice
   RETURN SubStr(aList, nIndex, 1)

 

set

PROCEDURE Main()

   LOCAL aLista := {}

   // Adiciona elementos à lista
   aLista := AddElement(aLista, "Elemento 1")
   aLista := AddElement(aLista, "Elemento 2")
   aLista := AddElement(aLista, "Elemento 3")

   // Exibe a lista antes da modificação
   ? "Lista antes da modificação:"
   DisplayList(aLista)

   // Modifica o segundo elemento da lista
   aLista := SetElement(aLista, 2, "Novo Elemento")

   // Exibe a lista após a modificação
   ? "Lista após a modificação:"
   DisplayList(aLista)

RETURN

FUNCTION AddElement(aList, cElement)
   // Adiciona um elemento à lista
   aList := aList + { cElement }
   RETURN aList

FUNCTION SetElement(aList, nIndex, cNewElement)
   // Modifica um elemento na lista pelo índice
   StrPut(cNewElement, @aList[nIndex], 1)
   RETURN aList

FUNCTION DisplayList(aList)
   // Exibe os elementos da lista
   FOR i := 1 TO Len(aList)
      ? aList[i]
   NEXT i

 

remove

PROCEDURE Main()

   LOCAL aLista := {}

   // Adiciona elementos à lista
   aLista := AddElement(aLista, "Elemento 1")
   aLista := AddElement(aLista, "Elemento 2")
   aLista := AddElement(aLista, "Elemento 3")

   // Exibe a lista antes da remoção
   ? "Lista antes da remoção:"
   DisplayList(aLista)

   // Remove o segundo elemento da lista
   aLista := RemoveElement(aLista, 2)

   // Exibe a lista após a remoção
   ? "Lista após a remoção:"
   DisplayList(aLista)

RETURN

FUNCTION AddElement(aList, cElement)
   // Adiciona um elemento à lista
   aList := aList + { cElement }
   RETURN aList

FUNCTION RemoveElement(aList, nIndex)
   // Remove um elemento da lista pelo índice
   aList := Left(aList, nIndex - 1) + SubStr(aList, nIndex + 1)
   RETURN aList

FUNCTION DisplayList(aList)
   // Exibe os elementos da lista
   FOR i := 1 TO Len(aList)
      ? aList[i]
   NEXT i

 

clear

PROCEDURE Main()

   LOCAL aLista := {}

   // Adiciona elementos à lista
   aLista := AddElement(aLista, "Elemento 1")
   aLista := AddElement(aLista, "Elemento 2")
   aLista := AddElement(aLista, "Elemento 3")

   // Exibe a lista antes da limpeza
   ? "Lista antes da limpeza:"
   DisplayList(aLista)

   // Limpa a lista
   aLista := ClearList(aLista)

   // Exibe a lista após a limpeza
   ? "Lista após a limpeza:"
   DisplayList(aLista)

RETURN

FUNCTION AddElement(aList, cElement)
   // Adiciona um elemento à lista
   aList := aList + { cElement }
   RETURN aList

FUNCTION ClearList(aList)
   // Limpa todos os elementos da lista
   aList := ""
   RETURN aList

FUNCTION DisplayList(aList)
   // Exibe os elementos da lista
   FOR i := 1 TO Len(aList)
      ? aList[i]
   NEXT i

 

contains

PROCEDURE Main()

   LOCAL aLista := {}

   // Adiciona elementos à lista
   aLista := AddElement(aLista, "Elemento 1")
   aLista := AddElement(aLista, "Elemento 2")
   aLista := AddElement(aLista, "Elemento 3")

   // Verifica se a lista contém o elemento "Elemento 2"
   IF ContainsElement(aLista, "Elemento 2")
      ? "A lista contém o elemento 'Elemento 2'"
   ELSE
      ? "A lista não contém o elemento 'Elemento 2'"
   ENDIF

   // Verifica se a lista contém o elemento "Elemento 4"
   IF ContainsElement(aLista, "Elemento 4")
      ? "A lista contém o elemento 'Elemento 4'"
   ELSE
      ? "A lista não contém o elemento 'Elemento 4'"
   ENDIF

RETURN

FUNCTION AddElement(aList, cElement)
   // Adiciona um elemento à lista
   aList := aList + { cElement }
   RETURN aList

FUNCTION ContainsElement(aList, cElement)
   // Verifica se a lista contém o elemento
   RETURN IIf(At(cElement, aList) > 0, .T., .F.)

 

toArray

PROCEDURE Main()

   LOCAL aLista := {}

   // Adiciona elementos à lista
   aLista := AddElement(aLista, "Elemento 1")
   aLista := AddElement(aLista, "Elemento 2")
   aLista := AddElement(aLista, "Elemento 3")

   // Converte a lista para um array
   LOCAL aArray := ToArray(aLista)

   // Exibe o array resultante
   ? "Array resultante:"
   DisplayArray(aArray)

RETURN

FUNCTION AddElement(aList, cElement)
   // Adiciona um elemento à lista
   aList := aList + { cElement }
   RETURN aList

FUNCTION ToArray(aList)
   // Converte a lista para um array
   LOCAL aResult := {}
   FOR i := 1 TO Len(aList)
      aResult[i] := SubStr(aList, i, 1)
   NEXT i
   RETURN aResult

FUNCTION DisplayArray(aArray)
   // Exibe os elementos do array
   FOR i := 1 TO Len(aArray)
      ? aArray[i]
   NEXT i

 

indexOf

PROCEDURE Main()

   LOCAL aLista := {}

   // Adiciona elementos à lista
   aLista := AddElement(aLista, "Elemento 1")
   aLista := AddElement(aLista, "Elemento 2")
   aLista := AddElement(aLista, "Elemento 3")

   // Encontra o índice do elemento "Elemento 2"
   LOCAL nIndex := IndexOfElement(aLista, "Elemento 2")

   // Exibe o índice do elemento encontrado
   ? "Índice do elemento 'Elemento 2':", nIndex

RETURN

FUNCTION AddElement(aList, cElement)
   // Adiciona um elemento à lista
   aList := aList + { cElement }
   RETURN aList

FUNCTION IndexOfElement(aList, cElement)
   // Encontra o índice do elemento na lista
   LOCAL nIndex := At(cElement, aList)
   RETURN IIf(nIndex > 0, nIndex, 0)

 

lastIndexOf 

PROCEDURE Main()

   LOCAL aLista := {}

   // Adiciona elementos à lista
   aLista := AddElement(aLista, "Elemento 1")
   aLista := AddElement(aLista, "Elemento 2")
   aLista := AddElement(aLista, "Elemento 2")
   aLista := AddElement(aLista, "Elemento 3")

   // Encontra o índice da última ocorrência do elemento "Elemento 2"
   LOCAL nIndex := LastIndexOfElement(aLista, "Elemento 2")

   // Exibe o índice da última ocorrência do elemento encontrado
   ? "Índice da última ocorrência do elemento 'Elemento 2':", nIndex

RETURN

FUNCTION AddElement(aList, cElement)
   // Adiciona um elemento à lista
   aList := aList + { cElement }
   RETURN aList

FUNCTION LastIndexOfElement(aList, cElement)
   // Encontra o índice da última ocorrência do elemento na lista
   LOCAL nIndex := 0
   LOCAL nTempIndex := 0

   DO WHILE nTempIndex > 0
      nTempIndex := At(cElement, aList, nTempIndex + 1)
      IF nTempIndex > 0
         nIndex := nTempIndex
      ENDIF
   ENDDO

   RETURN nIndex