Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > (из VB6) Сортировка по алфавиту


Автор: Kroshka 13.6.2006, 20:32
Умные люди.. помогите дурочке поэалуйста. Я поняла сортировку по убыванию или возрастанию чисел например. А вот как делать если отсортировать надо фамилии?? Получается надо в какую то переменную заносить алфавит? Когда так сделала одна девочка из группы, препод над ней долго смеялся. 

Вот текст задания... помогите пожалуйста????? только как можно проще... а то ведь не пойму  smile 

Есть три столбца:
Шифр продукции    (тут циферки всякие) 
Название продукции (соответственно название) 
Наличие сертификата качества (либо название сертификата с букву начинается, либо его отсутствие).
        
Необходимо:
1. Создать базу данных, включающую одну таблицу.
2. Заполнить базу данных исходными данными (21-25 записей).
3. Распечатать базу данных.

^^^ это я понимаю, это я сама...

Необходимо:
Выдать справку: Виды продукции, имеющие сертификат качества, названия которых начинается с букв от "Г" до "Т". И Отсортировать по алфавиту.

 smile 
        

 

Автор: cardinal 13.6.2006, 21:33
Цитата(Kroshka @  13.6.2006,  19:32 Найти цитируемый пост)
Виды продукции, имеющие сертификат качества, названия которых начинается с букв от "Г" до "Т".

Вытащи нужные виды продукции из базы.
Цитата(Kroshka @  13.6.2006,  19:32 Найти цитируемый пост)
И Отсортировать по алфавиту.

И вставь их в ListBox у которого свойство Sorted равно True.

Вот небольшой пример. Если свойство Sorted будет равно False, то порядок элементов при вставлении не меняется автоматически.
Код

Option Explicit

Private Sub Command1_Click()
Dim i As Integer
For i = 0 To List1.ListCount
    Debug.Print List1.List(i)
Next
End Sub

Private Sub Form_Load()
List1.AddItem "Яблоко"
List1.AddItem "Тыква"
List1.AddItem "Груша"
List1.AddItem "Ананас"
End Sub
 

Автор: Voldemar2004 13.6.2006, 21:33
Цитата(Kroshka @  13.6.2006,  21:32 Найти цитируемый пост)
Получается надо в какую то переменную заносить алфавит?
Нет в VB не надо. Сортировка происходит абсолютно так же, как и с числами.
Код
Option Explicit

Private Sub Command1_Click()

Dim a(2) As String

a(0) = "Буква А."
a(1) = "А буква?"


If a(0) < a(1) Then

    MsgBox a(0)
    Else: MsgBox a(1)

End If


End Sub


Цитата(Kroshka @  13.6.2006,  21:32 Найти цитируемый пост)
Выдать справку: Виды продукции, имеющие сертификат качества, названия которых начинается с букв от "Г" до "Т". И Отсортировать по алфавиту.
Используй структуры. На Си твою задачу легче решить, чем на VB (имхо). 

Автор: Kroshka 13.6.2006, 22:26
ээээээ...... ну я же сказала: "дурочке"... а вы написали....  smile ничего не поняла я а-а-а-а-а

Вытащи нужные виды продукции из базы.
а как?

мне не надо через лист... и что такое AddItem я тоже не знаю..... простите, но я вижу бейсик всего полгода и знаю как делать самые ОЧЕНЬ ПРОСТЫЕ проги.... 

вот смотрите какой  у меня код.
там в конце есть Мид. но это естественно не работает... может вы как нибудь мне это преобразуете? И если уж будете, то по аналогии с тем что написано, а то препод любит, чтобы все как у него, ничего нового и своего.

Код

Private Sub ПУСК_Click()
Dim I, J As Integer
Dim K As Integer
K = Data1.Recordset.RecordCount
Flv.Rows = K + 1
Flv.Cols = 3
Data1.Recordset.MoveFirst
Flv.TextMatrix(0, 0) = Data1.Recordset.Fields(0).Name
Flv.TextMatrix(0, 1) = Data1.Recordset.Fields(1).Name
Flv.TextMatrix(0, 2) = "Sertificat"

For I = 1 To K
    For J = 0 To 1
        Flv.TextMatrix(I, J) = Data1.Recordset.Fields(J).Value
    Next J
    Data1.Recordset.MoveNext
Next I

For I = 1 To K
    If Mid(Data1.Recordset.Fields(2).Value, 1, 1) >= "г" And Mid(Data1.Recordset.Fields(2).Value, 1, 1) <= "т" And Data1.Recordset.Fields(2).Value <> "нет" Then

            For J = 0 To 2
            Flv.TextMatrix(Flv.Rows - 1, J) = Data1.Recordset.Fields(J).Value
            Next J
    End If
    Data1.Recordset.MoveNext
Next I

End Sub
Private Sub ВЫХОД_Click()

End Sub



 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)