powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / переменные-шмеременные
38 сообщений из 38, показаны все 2 страниц
переменные-шмеременные
    #37340152
Фотография BelowZero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
запихал несколько переменных в динамический массив. воть так добавляю в массив
mass(x) = "A"
теперь я хо выкинуть ненужные переменные из массива. пробовал приравнивать к нулю - переменные стирается но из массива не выходят. пробовал уменьшать массив на 1 - состирается последняя добавленная переменная а не та что нуно... как распеременить переменную?
...
Рейтинг: 0 / 0
переменные-шмеременные
    #37340159
timtim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BelowZero... как распеременить переменную?
Подробнее можно?
...
Рейтинг: 0 / 0
переменные-шмеременные
    #37340160
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BelowZero,

Нужно использовать коллекцию вместо массива. Там можно удалить произвольный элемент
...
Рейтинг: 0 / 0
переменные-шмеременные
    #37340166
Фотография BelowZero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
подробнее?... ну у мя был массив... есть массив... я в него пихаю по 1 переменной, как тока нахожу нужную, чтобы в последствии её обработать. затем обработанные переменные становятся ненужными и мешающимися работать с остальными переменными(нужно разобраться с каждой переменной, а чтобы пометить, что с переменной разобрались, я придумал её кикать. потому что хз как ещё пометить, что эту переменную в массиве обработали, учитывать её не нуно и разбираться с остальными переменными). воть... моя русскама плоха, но вроде более менее понятно) коллекцию?... я ток сёня начал вникать что ещё за массивы и куда и во что их... в моем обучающем справочнике для чайников ничего не говорится про коллекции...
...
Рейтинг: 0 / 0
переменные-шмеременные
    #37340171
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Dim Coll As New Collection

'добавить пару переменных
Coll.Add  5 , "Ключ"
Coll.Add  100 , "Ключик"
'обратиться к переменной
MsgBox Coll("Ключ")
'удалить переменную
Coll.Remove "Ключ"
...
Рейтинг: 0 / 0
переменные-шмеременные
    #37340181
Valeriu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
Erase variable
... ?
...
Рейтинг: 0 / 0
переменные-шмеременные
    #37340184
Фотография BelowZero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,

пасяп пойду пробовать новые знания и лямчкать мегакод)
...
Рейтинг: 0 / 0
переменные-шмеременные
    #37340286
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valeriu
Код: plaintext
Erase variable
... ? он хочет удалить элемент массива, просто неправильно выражает мысль
...
Рейтинг: 0 / 0
переменные-шмеременные
    #37343115
Фотография BelowZero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
заменил все массивы на коллекции. работать проще, но тоже есть свои заморочки("ключ" - текстовая переменная, поэтому часто приходится юзать Val и Str). удалить сё равно не получилось. например, у мя коллекция из 5 элементов(1,2,3,4,5). если я удалю второй элемент, запущу for 1 to 5 блаблабла next, попадётся 2 элемент и прога аварийно завершится(т.к. второго элемента уже нет). поэтому я удаляю второй элемент и на его место вставляю пустую строку. получится 5 элементов(1,,3,4,5). вроде работает... может кому пригодится
...
Рейтинг: 0 / 0
переменные-шмеременные
    #37343232
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот человек, сначала просит научить удалять элемент, потом ругается, что элемент удаляется.
Зачем тогда было переходить на коллекции, чтобы все равно использовать их как массив.

ЗЫ: Для перебора коллекции логично использовать For Each, а не For To
...
Рейтинг: 0 / 0
переменные-шмеременные
    #37343295
Фотография BelowZero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,

Shocker.ProFor Each
ммм... кто ж знал то... лан, главное работает)))
...
Рейтинг: 0 / 0
переменные-шмеременные
    #37343387
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BelowZeroShocker.Pro,

Shocker.ProFor Each
ммм... кто ж знал то... лан, главное работает)))
Можно и через For To
Но обращаться надо не по ключам, а по индексам элементов коллекции
то есть
Сoll("Ключ") - обращение к элементу по ключу
Сoll(5) - обращение к элементу по индексу
...
Рейтинг: 0 / 0
переменные-шмеременные
    #37343419
