Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > VB6 > Работа с файлами в VB


Автор: DeminaKsenya 27.5.2011, 19:46
Существует 2 файла типа Sequential (.txt). код на их создание написали, помогите как отсортировать записи в этих файлах по ключевому полю. Записи первой таблицы: код, название книги, автор, тираж, цена, стандартная упаковка. Записи второй таблицы: код, дополнительный тираж, новая цена. ключевое поле код. 
На всякий случай уже готовый программный код на создание и просмотр файлов. 

Код

Option Explicit
Dim kod As Byte
Dim nazv As String * 30
Dim avt As String * 30
Dim tir As Single
Dim cena As Single
Dim stup As Variant
Dim kod1 As Byte
Dim doptir As Single
Dim novcena As Single



'Создание файла 1
Private Sub mnu211_Click()
Dim i As Byte
Open "fl.txt" For Output As #1
i = 0
Do
i = i + 1
kod = InputBox("Введите код книги №" & i, "Ввод данных", 2000, 500)
nazv = (InputBox("Введите название книги №" & i, "Ввод данных", 2000, 500))
avt = InputBox("Введите автора книги №" & i, "Ввод данных", , 2000, 500)
tir = InputBox("Введите тираж книги №" & i, "Ввод данных", 2000, 500)
cena = InputBox("Введите цену книги №" & i, "Ввод данных", 2000, 500)
stup = InputBox("Введите количество книг в стандартной упаковке для книги №" & i, "Ввод данных", 2000, 500)
Write #1, kod, nazv, avt, tir, cena, stup
Loop Until MsgBox("Продолжить ввод данных ?", 36, "Выход") = vbNo
Close #1
End Sub

'Создание файла 2
Private Sub mnu212_Click()
Dim i As Byte
Open "fl1.txt" For Output As #2
i = 0
Do
i = i + 1
kod1 = InputBox("Введите код книги №" & i, "Ввод данных", 2000, 500)
doptir = InputBox("Введите дополнительный тираж книги №" & i, "Ввод данных", 2000, 500)
novcena = InputBox("Введите новую цену книги №" & i, "Ввод данных", 2000, 500)
Write #2, kod1, doptir, novcena
Loop Until MsgBox("Продолжить ввод данных ?", 36, "Выход") = vbNo
Close #2
End Sub



'Распечатка файла 1
Private Sub mnu271_Click()
Open "fl.txt" For Input As #1
Text1.Text = Space(26) & "Книги" & vbCrLf
Text1.Text = Text1.Text + _
"Код Название Автор Тираж Цена Ст. уп" & vbCrLf
Do While Not EOF(1)
Input #1, kod, nazv, avt, tir, cena, stup
Text1.Text = Text1.Text & kod & " " & nazv
Text1.Text = Text1.Text & "" & avt & " " & tir
Text1.Text = Text1.Text & " " & cena & " " & stup & vbCrLf
Loop
Close #1
End Sub

'распечатка файла 2
Private Sub mnu272_Click()
Open "fl1.txt" For Input As #2
Text2.Text = Space(26) & "Дополнительный тираж" & vbCrLf
Text2.Text = Text2.Text + _
"Код Доп. тираж Новая цена " & vbCrLf
Do While Not EOF(2)
Input #2, kod1, doptir, novcena
Text2.Text = Text2.Text & kod1 & " " & doptir & " " & novcena & vbCrLf
Loop
Close #2
End Sub

'справка
Private Sub mnu28_Click()
Form2.Show
Dim i As Byte, j As Byte

Open "fl.txt" For Input As #1
Open "fl1.txt" For Input As #2
Form2.Text1.Text = ""
Form2.Text1.Text = Space(26) & "Выходной документ" & vbCrLf
Form2.Text1.Text = Form2.Text1.Text + _
"Автор Суммарный тираж Средняя цена" & vbCrLf
Do While Not EOF(1)
Input #1, kod, nazv, avt, tir, cena, stup
Input #2, kod1, doptir, novcena
Form2.Text1.Text = Form2.Text1.Text & avt & "" & tir + doptir
Form2.Text1.Text = Form2.Text1.Text & " " & (cena + novcena) / 2 & vbCrLf
Loop
Close #2
Close #1
End Sub

'Окончание работы программы
Private Sub mnu12_Click()
If MsgBox("Вы действительно хотите выйти из программы ?", vbYesNo + _
vbQuestion, "Выход") = vbYes Then End
End Sub

Please, help us. В понедельник защита!!!

Автор: Akina 27.5.2011, 21:27
Цитата(DeminaKsenya @  27.5.2011,  20:46 Найти цитируемый пост)
как отсортировать записи в этих файлах по ключевому полю. 

Прочитать в массив и отсортировать... хоть пузырьком.

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