VBA - Visual Basic 2008

Ответить
 • Просмотры: 6
Аватара пользователя
Delirium

Re: VBA - Visual Basic 2008

Сообщение Delirium »

НИКАКОГО Изображение просто в старых версия basic'a необходимо было писать next FEE, а потом упростили и сделали без FEE. Можно писать обоими способами Изображение
Аватара пользователя
Uzvern

Re: VBA - Visual Basic 2008

Сообщение Uzvern »

А можно как-то по быстрому заполнить ListBox значение из алфавита?

чтобы не писать вот так



Код:

Код: Выделить всё

            ListBox1.Items.Add("A")
            ListBox1.Items.Add("B")
            ListBox1.Items.Add("C")
            ListBox1.Items.Add("D")
            ListBox1.Items.Add("E")
            ListBox1.Items.Add("F")
            ListBox1.Items.Add("G")

или так



Код:

Код: Выделить всё

        With ListBox1.Items
            .Add("A")
            .Add("B")
            .Add("C")
            .Add("D")
            .Add("E")
            .Add("F")
            .Add("G")
        End With

а как-то побыстрей. там вроде как-то можно через For или чет типо того, но точно не уверен...
Аватара пользователя
Delirium

Re: VBA - Visual Basic 2008

Сообщение Delirium »

Смотрите в сторону CHR - то есть это функция, возвращающая символ по коду. К примеру chr(65) - "а" - по моему. chr(66) - "б".

О, нашел в MSDN:



Код:

Код: Выделить всё

Dim associatedChar As Char
' Returns "A".
associatedChar = Chr(65)
' Returns "a".
associatedChar = Chr(97)
' Returns ">".
associatedChar = Chr(62)
' Returns "%".
associatedChar = Chr(37)

Соотв-но, надо найти коды русских букв и запулить их через for-next




Цитата:



Parameters

CharCode

Type: System..::.Int32



Required. An Integer expression representing the code point, or character code, for the character. If CharCode is outside the valid range, an ArgumentException error occurs. The valid range for Chr is 0 through 255, and the valid range for ChrW is -32768 through 65535.



______
Аватара пользователя
Uzvern

Re: VBA - Visual Basic 2008

Сообщение Uzvern »

ЗАчем их искать, если можно тупо самому их узнать


Коды всех символов всего 255






Код:

Код: Выделить всё

Public Class Form1
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim RB As New RichTextBox
        RB.Dock = DockStyle.Fill
        Controls.Add(RB)
        For Chars As Integer = 0 To 255
            If Chars  255 Then
                RB.Text &= Chr(Chars) & " - " & Asc(Chr(Chars)) & Chr(13)
            Else
                RB.Text &= Chr(Chars) & " - " & Asc(Chr(Chars))
            End If
        Next
    End Sub
End Class








Об этом я знал, просто думал, что можно как-то ещё...
Аватара пользователя
Delirium

Re: VBA - Visual Basic 2008

Сообщение Delirium »

В смысле обход? Нужно именно поймать "System Volume Information" или пропустить его в обходе?

Протестировал код... Когда в качестве параметра функции пишу "C:\", начинается обход с корня диска и подвисает, точнее очень долго делает обход всех папок.

ЧТобы цикл зашел в нужную папку, прописал вот так:




Цитата:



If Path = Folder & "System Volume Information" then



вместо
Цитата Uzvern:



If FolderName.Name = "System Volume Information" Then
VBA - Visual Basic 2008




Только я не пойму, что дальше то сделать надо вам Изображение
Аватара пользователя
Uzvern

Re: VBA - Visual Basic 2008

Сообщение Uzvern »

Мне необходимо его наоборот пропустить!
Аватара пользователя
Uzvern

Re: VBA - Visual Basic 2008

Сообщение Uzvern »

Uzvern, оно и будет пропускать если подкорректировать условия, как подсказал Delirium. Проверяется это очень просто добавлением строчки Print.Debug("FolderName.Name") после условия, что б видеть что оно сработало. Можно и до, будут отображаться все пути пройденные программой, это ещё наглядно будет показывать что программа не висит.

Очень хорошо что была
VBA - Visual Basic 2008
возможность добавлять свой пункт в контекстное меню. Изображение

Delirium по дефолту к данной папке (при условии использовании NTFS) доступ заказан даже админу вот по этому Uzvern потребовалось обойти эту папку.
Аватара пользователя
Delirium

Re: VBA - Visual Basic 2008

Сообщение Delirium »

Как можно открыть папку и выделить неоходимый файл?
Аватара пользователя
Uzvern

Re: VBA - Visual Basic 2008

Сообщение Uzvern »

Хочу добавить на форму объекты




Error






Код:

Код: Выделить всё

Не удалось привести тип объекта "System.Object[]" к типу "System.Windows.Forms.Control[]".







Code




Вот так все прекрасно добавляется



Код:

Код: Выделить всё

        With Controls
            .Add(L)
            .Add(B)
            .Add(TB)
            .Add(C)
        End With

А вот так не хочет



Код:

Код: Выделить всё

    Dim L As New Label
    Dim B As New Button
    Dim TB As New TextBox
    Dim C As New CheckBox
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Try
            Me.Controls.AddRange(New Object() {L, B, TB, C})
        Catch ex As Exception
            MsgBox(ex.Message)
            Clipboard.SetText(ex.Message)
        End Try
    End Sub








Исходя из ошибки пробовал заменить Object на Control, но тогда вообще никакой ошибки не выскакивает, но и объекты тоже не добавляются!
Ответить

Вернуться в «Программирование и базы данных»