powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Сравнение 2 файлов с выводам лишней информации в третий.
4 сообщений из 4, страница 1 из 1
Сравнение 2 файлов с выводам лишней информации в третий.
    #37040098
Navichok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброе время суток.

Задача сравнить 2 файла и если во втором файле будут строки которых

нет в первом то добавить их в файл 3

вот мой ВБ6 код:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
Option Explicit
Dim buffer1( 1  To  10000 ) As String
Dim buffer2( 1  To  10000 ) As String
Dim i As Integer
Dim i0 As Integer
Dim f As Integer
Dim schetchik As Integer
Dim HTML_code As Variant

Private Sub Form_Load()
i =  0 
schetchik =  1 
i0 =  0 
End Sub

Private Sub Command1_Click()
    Open app.path &"\test1.html" For Input As # 1 
    Open app.path & "\test2.html" For Input As # 2 
        If LOF( 1 ) <> LOF( 2 ) Then
        Do While Not EOF( 1 )
        i = i +  1 
            Line Input # 1 , buffer1(i)
         Loop
    Close # 1 
    
        Do While Not EOF( 2 )
        i0 = i0 +  1 
            Line Input # 2 , buffer2(i0)
        Loop
    Close # 2 
    Else
       Exit Sub
    End If
        For f =  1  To i0
                Call proverka
        Next f
End Sub

Private Sub proverka()
             If buffer1(schetchik) <> buffer2(f) Then
            Open App.Path & "\test3.html" For Append As # 3 
                Print # 3 , buffer2(f)
            Close # 3 
                schetchik = schetchik
            ElseIf buffer1(f) = buffer2(f) Then
                schetchik = schetchik +  1 
            End If
End Sub

в пошаговом режиме в подпрограмме ПРОВЕРКА находит одну строку

которой нет в файле 1 и добавляет ее в 3. Но в завершение работы

сравнения в файле номер 3 добавлены все строки которые стоят ниже

той строки что фактически должна была добавиться в файл под номером

3.

В чем моя ошибка?

Заранее благодарен за ваши ответы.
...
Рейтинг: 0 / 0
Сравнение 2 файлов с выводам лишней информации в третий.
    #37040100
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Первый файл надо считать построчно, например, в массив.
Затем считывать построчно второй файл, проверять каждую строку на наличие её в массиве - и при отсутствии выводить её в третий...

Можно немного оптимизировать алгоритм - считать оба файла в массивы, проверить размеры, затем искать меньший в большем (отмечая совпадения), затем вывести строки без отметок.

Есть реализация, использующая возможности конкретного языка - считать второй файл в строковую переменную, а затем читать построчно первый, заменяя в исходнике Replace'ом считанные подстроки - оставшаяся строка и будет результатом.

Еще оптимальнее (то есть возложим работу на SQL-провайдера) - вообще записать оба файла в рекордсеты и сделать разностную выборку.
Но это уже следующий этап...
...
Рейтинг: 0 / 0
Сравнение 2 файлов с выводам лишней информации в третий.
    #37040362
Navichok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Можно немного оптимизировать алгоритм - считать оба файла в массивы, проверить размеры, затем искать меньший в большем (отмечая совпадения), затем вывести строки без отметок.


Так у меня оба файла в массив и считываются. А с Replace' ом не могли бы дать примерчик?
...
Рейтинг: 0 / 0
Сравнение 2 файлов с выводам лишней информации в третий.
    #37041245
Navichok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем спасибо. Ошибка была в переменной "f" а должна была стаять "schetchik".
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Сравнение 2 файлов с выводам лишней информации в третий.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]