powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Удаление части строки
16 сообщений из 16, страница 1 из 1
Удаление части строки
    #38357822
Kenoby666
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!
Есть текстовые файлы с содержанием вида:
Иванов|1234/4587|01.01.2001
Петров|9050/4587|01.01.2001
Таких файлов куча.
Можно ли удалить скриптом (или ещё как-то) цифры слева от слэша (/) и до вертикально черты (|) ? И слэш (/) тоже надо удалять.
Чтобы получилось вот так:
Иванов|4587|01.01.2001
Петров|4587|01.01.2001

Заранее спасибо.
...
Рейтинг: 0 / 0
Удаление части строки
    #38357833
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно, конечно.
Если вам нужна подсказка, какими функциями воспользоваться, как перебрать файлы, и т.п., задавайте конкретные вопросы.
Если полностью скрипт нужно написать ЗА вас - так и пишите.
...
Рейтинг: 0 / 0
Удаление части строки
    #38357838
Kenoby666
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если есть скрипт, то буду признателен.
...
Рейтинг: 0 / 0
Удаление части строки
    #38357850
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
скрипта нет, но можно написать, вам для рабочих нужд?
...
Рейтинг: 0 / 0
Удаление части строки
    #38357874
Kenoby666
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, для рабочих.
Изменённые файлы потом будут грузиться в систему.
...
Рейтинг: 0 / 0
Удаление части строки
    #38358065
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
Dim Path As String, FileName As String, Row As String, i1 As Integer, i2 As Integer
Path = "c:\"


FileName = Dir(Path + "*.txt")
While FileName <> ""
  Open Path + FileName For Input As #1
  Open Path + Left$(FileName, Len(FileName) - 4) + "_out.txt" For Output As #2
  Do Until EOF(1)
    Input #1, Row
    i1 = InStr(1, Row, "|")
    If i1 > 0 Then
      i2 = InStr(i1 + 1, Row, "/")
      If i2 > 0 Then Row = Left$(Row, i1) + Mid$(Row, i2 + 1)
    End If
    Print #2, Row
  Loop
  Close #1
  Close #2
  FileName = Dir
Wend



вот этот код, правда в vbs-скрипте он работать не будет, можете выполнить его в любом приложении Офиса в VBA
...
Рейтинг: 0 / 0
Удаление части строки
    #38358090
Kenoby666
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо.
Запустил скрипт в экселе. Но он обработал только первую строку в файлах и остановился.
...
Рейтинг: 0 / 0
Удаление части строки
    #38358103
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Остановился с ошибкой?
...
Рейтинг: 0 / 0
Удаление части строки
    #38358112
Kenoby666
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В том и прикол, что без ошибки. Как будто отработал корректно (ошибок нет).
Во вложении реальный файл.
...
Рейтинг: 0 / 0
Удаление части строки
    #38358115
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот блин
у вас там невиндовые концы строк, стандартная функция Input их не понимает.
...
Рейтинг: 0 / 0
Удаление части строки
    #38358118
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А реальные файлы не сильно огромного размера?
...
Рейтинг: 0 / 0
Удаление части строки
    #38358120
Kenoby666
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
О! :(
Даже не знал.
И как быть?
...
Рейтинг: 0 / 0
Удаление части строки
    #38358121
Kenoby666
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Файлы по 50-150 строк примерно.
...
Рейтинг: 0 / 0
Удаление части строки
    #38358162
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тогда вот так:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
Dim Path As String, FileName As String, Row As String, i1 As Integer, i2 As Integer
Path = "c:\"


FileName = Dir(Path + "*.txt")
While FileName <> ""
  Open Path + FileName For Input As #1
  Open Path + Left$(FileName, Len(FileName) - 4) + "_out.txt" For Output As #2
  Do Until EOF(1)
    Input #1, Row
    i2 = InStr(1, Row, "/")
    While i2 > 0
      i1 = InStrRev(Row, "|", i2)
      Row = Left$(Row, i1) + Mid$(Row, i2 + 1)
      i2 = InStr(i1, Row, "/")
    Wend
    Print #2, Row
  Loop
  Close #1
  Close #2
  FileName = Dir
Wend
...
Рейтинг: 0 / 0
Удаление части строки
    #38358240
Kenoby666
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Работает :)
Спасибо.
...
Рейтинг: 0 / 0
Удаление части строки
    #38358285
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вознаграждение могу принять на телефон )
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Удаление части строки
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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