Member 13644477 Ответов: 0

У кого-нибудь есть решение и объяснение этой проблемы?


Создал структуру записей и пытается создать двоичный поиск, который будет искать одно из полей в структуре, однако я получаю ошибку. Я уверен, что это где-то глупая ошибка, но если бы кто-то мог указать на нее и дать простое объяснение, чтобы помочь мне, это было бы очень ценно, спасибо.
 Public Class MainMenu
Public Structure ClientDatabase
        Dim clientID As Integer

        <VBFixedString(10)> Dim forename As String '10 bytes
        <VBFixedString(10)> Dim surname As String   '10 bytes
        <VBFixedString(30)> Dim address1 As String   '30 bytes
        <VBFixedString(9)> Dim postcode As String   '9 bytes
        Dim Rdate As Date  '8 bytes
        <VBFixedString(150)> Dim notes As String '150 bytes 
        Dim p_homeIns As Boolean '4 bytes
        Dim p_reMort As Boolean '4 bytes
        Dim p_homemover As Boolean '4 bytes
        Dim p_firstbuy As Boolean '4 bytes
        Dim p_buylet As Boolean '4 bytes
        Dim p_lifeinsur As Boolean '4 bytes
        Dim p_criticalIllness As Boolean '4 bytes
        Dim p_IncomeProtec As Boolean '4 bytes
    End Structure


Что я уже пробовал:

Итак, выше приведена публичная структура, которую я объявил, просто для справки, и вот где возникает проблема. "Клиент" в строке, которую я оставил белой, подсвечивается красным цветом с ошибкой "MainMenu.Клиентская база' нельзя индексировать, так как он не имеет свойств по умолчанию."
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
       Dim search_value As Integer
       Dim client As ClientDatabase
       search_value = TextBox1.Text
       If Not IsNumeric(search_value) Or search_value < 1 Then
           MsgBox("Please enter a number greater than zero")
           TextBox1.Clear()
       Else
           Dim upper As Integer
           Dim lower As Integer
           Dim middle As Integer
           Call ReadClientInfo(client, upper)
           lower = 1

           Do
               middle = (upper + lower) / 2

               If search_value <
клиент
(middle).clientid Then

                End If

            Loop Until middle = search_value Or lower > upper
            My.Computer.FileSystem.WriteAllText("H:\Advanced Higher Computing\Project\project-coding\search.txt", search_value, True)
            Search.Show()
            Me.Close()

        End If
    End Sub
    Private Sub ReadClientInfo(ByRef client, ByRef upper)
        Dim filename As String
        Dim filelength As Integer
        Dim numrecs As Integer
        filename = "H:\Advanced Higher Computing\Project\project-coding\clients.txt"
        FileOpen(1, filename, OpenMode.Random, OpenAccess.Read, OpenShare.LockRead, 243)

        filelength = LOF(1)
        numrecs = filelength / 243
        upper = numrecs


        For index = 1 To numrecs
            FileGet(1, client, index)
        Next
    End Sub

OriginalGriff

- я получаю сообщение об ошибке."
Это один из отчетов об ошибках, которые мы получаем, который совершенно бесполезен - он ничего не говорит нам, кроме того, что у вас есть проблема (которую мы все равно знали, потому что в противном случае вы не задавали бы вопрос).
И мы не можем видеть ваш экран, получить доступ к вашему жесткому диску или прочитать ваши мысли - мы получаем только то, что вы печатаете для работы.

Итак, расскажите нам, что он делает, чего вы не ожидали, или не делает, что вы сделали. Расскажите нам, что должно делать программное обеспечение, какие данные вы передаете ему, чтобы заставить его делать это, какой результат вы ожидаете, и что вы на самом деле получаете! Расскажите нам о любых сообщениях об ошибках и о том, где они происходят.
Помогите нам помочь вам!

Используйте виджет "улучшить вопрос", чтобы отредактировать свой вопрос и предоставить более подробную информацию.

Member 13644477

я уже говорил вам, что пытаюсь выполнить двоичный поиск в массиве записей, в частности поле называется clientid. Какую еще информацию вы хотите получить? Вы можете буквально видеть "любые сообщения об ошибках", потому что я сказал вам об ошибке. Пожалуйста, уточните свой комментарий, чтобы я понял, какую информацию вы ищете????

David_Wimbley

Я предлагаю вам использовать google для вашей ошибки. Вы похоронили свое сообщение об ошибке, так что это выглядит так, как будто ваша ошибка-это просто вы говорите: "я делаю двоичное дерево поиска, и оно дает ошибку", и именно здесь приходит его ответ.

https://social.msdn.microsoft.com/Forums/vstudio/en-US/cfc4fcbf-f000-4361-b69d-e092c65aceba/class-cannot-be-indexed-because-it-has-no-default-property?форум=vbgeneral

0 Ответов