У меня возникло несколько проблем при попытке настроить подпрограмму в Visual Basic .NET для просмотра массива записей и удаления всех записей, где поле даты находится перед текущей датой.Вот мой текущий код:
Sub FutureDate()
Dim movefrom As Integer
For x As Integer = 0 To UBound(notifications)
If notifications(x).MeetingTime < Now.Date Then 'Finds first current/future date.
movefrom = x
End If
Next
Dim moveto As Integer = 0
For x As Integer = movefrom To UBound(notifications) 'Moves dates after this to beginning of array.
movefrom += 1
notifications(moveto) = notifications(movefrom)
moveto += 1
Next
ReDim Preserve notifications(moveto) 'Shortens the array to the correct length.
End Sub
После вызова этого подпрограммы программа показывает первые три записи в массиве в окнах сообщений (для целей отладки).Однако, когда я запускаю программу, окна сообщений никогда не отображаются.Эта подпрограмма определенно является проблемой, поскольку закомментирование строки, которая вызывает ее, решает проблему, и появляются соответствующие сообщения, хотя и с первым полем, содержащим дату в прошлом.Это для системы уведомлений / предстоящих собраний, поэтому я, очевидно, не хочу включать даты, которые прошли.
Записи уже отсортированы по дате, поэтому, на мой взгляд, это должно делать то, что я хочу, то есть удалить записи с датами в прошлом, переместить все остальное в начало массива, а затем удалить пробелы в конце, из которого записи были перемещены.Тем не менее, я часто совершаю глупые ошибки с такими вещами, поэтому внешний вклад очень ценится.Любая помощь, которую вы можете оказать, была бы великолепна.
Спасибо.