Фотография BelowZero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,
Shocker.ProСoll("Ключ") - обращение к элементу по ключу
Сoll(5) - обращение к элементу по индексу
это как раз самое сложное) т.е. у мя и в качестве ключей используются числа 1,2,3... а коллекция(я не виноват, она сама) путает добавляемую переменную, ключи и индексы, +если они в ходе программы хаотично изменяются из текстовой в числовую информацию и обратно. тоже хотел работать по индексу, но многое было непонятно: например, если кикнуть по индексу 1 элемент массива, то какой элемент встанет на его место и тд. поэтому удалять элементы коллекции так и не решился. прога и так будет работать на пару миллисекунд дольше, но зато работать)
...
Рейтинг: 0 / 0
переменные-шмеременные
    #37343540
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BelowZeroв качестве ключей используются числа 1,2,3...а коллекция(я не виноват, она сама) путает
В качестве ключей не могут использоваться числа. У тебя в качестве ключей используются строки "1","2","3"
Если не понимаешь разницу - я не виноват, коллекция тоже

Но если ТЫ САМ путаешься, никто тебе не мешает использовать например такие ключи: "S1","S2","S3"
...
Рейтинг: 0 / 0
переменные-шмеременные
    #37344390
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BelowZero,
И зачем вообще было лезть в коллекции, если даже с массивами не разобрался?
Если ты "исследуешь" изначально массив - так можно было завести отдельный "столбик", в котором "помечать" "ненужные" элементы. Нет, там, конечно, свои "подводные камни" имеются. НО, я, как-то, не верю, что ТС сейчас пытается исследовать ряды Фурье...
...
Рейтинг: 0 / 0
переменные-шмеременные
    #37344473
Фотография BelowZero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndreTM,

всё бы хорошо, но я не знаю как пометить переменную в массиве или коллекции, поэтому BelowZeroчтобы пометить, что с переменной разобрались, я придумал её кикать. на данный момент всё более-менее фурычит, тока столкнулся с маленькой проблемкой. не могу удалить элемент коллекции не по индексу, а по содержимому. т.е. если я добавил в коллекцию
Код: plaintext
1.
dim mozg as collection
mozg.add "blablabla" "???"
хз, как удалить этот элемент, зная только "blablabla"
пробовал

Код: plaintext
1.
2.
3.
dim ox as variant
for each ox in mozg
if mozg(str(ox)) = "blablabla" then 'ругается
mozg.remove str(ox)
наверняка есть простой способ. если нет, как проверить, число в переменной или буква? потому что у меня в качестве blablabla буквы, а в качестве ??? числа, и я смог бы работать тока с числами
...
Рейтинг: 0 / 0
переменные-шмеременные
    #37344546
Фотография BelowZero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
совсем какой-то бред получается... плюнул на работу с коллекциями и массивами, перевёл всё просто в текстбоксы. теперь новая проблемка: как удалить символ из тексбокса?
команды
kill/restore/unload/uninstall/close/delete/end mid((text1.text, 1, 1)
не работают
...
Рейтинг: 0 / 0
переменные-шмеременные
    #37344552
Фотография VSVLAD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BelowZero,
Во-первых взять букварь по функциям. Во-вторых отдельной функции удаления символов из строки нет, но можно заменить например так:

Код: plaintext
1.
2.
3.
4.
5.
6.
Private Sub Command1_Click()
    MsgBox RemoveChars("Привет# Мир",  7 ,  1 )
End Sub

Public Function RemoveChars(ByVal sText As String, Index As Integer, Length As Integer) As String
    RemoveChars = Left(sText, Index -  1 ) & Right(sText, Len(sText) - (Index -  1 ) - Length)
End Function
...
Рейтинг: 0 / 0
переменные-шмеременные
    #37344556
Фотография VSVLAD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Или так
Код: plaintext
1.
2.
Public Function RemoveChars(ByVal sText As String, Index As Integer, Length As Integer) As String
    RemoveChars = Mid(sText,  1 , Index -  1 ) & Mid(sText, Index + Length)
End Function
...
Рейтинг: 0 / 0
переменные-шмеременные
    #37344578
Фотография BelowZero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VSVLADИли так
Код: plaintext
1.
2.
Public Function RemoveChars(ByVal sText As String, Index As Integer, Length As Integer) As String
    RemoveChars = Mid(sText,  1 , Index -  1 ) & Mid(sText, Index + Length)
End Function

Код: plaintext
RemoveChars = Mid(sText,  1 , Index -  1 ) & Mid(sText, Index + 1 , len(stext)-index)
сё работает, выручил, а то голову ломаю)
правда у меня public function ни в процедуре, ни в генералс, ни в модуле не работает и RemoveChars выделяет как неопознанную функцию, но это он незнания, куда её впихнуть. использовал этот метод без функций. пасяп, пойду измываться над бейсиком...
...
Рейтинг: 0 / 0
переменные-шмеременные
    #37344586
