Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Поиск текста в файлах 
:(
    Опции темы
NovichokVB
  Дата 8.11.2005, 15:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 8.11.2005

Репутация: нет
Всего: нет



Всем привет!

Я НЕ программист. Но в связи с "производственной необходимостью" мне надо написать макросик на вб или вба (последний я уже чуть-чуть знаю в части excel).

Постановка задачи. smile В текстовых файлах с разными именами нужно найти некий текст. Важное уточнение - некоторые файлы не имеют расширения и в дос-кодировке. В случае, если он найден, то считать в переменную некую совокупность символов из файла, при этом совокупность эта - 4 цыфры (или 4х значное число, т.е. она отделена от других символов пробелами). Пускай это переменная regn. Далее находим еще один текст, и уже считываем слово* (неопределенное кол-во символов, но только буквы кириллицы) и еще 4 цифры** (*месяц и **год) = Data. Переименовываем файл в соответствии с полученными переменными Regn-Data.txt

Как это сделать? smile

Мне бы только хотя бы саму реализацию поиска текста в файлах (в вин и дос кодировках) и считывания совокупности символов из файла, имеющих заранее известные атрибуты (напр, 4 цифры, или 7 цифр, имеющих начало 0409, т.е. "0409*") smile

Надеюсь, что задача ясна, и вы не станете надо мной подтрунивать - мол это очень просто для нас и писать ничего не будем... smile
PM MAIL   Вверх
cardinal
Дата 8.11.2005, 17:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 19
Всего: 99



Вот тут думаю полезные процедуры
http://vb-tec.de/dateien.htm
http://www.dutchthewiz.com/vb/files/
А тут можно сказать то, что тебе надо
http://www.vb-helper.com/howto_find_string.html




--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
NovichokVB
Дата 8.11.2005, 17:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 8.11.2005

Репутация: нет
Всего: нет



cardinal Спасибо! smile

Вот тока мне чуть-чуть английский подучить (проф) + выучить немецкий и все будет ОК smile
PM MAIL   Вверх
cardinal
Дата 8.11.2005, 22:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 19
Всего: 99



Цитата(NovichokVB @ 8.11.2005, 15:24)
Вот тока мне чуть-чуть английский подучить...

Без английского в программировании далеко не уедешь, поэтому давай...


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
NovichokVB
Дата 8.11.2005, 22:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 8.11.2005

Репутация: нет
Всего: нет



Цитата(cardinal @ 8.11.2005, 22:26)
Цитата(NovichokVB @ 8.11.2005, 15:24)
Вот тока мне чуть-чуть английский подучить...

Без английского в программировании далеко не уедешь, поэтому давай...

Пасиб за совет! smile
PM MAIL   Вверх
Voldemar2004
Дата 9.11.2005, 18:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1650
Регистрация: 25.12.2004

Репутация: 7
Всего: 23



Работа с текстовым файлом
Текстовые файлы встречаются нам повсюду. И этот пример покажет вам основные методы работы с текстовыми файлами - создание/редактирование, чтение/сохранение, поиск слова в тексте.

Создайте стандартный проект и наклейте на него текст-бокс (TextBox) с именем "txtText", укажите у него свойство "MultiLine" равным "True" - "Истина" и две коммандные кнопки (CommandButton) с именами "btnOpen" и "btnSave". Свойство "Caption" укажите у "btnOpen" - "Открыть", а у "btnSave" - "Сохранить". Сделайте двойной клик по кнопке "Сохранить" и в программный код впишите
Код
Open "c:\temp.txt" For Output As #1
Print #1, txtText.Text
Close #1


Пояснение: "Open" это открытие файла "c:\temp.txt" это имя открываемого файла, если его нет, то он будет создан, если есть, то весь текст в этом файле будет очищен и заменём текстом из "txtText". "For output as #1" = "Для выхода под номером 1" т.е открываем файл под порядковым номером один, для записи информации в него. Вместо единицы можно указываль любое число от 1 до 500 - это является обязательным параметром. Зато #'ом можно пренебречь - он как бы для удобства, сразу будет понятно, что эта единица или другое число относится к файлу, а не к какой-нибудь переменной, хотя в некоторых местах его нельзя использовать!

"Print #1, txtText" - "Print"(Печать) - Метод позволяющий влить содержимое "txtText" в файл под номером один.

"Close #1" - это для закрытия текстового файла, так как если он не будет закрыт, то пока программа не будет закрыта, он не будет доступен другим программам.

Всё! С этой частью мы разобрались. Запустите проект, вводите какую-нибудь информацию в "txtText" и нажимайте кнопку "Сохранить".

Теперь у вас на диске "C:" создан файл с именем "temp.txt". Но сохранить сохранили, надо же ещё и прочесть...

Чтение файла немного посложнее... Делайте двойной клик по кнопке "Открыть" и вписывайте
Код
Open "c:\temp.txt" For Input As #1
Do Until EOF(1) 
Line Input #1, txt 
alltxt = alltxt + txt + vbCrLf 
Loop 
Close #1
txtText.Text = alltxt
Пояснение:: "Open "c:\temp.txt"" - это тоже самое, что и при сохранении, а "For Input As #1" - это "Для входа под номером 1" т.е только чтение файла.

Do Until EOF(1) - "Читать, пока не будет достигнуть конец файла" т.е считывать построчно пока не будет достигнута последняя строка в читаемом файле и это как раз та самая ситуация, в которой нельзя указывать знак # в скобках.

Line Input #1, txt - "Линия входа файла под номером 1 = переменной txt"

alltxt = alltxt + txt + vbCrLf - переменная alltxt равна самой себе, плюс переменная txt. А vbCrLf - это уникальная константа, которая заменят "Chr(13)+Chr(10)" т.е переход на новую строку. Если мы её не вставим, то текстовый файл будет одной строкой в txtText.

Close #1 - закроем файл.

txtText.Text = alltxt - здесь выливаем в текст-бокс открытый файл, содержащийся в переменной alltxt.

Всё! Можете проверить.

Сохранять и открывать файлы мы научились...а как искать текст в окне...чем же наша программа хуже обычного блокнота Windows:)

Наклеем на форму ещё один текст-бокс с именем "txtSearch" и ещё одну кнопку с именем "btnSearch" и свойством "Caption" равным "Поиск"

Сделаем двойной клик по форме и в раздел "General Declarations" впишем "Dim P As Integer" - это переменная, которая будет содержать в себе позицию курсора в текстовом поле. В событие Form_Load впишите "P = 1".

Теперь сделаем двойной клик по кнопке "Поиск" и в программный код впишем
Код
' Если искомое слово присутствует то...
If InStr(P, txtText.Text, txtSearch.Text) <> 0 Then 
' Текстовое поле с главным текстом получает фокус:)
txtText.SetFocus
'Начинаем выделять слово...
txtText.SelStart = InStr(P, txtText.Text, txtSearch.Text) - 1 
' Завершаем выделение
txtText.SelLength = Len(txtSearch.Text) 
' Изменяем переменную на позицию курсора
P = InStr(P, txtText.Text, txtSearch.Text) + Len(txtSearch.Text) 
' Если в тексте больше нет искомого слова, то выводим об этом сообщение.
Else 
MsgBox "Искомое слово не найдено"
End If
Давно скачал страничку, адрес не помню, в общем то, что надо.

Это сообщение отредактировал(а) Voldemar2004 - 9.11.2005, 18:29


--------------------
i_i 
(';') 
(V)

user posted image
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB6 | Следующая тема »


 




[ Время генерации скрипта: 0.0474 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.