Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Поиск и выборка из текстового файла Добавлено: 05.06.09 09:06  

Автор вопроса:  Michael Melchakov | ICQ: 302272185 
Люди добрые, подскажите, как из, так скажем текстовго файла (правда расширение немного другое, но это не суть) произвести выборку, т.е. найти строчку содержащую определенное слово, после этого прочитать и обработать символы находящиеся после этого слова.
Пример, типа:

ава
вавав
Date: 28.12.2004
fdf

Соответственно найти где находится строчка со словом "Date: " и разобрать дату на число месяц и год

Ответить

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

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



ICQ: 301746136 

Вопросов: 28
Ответов: 549
 Web-сайт: okazani.ru
 Профиль | | #1
Добавлено: 05.06.09 10:36
Подключи Microsoft VBScript Regular
  1. Dim myRegExp As New RegExp
  2. myRegExp.MultiLine = True
  3. myRegExp.Global = False
  4. myRegExp.IgnoreCase = True
  5. myRegExp.Pattern = "(.*)Date: ([0-9]{2}).([0-9]{2}).([0-9]{2})"
  6. Dim colMatches As MatchCollection
  7. Dim testString As String
  8. testString = "TEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTDate: 12.13.14TEXTTEXTTEXTTEXTTEXTTEXT"
  9. Set colMatches = myRegExp.Execute(testString)
  10. Debug.Print "День: " & colMatches(0).SubMatches(1)
  11. Debug.Print "Месяц: " & colMatches(0).SubMatches(2)
  12. Debug.Print "Год: " & colMatches(0).SubMatches(3)

Ответить

Номер ответа: 2
Автор ответа:
 Imperial Kashak



ICQ: 479713821 

Вопросов: 10
Ответов: 57
 Профиль | | #2 Добавлено: 05.06.09 13:38
А в самом VB разве нельзя сделать поиск да выборку кагбэ Mid после символа определённого? Хотя исходник получается больше...

Ответить

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



ICQ: 301746136 

Вопросов: 28
Ответов: 549
 Web-сайт: okazani.ru
 Профиль | | #3
Добавлено: 05.06.09 13:44
Как бы зачем это нужно? Можешь начинать писать свою ОС, хотя исходник тоже больше получается чуть-чуть

Ответить

Номер ответа: 4
Автор ответа:
 MegaÐefender



Вопросов: 19
Ответов: 313
 Web-сайт: safetyAV.narod.ru
 Профиль | | #4
Добавлено: 05.06.09 14:00

[/code] On Error GoTo TheEnd
Dim inpData as String
Dim ff as Integer
open filename.ext for Binary Access Read as #ff
Do
Get #ff, , inpData
if instr(inpData,";Date";)=True Then MsgBox inpData
Loop
TheEnd:
Close #ff [code]

Ответить

Номер ответа: 5
Автор ответа:
 MegaÐefender



Вопросов: 19
Ответов: 313
 Web-сайт: safetyAV.narod.ru
 Профиль | | #5
Добавлено: 05.06.09 14:03
Чёрт, вместо do - do while eof (ff), "ate" - "date"

Ответить

Номер ответа: 6
Автор ответа:
 MegaÐefender



Вопросов: 19
Ответов: 313
 Web-сайт: safetyAV.narod.ru
 Профиль | | #6
Добавлено: 05.06.09 14:10
А ещё можно msgbox cstr(right(inpdata, 8))

Ответить

Номер ответа: 7
Автор ответа:
 Imperial Kashak



ICQ: 479713821 

Вопросов: 10
Ответов: 57
 Профиль | | #7 Добавлено: 05.06.09 14:33
Как бы зачем красить кота, если из него жираф всё равно не получится?
Вот выше был метод неплохой. Да и проще.

Ответить

Номер ответа: 8
Автор ответа:
 Michael Melchakov



ICQ: 302272185 

Вопросов: 12
Ответов: 31
 Профиль | | #8 Добавлено: 05.06.09 15:46
Не получается, что то... Может я слишком ламер :)
Делаю так Project Add Reference->Закладка COM->Microsoft VBScript Expressions 1.0 (пробовал и 5.5).

Ошибка в строке ";Dim myRegExp As New RegExp" - на RegExp
и в этой ";Dim colMatches As MatchCollection" - на MatchCollection.

В прошлый раз забыл уточнить версию Visual Basic 2005 :(

Ответить

Номер ответа: 9
Автор ответа:
 Arvitaly



ICQ: 301746136 

Вопросов: 28
Ответов: 549
 Web-сайт: okazani.ru
 Профиль | | #9
Добавлено: 05.06.09 21:53
Блин ну так и пиши в форум .NET

Ответить

Номер ответа: 10
Автор ответа:
 Imperial Kashak



ICQ: 479713821 

Вопросов: 10
Ответов: 57
 Профиль | | #10 Добавлено: 07.06.09 22:15
А другие методы не пробовал юзать?

Ответить

Страница: 1 |

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



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