Фотография BelowZero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VSVLADВо-первых взять букварь по функциям
не подскажете, где взять такой?(если есть, выложите плз) гуглом пока что воспользоваться затруднительно, да и выкладывают в инете всякий бред едва-едва касающийся программирования.
...
Рейтинг: 0 / 0
переменные-шмеременные
    #37344663
Фотография VSVLAD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Например по клавише F2 - Браузер объектов, хорошая вещь = )

Есть у меня такой http://zalil.ru/31399695 Русский автор, очень удобный с примерами и описаниями.
...
Рейтинг: 0 / 0
переменные-шмеременные
    #37344690
Фотография BelowZero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VSVLAD,

пасяп
...
Рейтинг: 0 / 0
переменные-шмеременные
    #37344708
Фотография BelowZero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
всё-таки приходится работать с коллекциями... коллекция набрала кучу хлама, нужно его выкинуть, чтобы набрать другой. индекс этого хлама я не знаю, как удалить хлам по содержимому тоже хз. как вариант, можно удалить всю коллекцию, но тоже хз как)
...
Рейтинг: 0 / 0
переменные-шмеременные
    #37344766
timtim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BelowZero,

Покажи "код набора хлама".
...
Рейтинг: 0 / 0
переменные-шмеременные
    #37344972
Фотография BelowZero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
timtim,
collection.add "блаблабла" "???"
блаблабла - буквы, они известны
??? - случайный индекс. ну как случайный... из другой коллекции отбираются некоторые "блаблабла" с тем же индексом, что и в исходной коллекции. поэтому индексы неизвестны. зная блаблабла, в принципе, можно узнать индекс, а потом кикнуть элемент коллекции, но я хз как.
...
Рейтинг: 0 / 0
переменные-шмеременные
    #37345092
Фотография VSVLAD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Удаление элементов, если нет ключа. Например, так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Dim col As New Collection

col.Add "VLAD"
col.Add "VLAD2"
col.Add "VLAD3"
col.Add "VLAD4"

For I =  1  To col.Count
    If col(I) = "VLAD2" Then
        Call col.Remove(I)
        Exit For
    End If
Next
...
Рейтинг: 0 / 0
переменные-шмеременные
    #37345126
Фотография BelowZero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VSVLAD,

col.Count.... какие я только комбирации не перебирал, чтобы обозначить индекс(ключ или хз как это называется) коллекции) спс
...
Рейтинг: 0 / 0
переменные-шмеременные
    #37345323
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BelowZeroVкакие я только комбирации не перебирал, чтобы обозначить индекс(ключ или хз как это называется) коллекции)А надо было просто прочитать внимательно мое сообщение: 10945633
Ключ и индекс - это не одно и то же, обращаться можно и по ключу и по индексу
...
Рейтинг: 0 / 0
переменные-шмеременные
    #37345339
timtim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BelowZero..., но я хз как.
asm освой раз так, там точно не запутаешься, либо да либо...
...
Рейтинг: 0 / 0
переменные-шмеременные
    #37345707
Фотография alex77755
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуй словарь Scripting.Dictionary
там не надо лопатить все элементы для поиска. Просто проверить наличие
Свойство CompareMode Задаёт способ сравнения КЛЮЧЕЙ

Свойство Count Возвращает количество ЗАПИСЕЙ (пар "КЛЮЧ—ЗНАЧЕНИЕ") в словаре

Свойство Item Возвращает ЗНАЧЕНИЕ, соответствующее КЛЮЧУ

Свойство Key Изменяет значение КЛЮЧА

Метод Add Добавляет в словарь ЗАПИСЬ (пару "КЛЮЧ—ЗНАЧЕНИЕ")

Метод Exists Проверяет наличие заданного КЛЮЧА в словаре

Метод Items Возвращает массив ЗНАЧЕНИЙ словаря

Метод Keys Возвращает массив КЛЮЧЕЙ словаря

Метод Remove Удаляет из словаря ЗАПИСЬ (пару "КЛЮЧ—ЗНАЧЕНИЕ")

