Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / добавлять строки в конец текстового файла / 9 сообщений из 9, страница 1 из 1
23.08.2007, 11:52:03
    #34747097
evgenius_b
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
добавлять строки в конец текстового файла
Плиз, прошу помощи.

Дано: файлы с таблицами данных 0816_01.txt, 0816_02.txt, 0816_03.txt
Нужно:
пооочередно открывать каждый файл,
фильтровать строки, содержащие текстовую константу,
копировать в выходной файл построчно.

С последовательной работой с input файлами еще не разбирался.
Пока сделал - открыть 1 файл, отфильтровать, записать в output.


Код: 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.
Public TextToFind1 As String
Public TextToFind2 As String
Public TextToFind3 As String
Public MS As String
Public DC As String


Sub FilterFile()
'
'Фильтрация текстового файла
' по всем ключевым словам, приведенным ниже

TextToFind1 = "Session Start"
TextToFind2 = "Session End"
TextToFind3 = "CP-Data"
MS = "MS1"
DC = "DC1"

Call FindText

End Sub

Sub FindText()
Open "0816_01.txt" For Input As # 1 
Open "output.txt" For Output As # 2 
Do Until EOF( 1 )
Line Input # 1 , data
If (InStr( 1 , data, MS) Or InStr( 1 , data, DC)) Then
    If InStr( 1 , data, TextToFind1) Then
    Print # 2 , data
    Else
        If InStr( 1 , data, TextToFind2) Then
        Print # 2 , data
        Else
            If InStr( 1 , data, TextToFind3) Then
            Print # 2 , data
            End If
        End If
    End If
End If
Loop
Close
End Sub

Проблема:
как сделать, чтобы при фильтрации очередного входного файла строки с ключевыми словами добавлялись в конец output.txt?
...
Рейтинг: 0 / 0
23.08.2007, 12:26:34
    #34747260
klen_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
добавлять строки в конец текстового файла
открой второй файл таким образом
Код: plaintext
      Open "output.txt" For Append As # 2 
...
Рейтинг: 0 / 0
23.08.2007, 12:41:31
    #34747352
evgenius_b
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
добавлять строки в конец текстового файла
почему-то копирует полностью исходный файл :(
...
Рейтинг: 0 / 0
23.08.2007, 12:42:46
    #34747360
evgenius_b
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
добавлять строки в конец текстового файла
Код: 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.
Public TextToFind1 As String
Public TextToFind2 As String
Public TextToFind3 As String
Public MS As String
Public DC As String



Sub FilterFile()


TextToFind1 = "Session Start"
TextToFind2 = "Session End"
TextToFind3 = "CP-Data"
MS = "MS1"
DC = "DC1"

Call FindWriteText

MS = "MS2"
DC = "DC2"

Call FindWriteText

End Sub

Sub FindWriteText()
Open "0816_01.FMT" For Input As # 1 
Open "output.txt" For Append As # 2 
Do Until EOF( 1 )
Line Input # 1 , data
If (InStr( 1 , data, MS) Or InStr( 1 , data, DC)) Then
    If InStr( 1 , data, TextToFind1) Then
    Print # 2 , data
    Else
        If InStr( 1 , data, TextToFind2) Then
        Print # 2 , data
        Else
            If InStr( 1 , data, TextToFind3) Then
            Print # 2 , data
            End If
        End If
    End If
End If
Loop
Close
End Sub
...
Рейтинг: 0 / 0
23.08.2007, 13:02:32
    #34747489
klen_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
добавлять строки в конец текстового файла
надо проверять, что возвращает функция InStr() то есть номер позиции найденного символа
или просто, больше нуля, или ничего не нашла, то есть равно нулю
Код: plaintext
    If InStr( 1 , data, TextToFind1) >  0  Then
...
Рейтинг: 0 / 0
23.08.2007, 13:05:52
    #34747510
evgenius_b
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
добавлять строки в конец текстового файла
Спасибо.
Заработало.

Из процедуры FindWriteText компилировал и запускал макрос.
Башка - два уха.

Сорри.
...
Рейтинг: 0 / 0
24.08.2007, 15:42:55
    #34751321
Rampage
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
добавлять строки в конец текстового файла
вопрос в тему, можно ли каким нить образом заменить строку в текстовом файле?
надо вставить данные ячейки вместо строчки
...
Рейтинг: 0 / 0
24.08.2007, 16:37:48
    #34751516
Rampage
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
добавлять строки в конец текстового файла
up
...
Рейтинг: 0 / 0
26.08.2007, 20:35:29
    #34753234
big-duke
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
добавлять строки в конец текстового файла
Сформулируйте вопрос понятней и если он не связан с темой топика, то создайте новую тему.
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / добавлять строки в конец текстового файла / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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