powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / как произвести замены разделителей в файле
3 сообщений из 3, страница 1 из 1
как произвести замены разделителей в файле
    #33374245
dar55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
К примеру есть текстовый файл
1 aaa = 111 bbbb = 2222
2 aaa = 111 bbbb = 2313
3 aaa = 111 bbbb = 7216

в первых двух строчках между 1 и ааа и 111 bbbb используется табуляция, а в третьей строчке заместо табуляции используется n-ое количество пробелов.
Разумеется параметр aaa = может быть любым, например ааа = 21321.
Каким образом реализовать замену этих n пробелов на один символ табуляции?И пробелы с двух сторон от "=" не тронуть.
...
Рейтинг: 0 / 0
как произвести замены разделителей в файле
    #33375200
dar55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну или если по каким то причинам на эту тему не ответит, подскажите хотя бы функцию, которая позволяет считывать посимвольно символы из строки и производить с каждым символом определенные действия, типа проверки.
...
Рейтинг: 0 / 0
как произвести замены разделителей в файле
    #33375484
Фотография Aklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Далеко не оптимизированный код. Читаем из файла, и преобразовываем в строку r а ее можем записать...

Код: 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.
  Dim tt As Integer
  tt = FreeFile
  Dim a As Integer, b As Integer, s As String, n As Integer
  Dim i As Integer, r As String, j As Integer
  
  Open "файл" For Input As #tt
    Do While Not EOF(tt)
      Line Input #tt, s
      s = Replace(s, vbTab, " ")
      
      If Not Len(s) Then
        i = InStr(i +  1 , s, " ")
        n = CInt(Left(s, i -  1 ))
        Do While Mid$(s, i,  1 ) = " "
          i = i +  1 
        Loop
        
        'Here is AAA =_
        j = InStr(i +  1 , s, "=") +  1 
        r = r & n & vbTab & UCase$(Mid$(s, i, j - i +  1 )) 'or LCase... or nothing
        
        i = InStr(j +  1 , s, " ")
        
        'Here is aaa = _THIS
        a = CInt(Mid$(s, j +  1 , i - j -  1 ))
        
        Do While Mid$(s, i,  1 ) = " "
          i = i +  1 
        Loop
        
        j = InStr(i +  1 , s, "=") +  1 
        'Here is bbbb =_
        r = r & a & vbTab & UCase$(Mid$(s, i, j - i +  1 )) 'or LCase... or nothing
        
        b = CInt(Mid(s, j +  1 ))
        r = r & b
        
        'MsgBox n & " - aaa = [" & a & "]   bbbb = [" & b & "]" & vbCrLf & "r = [" & r & "]"
        
        i =  0 
        j =  0 
        'last command
        r = ""
        
      End If 'len(s)=0
    Loop
  Close #tt


Для записи заменить r = "" (last command) на r=r & vbcrlf и добавить в конец:

Код: plaintext
1.
2.
3.
  tt = FreeFile
  Open "файл" For Output As #tt
    Print #tt, r
  Close #tt
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / как произвести замены разделителей в файле
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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