powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Текстовый файл
8 сообщений из 8, страница 1 из 1
Текстовый файл
    #32520830
Фотография KV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Файл такого типа:
((123456=
456987
789256
321856
9856325
/
((639185=
789797
465464
45646
13213

каким циклом пройтись от ((123456= до ((639185=
на VB или VBA
...
Рейтинг: 0 / 0
Текстовый файл
    #32520899
Processor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Любым.
Важно правило остановки цикла.
Признак остановки - две открывающих скобки.
Их можно найти несколькими способами:
InStr(), Mid(), Left(), Like...
...
Рейтинг: 0 / 0
Текстовый файл
    #32523508
Фотография KV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот такой файл:
Код: 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.
(( 17121386 =
 1 ) 26820 , 2464 , 2464 , 1684 , 1684 , 0 , 27600 , 18574 , 6254 , 1684 , 27600 , 18574 =
 2 ) 5916 , 2464 , 2464 , 1684 , 1684 , 0 , 6696 , 2578 , 1346 , 1684 , 6696 , 2578 =
 5 ) 1875 , 0 , 0 , 0 , 0 , 0 , 1875 , 1114 , 188 , 0 , 1875 , 1114 =
 7 ) 2106 , 492 , 492 , 89 , 89 , 0 , 2509 , 632 , 627 , 89 , 2509 , 632 =
 13 ) 260 , 1 , 1 , 1 , 1 , 0 , 260 , 180 , 26 , 1 , 260 , 180 =
/
(( 17450993 =
 1 ) 37 , 0 , 0 , 20 , 20 , 0 , 17 , 0 , 2 , 16 , 17 , 0 =
 2 ) 37 , 0 , 0 , 20 , 20 , 0 , 17 , 0 , 2 , 16 , 17 , 0 =
 7 ) 20 , 0 , 0 , 20 , 20 , 0 , 0 , 0 , 0 , 16 , 0 , 0 =
 13 ) 17 , 0 , 0 , 0 , 0 , 0 , 17 , 0 , 2 , 0 , 17 , 0 =
 31 ) 2000 =
/
(( 20757449 =
 1 ) 17577 , 5 , 5 , 5 , 0 , 0 , 17577 , 13378 , 254 , 0 , 17577 , 13378 =
 2 ) 17577 , 5 , 5 , 5 , 0 , 0 , 17577 , 13378 , 254 , 0 , 17577 , 13378 =
 3 ) 16314 , 0 , 0 , 0 , 0 , 0 , 16314 , 12839 , 196 , 0 , 16314 , 12839 =
 7 ) 1239 , 0 , 0 , 0 , 0 , 0 , 1239 , 520 , 56 , 0 , 1239 , 520 =
 16 ) 24 , 5 , 5 , 5 , 0 , 0 , 24 , 19 , 2 , 0 , 24 , 19 =
 26 ) 5 =
 31 ) 1997 =
/
(( 11370616 =
 1 ) 4532 , 11 , 11 , 140 , 140 , 0 , 4403 , 2968 , 28 , 140 , 4403 , 2968 =
 2 ) 4532 , 11 , 11 , 140 , 140 , 0 , 4403 , 2968 , 28 , 140 , 4403 , 2968 =
 3 ) 4246 , 0 , 0 , 0 , 0 , 0 , 4246 , 2908 , 25 , 0 , 4246 , 2908 =
 5 ) 48 , 0 , 0 , 0 , 0 , 0 , 48 , 21 , 1 , 0 , 48 , 21 =
 7 ) 238 , 11 , 11 , 140 , 140 , 0 , 109 , 39 , 2 , 140 , 109 , 39 =
 8 ) 49 , 0 , 0 , 27 , 27 , 0 , 22 , 4 , 0 , 27 , 22 , 4 =
 9 ) 186 , 11 , 11 , 113 , 113 , 0 , 84 , 33 , 2 , 113 , 84 , 33 =
 12 ) 3 , 0 , 0 , 0 , 0 , 0 , 3 , 2 , 0 , 0 , 3 , 2 =
 26 ) 11 =
/
(( 11624531 =
 1 ) 129252 , 133 , 133 , 156 , 156 , 0 , 129229 , 12644 , 1042 , 156 , 129229 , 12644 =
 2 ) 129252 , 133 , 133 , 156 , 156 , 0 , 129229 , 12644 , 1042 , 156 , 129229 , 12644 =
 3 ) 27919 , 0 , 0 , 0 , 0 , 0 , 27919 , 7752 , 432 , 0 , 27919 , 7752 =
 5 ) 29185 , 0 , 0 , 0 , 0 , 0 , 29185 , 0 , 78 , 0 , 29185 , 0 =
 7 ) 15362 , 105 , 105 , 108 , 108 , 0 , 15359 , 3292 , 275 , 108 , 15359 , 329 

Обрабатываю примерно так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
Sub TestFile()
Dim s As String
Dim sZN As String
Dim sOKPO As String
Open "E:\MyFile.mkt" For Input As # 1 
Do While Not EOF( 1 )
    Line Input # 1 , s
    If Left(s,  1 ) = "(" Then
     s = Mid(s,  3 )
     s = Replace(s, "=", "#")
     sOKPO = s
    ElseIf Left(s,  1 ) <> "(" And _
     Left(s,  1 ) <> "/" Then
     s = Replace(s, "=", "")
     s = Replace(s, ",", "#")
     s = Mid$(s, InStr(s, ")") +  1 )
     sZN = s
    Debug.Print sOKPO + sZN
    End If
Loop
Close # 1 
End Sub

Проблема в том, что начинает он почему-то не с первой записи вхождения sOKPO, а где-то уже посередине файла. В чем может быть причина? Как передвинуть курсор на 1-ю строку?
...
Рейтинг: 0 / 0
Текстовый файл
    #32523640
Фотография KV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Когда через F8 шаг за шагом все правильно получается и в окне Locals правильные значения, а когда процедуру целиком запускаю то не то получается...
...
Рейтинг: 0 / 0
Текстовый файл
    #32523802
Processor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
Sub NextTestFile()
Dim s As String
Dim sZN As String
Dim sOKPO As String
Open "E:\MyFile.mkt" For Input As # 1 
Do While Not EOF( 1 )                         'промобработка фрагментов опущена!!!
    Line Input #1, s
    Select Case Left(s, 2)
        Case "(("
            If Len(sOKPO) > 0 Then          'в начале - пусто
                Debug.Print sOKPO & sZN     'готовый результат
                sZN = ""                    'очистить правую часть результата
            End If                          'для накопления на следующей итерации.
            sOKPO = s                       'обнаружено начало фрагмента.
        Case Else
            sZN = sZN & s                   'накопление правой части результата
    End Select
Loop
    Debug.Print sOKPO + sZN                 'вывод последнего
Close # 1                                     '(или единственного) результата.
End Sub
...
Рейтинг: 0 / 0
Текстовый файл
    #32523813
Фотография KV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вот такой еще вопрос, как полученные данные сразу записать в новый файл?
Спасибо.
...
Рейтинг: 0 / 0
Текстовый файл
    #32524415
Processor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как полученные данные сразу записать в новый файл?
Я спросил у F1 ;-), и мне сказали:
Код: plaintext
1.
Data read with Line Input # is usually written from a file with Print #.
Data written with Print # is usually read from a file with Line Input # or Input.
И место печати напрашивается само собой: там, где в примере стоит Debug.Print
...
Рейтинг: 0 / 0
Текстовый файл
    #32525805
Фотография KV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо!
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Текстовый файл
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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