powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как заменять подстроку строки в текстовом файле?
9 сообщений из 9, страница 1 из 1
Как заменять подстроку строки в текстовом файле?
    #33223152
DrugDiller
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Задача такая:
Имеем 2 файла:
1.txt

1;001;1
2;002;2
3;003;3

2.txt

001
002
003
Надо брать 1 строку из 2.txt и смотреть есть ли такая подстрока в 1.txt, если есть, то совершать определенное арифметическое действие над 3 поддстрокой строки файла 1.txt. Далее брать вторую строку 2.txt и искать ее в 1.txt, если найдена, то опять же арифметическое действие над 3 подстрокой строки 1.txt итд.

Помогите плз.
Заранее большое спасибо
...
Рейтинг: 0 / 0
Как заменять подстроку строки в текстовом файле?
    #33223391
Код: 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.
    Dim strLine1 As String
    Dim strLine2 As String
    Dim strText As String
    Dim intI As Integer
    
    Open "d:\temp\1.txt" For Input As # 1 
    Open "d:\temp\output.txt" For Output As # 3 
    
    Do While Not EOF( 1 )
        Line Input # 1 , strLine1
        Open "d:\temp\2.txt" For Input As # 2 
        
        Do While Not EOF( 2 )
            Line Input # 2 , strLine2
            intI = InStr(strLine1, strLine2)
            If intI >  0  Then
                Print # 3 , strLine1 & " | " & CInt(Mid(strLine1, intI +  4 )) *  10 
            End If
        Loop

        Close # 2 
    Loop
    
    Close # 1 
    Close # 3 

В выходном файле будет

Код: plaintext
1.
2.
 1 ; 001 ; 1  |  10 
 2 ; 002 ; 2  |  20 
 3 ; 003 ; 3  |  30 
...
Рейтинг: 0 / 0
Как заменять подстроку строки в текстовом файле?
    #33224291
DrugDiller
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дело в том, что хотелось бы именно заменять подстроку, т.е. как результат должно быть:
1;001;10
2;002;20
3;003;30
...
Рейтинг: 0 / 0
Как заменять подстроку строки в текстовом файле?
    #33224293
DrugDiller
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дело в том, что хотелось бы именно заменять подстроку, т.е. как результат должно быть:
1;001;10
2;002;20
3;003;30
...
Рейтинг: 0 / 0
Как заменять подстроку строки в текстовом файле?
    #33224554
Garrick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DrugDillerДело в том, что хотелось бы именно заменять подстроку, т.е. как результат должно быть:
1;001;10
2;002;20
3;003;30


Замените этот кусок кода, на то что вым нужно.

Код: plaintext
1.
2.
If intI >  0  Then
  Print # 3 , strLine1 & " | " & CInt(Mid(strLine1, intI +  4 )) *  10 
End If
...
Рейтинг: 0 / 0
Как заменять подстроку строки в текстовом файле?
    #33230026
DrugDiller
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А как при этом ненайденные строки выводить тоже, но в нетронутом виде?
...
Рейтинг: 0 / 0
Как заменять подстроку строки в текстовом файле?
    #33230048
DrugDiller
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Имеется в виду, что например в файле 2.txt присутствуют только строки
001
002

При этом должно получиться
1;001;1 | 10
2;002;2 | 20
3;003;3 | 3
...
Рейтинг: 0 / 0
Как заменять подстроку строки в текстовом файле?
    #33236374
DrugDiller
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Никак что ли?
...
Рейтинг: 0 / 0
Как заменять подстроку строки в текстовом файле?
    #33236572
Код: 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.
    Dim strLine1 As String
    Dim strLine2 As String
    Dim strText As String
    Dim intI As Integer
    Dim bln As Boolean
    
    Open "d:\1\1.txt" For Input As # 1 
    Open "d:\1\output.txt" For Output As # 3 
    
    Do While Not EOF( 1 )
        bln = False
        Line Input # 1 , strLine1
        Open "d:\1\2.txt" For Input As # 2 
        
        Do While Not EOF( 2 )
            Line Input # 2 , strLine2
            intI = InStr(strLine1, strLine2)
            If intI >  0  Then
                Print # 3 , strLine1 & " | " & CInt(Mid(strLine1, intI +  4 )) *  10 
                bln = True
            End If
        Loop
        If Not bln Then
            Print # 3 , strLine1 & " | " & Mid(strLine1, InStrRev(strLine1, ";") +  1 )
        End If
        Close # 2 
    Loop
    
    Close # 1 
    Close # 3 
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как заменять подстроку строки в текстовом файле?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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