Метод RemoveAll Очищает словарь
...
Рейтинг: 0 / 0
переменные-шмеременные
    #37346438
Фотография BelowZero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спасибо, но я уже доделал прогу с использование коллекций, замены ненужных элементов коллекций на пустые строки, но без удаления(иначе при обращении к удалённому элементу коллекции возникает ошибка). в итоге в коллекции набирается несколько сотен, если не тысяч элементов... вот думаю, стоит ли подкорректировать код с использование удаления и обращения foreach или компу всё равно, 5 или 1005 элементов в коллекции, и он и так справится с нагрузкой... p/s что такое asm? p/p/s индекс показывает порядковый номер элемента в массиве? т.е. из тысячи элементов индекс 1 - первый добавленный элемент индекс 1000 - последний добавленный элемент? что случится с индексом, если удалить 385 элемент?
...
Рейтинг: 0 / 0
переменные-шмеременные
    #37346495
Фотография BelowZero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
всё-таки переделываю код под for each... но есть сложность
Coll.Add 5, "Ключ"
так вот, как добавлять элемент так, чтобы "ключ" вставлялся автоматически, любой ключ, главное, чтоб такого ключа в коллекции уже не было. например, при откытии тхт файлов, я помню, есть функция F = freefile, которая автоматом предлагает свободное F. есть ли такое для коллекций? а то постоянно ошибка: "этот ключ уже используется"
...
Рейтинг: 0 / 0
переменные-шмеременные
    #37346592
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BelowZero,

что Вам надо бог его знает, всё что у меня есть:
пример по коллекциям
Dim col As New Collection
col.Add "First", "K"
col.Add "Second", "K1"
col.Add "Third", "K2"
MsgBox$ col.Item("K")
MsgBox$ col.Item("K1")
MsgBox$ col.Item("K2")
MsgBox$ col.Item(1)
MsgBox$ col.Item(2)
MsgBox$ col.Item(3)
'в отличие от массивов, элементы коллекций нумеруются с 1
Размер_коллекции = col.Count
'добавляем в коллекцию элемент и, если получаем ошибку, то такой элемент существует
'метод Add позволяет вставлять элементы в коллекцию туда, куда требуется
'просто для этого нужно использовать аргументы
'Before (перед) и After (после), можно указывать номер в коллекции или имя в коллекции
'Before - третий параметр, After - чётвертый параметр
col.Add "ri", "ty", 2 'запись "ri" со значением "ty", Before (перед) - третий параметр
col.Add "ris", "tys", , "K2" 'запись "ris" со значением "tys", After (после)- чётвертый параметр

Размер_коллекции1 = col.Count
'метод Remove удаляет элемент из коллекции
'объект для удаления можно задать либо с помощью индекса, либо с помощью имени
col.Remove 2
col.Remove "K2"
'при удалении элемента коллекции VBA, так сказать, "заполняет дыры" — номера всех элементов, следующих за удалённым, уменьшатся на 1
Размер_коллекции1 = col.Count
...
Рейтинг: 0 / 0
переменные-шмеременные
    #37346672
Фотография BelowZero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ципихович Эндрю,

интересно... почитал - вроде всё понятно, а када в коде+куча коллекций+берут аргументы друг у друга+в циклах и обработчиках... такая каша получается... лан, поднаберусь знаний, может, возьмусь исправить недочёты. а пока - не буди лихо, пока оно тихо. пасяп за инфу
...
Рейтинг: 0 / 0
переменные-шмеременные
    #37346936
Фотография alex77755
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Преимущество словаря перед коллекцией - отпадает необходимость автори обращения foreach для определения наличия ключа в словаре
...
Рейтинг: 0 / 0
переменные-шмеременные
    #37346991
Фотография BelowZero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex77755Преимущество словаря перед коллекцией - отпадает необходимость автори обращения foreach для определения наличия ключа в словаре
угу, я почитал преимущества, спс за статейку, но таким трудом и столько дней мучался, чтобы вся эта куча коллекций работала(да что там работала, хотя бы не материлась ошибками), что пока что страхово переделывать код
...
Рейтинг: 0 / 0
переменные-шмеременные
    #37350835
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если честно, то надо было реализовать всё и сразу с помощью SQL. ИМХО...
...
Рейтинг: 0 / 0
38 сообщений из 38, показаны все 2 страниц
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / переменные-шмеременные
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]