Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
6 / 6 / 1
Регистрация: 21.01.2012
Сообщений: 92
1

Удаление текста до первого вхождения слова из текстового файла

13.04.2013, 19:13. Показов 1793. Ответов 5
Метки нет (Все метки)

Добрый день!
Необходима помощь в доработке кода на VB. Удаление текста до первого вхождения слова "Привет" из текстового файла(txt). Есть наработки, НО если в тексте слово "Привет" встречается несколько раз то удаляется текст до последнего вхождения слова, что не есть хорошо. Т.е. нужно следующее:
Есть текст в файле:
как
так
Привет
если
тогда
Привет
куда
зачем
После выполнения кода должно остаться:
Привет
если
тогда
Привет
куда
зачем
Сейчас у меня остается:
Привет
куда
зачем

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
    Dim st As String, pos As Long
    Open "C:\CTI\LOG\CtiDriver.2013-04-13.log" For Binary As #1
    st = Space$(LOF(1))
    Get #1, , st
    Close 1
    pos = InStr(1, st - 1, "Привет")
    st = Right$(st, pos)
    Kill "C:\CTI\LOG\CtiDriver.2013-04-13.log"
    Open "C:\CTI\LOG\CtiDriver.2013-04-13.log" For Binary As #1
    Put #1, , st
    Close 1
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.04.2013, 19:13
Ответы с готовыми решениями:

Удаление определённого слова из текстового файла
Добрый день. Помогите пожалуйста, в 2.txt удалить определенное слово: TR aboutkoi, оставить все,...

Ввести строку и два слова, заменить все вхождения первого слова на второе
Возможно ли создание такой программы: Ввести строку и два слова, заменить все вхождения первого...

Разработать программу, которая изымает из второго текста все вхождения слов первого текста
Задано два текста, слова в которых разделены пробелами и знаками препинания. Разработать программу,...

Разработать программу, которая изымает из второго текста все вхождения слов первого текста
Пожалуйста помогите!!! Задано два текста, слова в которых разделены пробелами и знаками...

5
Заблокирован
13.04.2013, 21:24 2
Цитата Сообщение от mazahaker-ncux Посмотреть сообщение
pos = InStr(1, st - 1, "Привет")
Зачем (и как) из строки понадобилось вычитать единицу?
1
es geht mir gut
11494 / 4727 / 1181
Регистрация: 27.07.2011
Сообщений: 11,433
13.04.2013, 21:36 3
Лучший ответ Сообщение было отмечено как решение

Решение

Цитата Сообщение от mazahaker-ncux Посмотреть сообщение
А можно немного подробнее?
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
    Dim st As String, pos As Long
    Open "C:\CTI\LOG\CtiDriver.2013-04-13.log" For Binary As #1
    st = Space$(LOF(1))
    Get #1, , st
    Close 1
    pos = InStr(1, st, "Привет")
    'st = Right$(st, pos)
    st = Mid(st, pos, Len(st) - pos)
    Kill "C:\CTI\LOG\CtiDriver.2013-04-13.log"
    Open "C:\CTI\LOG\CtiDriver.2013-04-13.log" For Binary As #1
    Put #1, , st
    Close 1
2
6 / 6 / 1
Регистрация: 21.01.2012
Сообщений: 92
13.04.2013, 21:42  [ТС] 4
Цитата Сообщение от Апострофф Посмотреть сообщение
Зачем (и как) из строки понадобилось вычитать единицу?
а вот сейчас и думаю, а действительно ЗАЧЕМ? ах да....первоначально мне необходима была еще предыдущая строка перед встречаемым словом, и если из строки вычесть единицу, то удалялись данные с предыдущей строки, где встречалось слово "Привет"
0
Заблокирован
13.04.2013, 21:42 5
Visual Basic
1
8:   st = Mid$(st, pos)
2
6 / 6 / 1
Регистрация: 21.01.2012
Сообщений: 92
13.04.2013, 21:44  [ТС] 6
Всем огромное спасибо за помощь! Очень помогли)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.04.2013, 21:44

Добавить в конец первого текстового файла содержимое второго текстового файла
Даны два текстовых файла. Добавить в конец первого файла содержимое второго файла.

Удалить из каждого третьего слова заданного текста слова все предыдущие вхождения последней буквы
Дана последовательность слов.Напечатать все слова,предварительно преобразив каждое третье по...

Удаление первого вхождения заданного элемента из списка
Написать функцию delete :: Eq a => a -> -> , удаляющую первое вхождение заданного элемента из...

Удаление первого вхождения второй строки в первую
Даны две строки. Удалить в первой строке первое вхождение второй строки. Мои наработки: import...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru