Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 1 |

 

  Вопрос: Поиск и замена строк Добавлено: 16.10.07 01:17  

Автор вопроса:  Sergey | ICQ: 303752501 
Привет ) подскажите как написать функцию поиска строки в файле и ее замены, пример, есть файл 1.bin в нем есть строка Sergey её необходимо найти и заменить на Сергей, не могу понять как реализовать. Была бы одна строка не проблема, просто таких строк которые нужно заменить гдето 10000 строк. Спасибо

Ответить

  Ответы Всего ответов: 12  

Номер ответа: 1
Автор ответа:
 AndreyMp



ICQ: 237822510 

Вопросов: 28
Ответов: 1182
 Профиль | | #1 Добавлено: 16.10.07 08:22
1. Mid, InStr
2. Replace
Второй вариант даже скорее наверно будет, если файл целиком считать.

Ответить

Номер ответа: 2
Автор ответа:
 Sergey



ICQ: 303752501 

Вопросов: 1
Ответов: 6
 Профиль | | #2 Добавлено: 16.10.07 11:19
А точнее? листинга готового нет? или алгоритма

Ответить

Номер ответа: 3
Автор ответа:
 Sergey



ICQ: 303752501 

Вопросов: 1
Ответов: 6
 Профиль | | #3 Добавлено: 16.10.07 11:21
и еще текст который ищем и меняем он в юникоде

Ответить

Номер ответа: 4
Автор ответа:
 Andrew_nik



Вопросов: 15
Ответов: 30
 Профиль | | #4 Добавлено: 16.10.07 15:08
Набросал по быстрому - смотри

Option Explicit
Option Base 1

Public Sub SS()
Dim UsrArr() As String, j As Long, s As String, EmptyStr As String

ReDim UsrArr(1)
'open the txt file for reading
Open ";D:\New\my.txt" For Input As #1
      While Not EOF(1)
            ReDim Preserve UsrArr(j + 1)
            Line Input #1, s
            UsrArr(j) = s
            j = j + 1
        Wend
Close #1
     
'Clear the txt file
 EmptyStr = ""
 Open MsgNames(i) For Output As #1
      While Not EOF(1)
      Line Input #1, EmptyStr
     Wend
 Close #1

'Look in the string for Sergei and repalce it with Сергей
For j = LBound(UsrArr) To UBound(UsrArr)
  On Error Resume Next
  If InStr(1, UsrArr(j), "Сергей";) > 0 Then
     UsrArr(j) = Replace(UsrArr(j), "Sergei", "Сергей";)
  End If
Next

'open the txt file for writing
Open ";D:\New\my.txt" For Output As #1
   For j = LBound(UsrArr) To UBound(UsrArr)
         Print #1, UsrArr(j)
    Next
Close #1

End Sub

Ответить

Номер ответа: 5
Автор ответа:
 Andrew_nik



Вопросов: 15
Ответов: 30
 Профиль | | #5 Добавлено: 16.10.07 16:52
Немного подправил - отправляй в работу.
Путь, где должен лежать файл: - D:\New\12.txt

Option Explicit
Option Base 1

Public Sub SS()
Dim UsrArr() As String, j As Long, s As String, EmptyStr As String
j = 1
ReDim UsrArr(1)
'open the txt file for reading
Open ";D:\New\12.txt" For Input As #1
      While Not EOF(1)
            ReDim Preserve UsrArr(j + 1)
            Line Input #1, s
            UsrArr(j) = s
            j = j + 1
        Wend
Close #1
      
'Clear the txt file
 EmptyStr = ""
 Open ";D:\New\12.txt" For Output As #1
      While Not EOF(1)
      Line Input #1, EmptyStr
     Wend
 Close #1

'Look in the string for Sergey and repalce it with Сергей
For j = LBound(UsrArr) To UBound(UsrArr)
  On Error Resume Next
  If InStr(1, LCase(UsrArr(j)), "sergey";) > 0 Then
     UsrArr(j) = Replace(LCase(UsrArr(j)), "sergey", "Сергей";)
  End If
Next

'open the txt file for writing
Open ";D:\New\12.txt" For Output As #1
   For j = LBound(UsrArr) To UBound(UsrArr)
         Print #1, UsrArr(j)
    Next
Close #1

End Sub


Ответить

Номер ответа: 6
Автор ответа:
 Sergey



ICQ: 303752501 

Вопросов: 1
Ответов: 6
 Профиль | | #6 Добавлено: 16.10.07 21:05
А если фаил не txt a bin? и как чтобы можно было фаил выбирать и сохранять с другим именем

Ответить

Номер ответа: 7
Автор ответа:
 Sergey



ICQ: 303752501 

Вопросов: 1
Ответов: 6
 Профиль | | #7 Добавлено: 16.10.07 21:07
и 2 кнопки, одну найти вторую заменить

Ответить

Номер ответа: 8
Автор ответа:
 Sergey



ICQ: 303752501 

Вопросов: 1
Ответов: 6
 Профиль | | #8 Добавлено: 16.10.07 21:49
Размер файла 20 мегабайт в нем надо поменять примерно 8000 строк, все строки в юникоде, нужно чтобы прога находила адрес строки(к примеру sergey 0x003D340) и меняла по этому адресу на (Сергей 0x003d340) в юникоде не нарушая структуру самого файла. Прога нужна для работы просто файлов много и руками менять не круто а строки в них одни и те же

Ответить

Номер ответа: 9
Автор ответа:
 BUMM ®



Вопросов: 8
Ответов: 482
 Профиль | | #9 Добавлено: 16.10.07 22:38
 если тебе нужен готовый проэкт, укажи цену, которую ты готов заплатить.
Если хочешь делать сам, то Andrew_nik подсказал достаточно.

Ответить

Номер ответа: 10
Автор ответа:
 Sergey



ICQ: 303752501 

Вопросов: 1
Ответов: 6
 Профиль | | #10 Добавлено: 17.10.07 01:18
как в юникоде искать? так как описал ищет ANSI

Ответить

Номер ответа: 11
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #11 Добавлено: 17.10.07 02:33
InstrB ?

Ответить

Номер ответа: 12
Автор ответа:
 Агент



Вопросов: 3
Ответов: 16
 Профиль | | #12 Добавлено: 17.10.07 14:42
если тебе нужен готовый проэкт, укажи цену, которую ты готов заплатить.


Такой программе цена 5 рублей :)

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам