PureBasic

ChangeCurrentElement()

Синтаксис

ChangeCurrentElement(List() , *NewElement)

Описание


Устанавливает указанный элемент Связного Списка List() в качестве текущего элемента. Эта функция очень полезна, если вы хотите 'запомнить' текущий элемент и вернуться к нему после выполнения каких либо действий над элементами.

Параметры

List() Имя используемого Списка, созданного с помощью функции NewList. Вы должны указать скобки после имени Списка.
*NewElement Элемент устанавливаемый в качестве текущего элемента Списка. В качестве параметр должен быть указатель на элемент, который уже существует в этом Списке. Вы должны получить этот адрес, используя оператор '@' с именем Списка, а не каким либо другим способом.

Возвращаемое значение

Ничего.

Пример Упрощённый

NewList MyList()            ; Объявляем  Список, текущего элемента нет.
AddElement(MyList())        ; Добавляем в него первый элемент, он становится "текущим", под индексом 0. Счёт как в массиве с 0.
*Old_Element = @mylist()    ; Получаем адрес текущего (первого) элемента, который под индексом 0
For q=1 To 10               ; Добавляем ещё 10 элементов
  AddElement(MyList())
Next q

Debug "Адрес текущего элемента :  " + Hex(@mylist()) + "  под индексом " + ListIndex(MyList()) ; 10 
ChangeCurrentElement(mylist(), *Old_Element) ; переходим на элемент, адрес которого хранится в указательной переменной *Old_Element.
Debug "Адрес текущего элемента :  " + Hex(@mylist()) + "  под индексом " + ListIndex(MyList()) ; 0  

Пример: Полный

NewList myList()

AddElement(myList())
myList() = 100

AddElement(myList())
myList() = 200
*element = @myList()

AddElement(myList())
myList() = 300

Debug myList() ; Показывает 300 (последний элемент)
ChangeCurrentElement(myList(), *element) ; Восстановить позицию Списка
Debug myList() ; Показывает 200

ForEach myList()
    If @myList() = *element
        Debug "элемент: " + myList() ; Показывает "элемент: 200"
    EndIf
Next

См. также

SelectElement()

Поддерживаемые OS

Все

<- AddElement() - Оглавление List - ClearList()->