Форум программистов, компьютерный форум, киберфорум
Наши страницы
Visual Basic
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
ramsqqqq
0 / 0 / 0
Регистрация: 21.05.2014
Сообщений: 10
1

Найти определенное слово в тексте и записать все найденные значения в другой файл

26.05.2014, 15:43. Просмотров 1060. Ответов 6
Метки нет (Все метки)

Есть txt файл со списком телефонов, где записаны телефон 8919... и т.д.
Ищем слово "телефон" в тексте, далее смотрим значение текста (номер телефона) после слова телефон "+7" или "8"
then ставлю счетчик i=i+1 все вычитывает правильно
если ставлю res = Mid(Stri$, 43, 12) вытаскивает(записывает) только один телефон и все
как сделать чтоб вытащил(записал) ВСЕ номера из списка?

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Dim i As Long
Dim j As Long
fi% = FreeFile
   Open "d:\report.txt" For Input As #fi%
 i = 0
 k = 0
 
  Do Until EOF(fi%)
      Line Input #fi%, Stri$
      Stri$ = Trim$(Stri$)
      Words = Split(Stri$, " ")
      
      For j = 0 To UBound(Words, 1)
           If CStr(Words(j)) = "телефон" Then If InStr(1, Stri$, "+7", 1) Or InStr(1, Stri$, "8", 1) Then res = Mid(Stri$, 43, 12)
           
      Next j
  Loop
   Close fi%
 Open "d:\file.txt" For Output As #1
 Print #1, res
      Close #1
 End Sub
Добавлено через 44 минуты
причем записывается последний телефон в списке, как будто бы переписывает все значения и оставляет только последнее
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.05.2014, 15:43
Ответы с готовыми решениями:

Дан файл. Записать в другой файл только те строки, которые начинаются с заданной буквы
Помогите пожалуйста.))Дан файл. Записать в другой файл только те строки,...

Есть текстовый файл, первый символ каждой строки записать в другой текстовый файл
Есть текстовый файл, первый символ каждой строки записать в другой текстовый...

Дан файл, содержащий буквы и цифры. Записать в другой файл цифры из этого файла
Дан файл, содержащий буквы и цифры.Записать в другой файл цифры из этого файла....

Записать из файла в другой файл числа, кратные 3
Дан файл, содержащий случайные целые числа. Записать из него в другой файл...

Нужно найти самое короткое и длинное слово в тексте
Нужно найти самое короткое и длинное слово в тексте. КТО НИБУДЬ ЗНАЕТЬ КАК...

6
Казанский
14307 / 5925 / 1570
Регистрация: 24.09.2011
Сообщений: 9,336
26.05.2014, 16:08 2
Лучший ответ Сообщение было отмечено The trick как решение

Решение

ramsqqqq, наверно вместо res = Mid(Stri$, 43, 12) надо
Visual Basic
1
res = res & vbcrlf & Mid(Stri$, 43, 12)
0
ramsqqqq
0 / 0 / 0
Регистрация: 21.05.2014
Сообщений: 10
26.05.2014, 16:15  [ТС] 3
работает спасибо!
0
KoGG
5278 / 1351 / 320
Регистрация: 23.12.2010
Сообщений: 2,019
Записей в блоге: 1
26.05.2014, 16:19 4
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Dim i As Long
Dim j As Long, fi%, fi2%, k%, Stri$, res$
fi% = FreeFile
Open "d:\report.txt" For Input As #fi%
fi2% = FreeFile
Open "d:\file.txt" For Output As #fi2%
i = 0
k = 0
Do Until EOF(fi%)
    Line Input #fi%, Stri$
    Stri$ = Trim$(Stri$)
    If InStr(1, Stri$, "телефон", 1) Then
        k = InStr(1, Stri$, "+7", 1)
        If k = 0 Then k = InStr(1, Stri$, "8", 1)
        If k > 0 Then
            res = Mid(Stri$, k + 2, 12)
            Print #fi2%, res
        End If
    End If
Loop
Close #fi%
Close #fi2%
0
Антихакер32
Заблокирован
26.05.2014, 16:33 5
Visual Basic
1
2
3
4
5
6
7
8
9
Set objRegExp = CreateObject("VBScript.RegExp")
 objRegExp.Pattern = "abc"
 TempStr = "abc 123 abc"
 MsgBox TempStr 'исходная строка
 Result = objRegExp.Replace(TempStr, "def")
 MsgBox Result
 objRegExp.Global = True
 Result = objRegExp.Replace(TempStr, "def")
 MsgBox Result
Добавлено через 53 секунды
http://safezone.cc/resources/primery-vbs-obekt-vbscript-regexp.23131/
0
ramsqqqq
0 / 0 / 0
Регистрация: 21.05.2014
Сообщений: 10
26.05.2014, 16:41  [ТС] 6
кому нужно пользуйтесь все работает!!!
0
Антихакер32
Заблокирован
26.05.2014, 19:02 7
Visual Basic
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
Option Explicit
'
'(c) FelixMacintosh ,2014
'Поиск телефона
'
Dim sFile$, fso As Object
Sub i()
    Dim s$
    s = s & "//Есть txt файл со списком телефонов, где записаны телефон 8919... и т.д.//"
    s = s & "//Ищем слово ''телефон'' в тексте, далее смотрим значение текста (номер телефона) после слова телефон ''+7''"
    s = s & "//then ставлю счетчик i=i+1 все вычитывает правильно"
    s = s & "//телефон неизвестен +7(800)123 456 78"
    s = s & "//если ставлю res = Mid(Stri$, 43, 12) вытаскивает(записывает) только один телефон и все"
    s = s & "//как сделать чтоб вытащил(записал) ВСЕ номера из списка?"
    s = s & "//телефон сбербанка +7(800)555 555 50"
    fso.CreateTextFile(sFile).Write Replace(s, "//", vbCrLf)
End Sub
 
Private Sub Form_Activate()
    Dim TempStr$, Result$, f&, key$, lm&, i1&, Ab$, j$()
    ChDir App.Path 'Заходим в свою папку
    sFile = InputBox("Введите имя файла" & _
    vbCrLf & "..можете согласится и нажать OK", , "номера телефонов.tel")
    If Len(sFile) Then Else Exit Sub 'Нажата Cancel
    Set fso = CreateObject("Scripting.FileSystemObject")
    If fso.FileExists(sFile) Then Else i 'Создаём тестовый файл
    '=================================
    TempStr = fso.OpenTextFile(sFile).ReadAll
    key = "+7?###?### ### ##": lm = Len(key)
    Call cls: Print "Найденные телефоны:"
    For f = 1 To Len(TempStr) - lm + 1
        Result = Mid$(TempStr, f, lm)
        If Result Like key Then
            Ab = Split(TempStr, Result, 2)(0)
            j = Split(Ab, vbCrLf): Ab = j(UBound(j))
            Print Ab & vbTab & Result
        End If
    Next
End Sub
0
26.05.2014, 19:02
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.05.2014, 19:02

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

Записать в массив все найденные слова в тексте
Всем привет. У меня есть проект на котором стоит webBrowser1 Мне нужно на...

Записать в другой файл в столбик все слова, встречающиеся в тексте
Задача (алфавитно-частотный словарь). В файле записан текст. Нужно...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru