Работа с файлами в VB

Узнай цену своей работы

Формулировка задачи:

Существует 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. В понедельник защита!!!

Решение задачи: «Работа с файлами в VB»

textual
Листинг программы
Option Explicit
 
Private Sub Комманда1_Click()
Dim i, J
Dim M() As String
Dim T
Dim W() As String
Dim P() As String
   Dim File As String, CF As String
   File = "C:\fl1.txt"
   Open File For Binary As #1
      CF = Input(FileLen(File), 1)
   Close #1
 
   CF = Replace(CF, """", "")
 M = Split(CF, vbNewLine)
For i = 0 To UBound(M) - 2
    For J = i + 1 To UBound(M)
    If M(J) <> "" Then
         W = Split(M(i), ",")
          P = Split(M(J), ",")
          If CDbl(W(0)) < CDbl(P(0)) Then T = M(J): M(J) = M(i): M(i) = T
    End If
Next J
Debug.Print M(i)
Text1.Text = Text1.Text & M(i) & vbCrLf
Next i
End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4 из 5