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

Заранее спасибо.
...
Рейтинг: 0 / 0
07.08.2013, 10:18
    #38357833
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление части строки
Можно, конечно.
Если вам нужна подсказка, какими функциями воспользоваться, как перебрать файлы, и т.п., задавайте конкретные вопросы.
Если полностью скрипт нужно написать ЗА вас - так и пишите.
...
Рейтинг: 0 / 0
07.08.2013, 10:20
    #38357838
Kenoby666
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление части строки
Если есть скрипт, то буду признателен.
...
Рейтинг: 0 / 0
07.08.2013, 10:26
    #38357850
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление части строки
скрипта нет, но можно написать, вам для рабочих нужд?
...
Рейтинг: 0 / 0
07.08.2013, 10:38
    #38357874
Kenoby666
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление части строки
Да, для рабочих.
Изменённые файлы потом будут грузиться в систему.
...
Рейтинг: 0 / 0
07.08.2013, 12:05
    #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
07.08.2013, 12:19
    #38358090
Kenoby666
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление части строки
Спасибо.
Запустил скрипт в экселе. Но он обработал только первую строку в файлах и остановился.
...
Рейтинг: 0 / 0
07.08.2013, 12:24
    #38358103
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление части строки
Остановился с ошибкой?
...
Рейтинг: 0 / 0
07.08.2013, 12:29
    #38358112
Kenoby666
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление части строки
В том и прикол, что без ошибки. Как будто отработал корректно (ошибок нет).
Во вложении реальный файл.
...
Рейтинг: 0 / 0
07.08.2013, 12:32
    #38358115
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление части строки
вот блин
у вас там невиндовые концы строк, стандартная функция Input их не понимает.
...
Рейтинг: 0 / 0
07.08.2013, 12:33
    #38358118
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление части строки
А реальные файлы не сильно огромного размера?
...
Рейтинг: 0 / 0
07.08.2013, 12:34
    #38358120
Kenoby666
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление части строки
О! :(
Даже не знал.
И как быть?
...
Рейтинг: 0 / 0
07.08.2013, 12:35
    #38358121
Kenoby666
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление части строки
Файлы по 50-150 строк примерно.
...
Рейтинг: 0 / 0
07.08.2013, 13:01
    #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
07.08.2013, 13:45
    #38358240
Kenoby666
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление части строки
Работает :)
Спасибо.
...
Рейтинг: 0 / 0
07.08.2013, 14:08
    #38358285
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление части строки
вознаграждение могу принять на телефон )
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Удаление части строки / 16 сообщений из 16, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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