1. Пишу небольшую програмку для запуска файлов по расписанию, нечто вроде планировщика. В проге имеется ЛистБокс, куда я загружаю строку след. содержания : время запуска - путь к файлу. В проге имеется кнопка ПУСК. Как сделать, чтобы после нажатия кнопки, в списке стали последовательно, в соответствии с установленным временем запускаться файлы? При этом не выделяя элементы в списке и ничего с ними не делая. Если нужно - опишу ситуацию подробнее.
2. Имеется база данных в виде текстового файла. БД - фИО, адреса и т.п... Хранится в обычном текст. файле. Как прикрутить к своей СУБД поиск по этому текст. файлу? На ВБ6
RDman,
1. Непонятно, в чем затруднение. Подробнее.
2. Текстовый файл - это не БД Что такое "своя СУБД"?
[Ответ]
RDman 22:51 29.07.2007
Неясно выразился, похоже.))
По пункту 1.
блин, как бы объяснить.)) Ну на примере плейлиста винампа. Я набиваю в листбокс строки с путями к файлам, как это все запустить на исполнение?
Более наглядно, попытаюсь объяснить. Имеется список заданий в Листбоксе. Задача - открывать файлы, по очереди в списке и по установленному юзером времени. От юзера надо всего лишь запустить процесс. Выражение примерно такое:
12:00:00 - C:\1.txt 'должен открыться, затем прога ожидает след. в очереди
12.10:05 - С:\2.doc ' файл открылся и прога переходит на след. в очереди задание, ждет время.
13:00:00 - ...' очередное задание и т.д.
т.е. юзер должен набить в листбокс задания, запустить кнопкой процесс и все...далее прога должна исполнять все сама. Также дать возможность юзеру поставить на повтор этот процесс, чтобы по наступлению установленного времени (например, на след. день) процесс повторился снова. И еще, по-возможности, редактировать (удалять-добавлять-переносить по очереди) задания, не останавливая сам процесс. Короче эта прога "своеобразный плей-лист"..)) В этом у меня трудность возникла ))
По 2му пункту. Нашел на VBnet.ru интересный код, для создания своей базы данных в обычном текстовом файле. Единственно, что неясно - как организовать поиск в нем. Код привожу ниже с описанием автора.
Сообщение от :
Пример работы с текстовой БД
Этот пример удачно демонстрирует организацию работы со своей текстовой базой данных.
В один обычный бытовой текстовый файл можно записать однострочный или многострочный текст. Если придумать оригинальный признак окончания записи, то можно вообще будет записывать любую информацию, например файлы, содержащие все символы из стандартной таблицы.
В нашем случае признаком конца записи является chr$(175), который в тексте не встречается и с клавиатуры не набирается.
Итак, приступим... Запишем данные из двух текстбоксов в файл и считаем обратно...
Расположим на форме две кнопки и два поля текста
Command1 - "Чтение"
Command2 - "Запись".
Txt1 - одно поле
Txt2 - второе поле
У текстовых полей установите свойство MultiLine = true для многострочности Dim Massiv$(0 To 100), Stroka$
'... ''''чтение данных
Private Sub Command1_Click()
Dim scet2%, dd%
On Error Resume Next
Open "text.txt" For Input As #1
Stroka = Input$(LOF(1), 1)
Close #1
'заполнение массива Massiv()
While InStr(e + 1, Stroka, Chr$(175)) > 0
e = InStr(e + 1, Stroka, Chr$(175))
Massiv(scet2) = Mid$(Stroka, dd, e - dd)
scet2 = scet2 + 1
dd = e + 3
Wend
'вывод текста по текстбоксам
Txt1.Text = Massiv(0)
Txt2.Text = Massiv(1)
'обработка ошибок
If Err Then MsgBox "Error #" & Err.Number & " = " & Err.Description, vbCritical
End Sub
''''запись данных
Private Sub Command2_Click()
'Обратите внимание что записываем в файл
'не текстбоксы, а массив да еще в цикле,
'во как!. Массив же изменяем в ходе
'изменения текста.
Open "text.txt" For Output As #2
Print #2, Massiv(0) & Chr$(175)
Print #2, Massiv(1) & Chr$(175)
Close #2
End Sub
'а вот и изменение массива:
Private Sub Txt1_Change()
Massiv(0) = Txt1.Text
End Sub
Private Sub Txt2_Change()
Massiv(1) = Txt2.Text
End Sub
Ну а че сложного-то? Берешь первую строку из листбокса, разбираешь ее на составляющие (время, команда). После чего делаешь таймер с нужным тебе интервалом (т.е. если минимальная единица задаваемого времени секунда, то и таймер настраивается на 1 секунду), в обработчике таймера делаешь проверку текущего времени с заданным. Дальше надо объяснять?
По-поводу "БД"... Там же обычный массив используется, ты что, не умеешь делать поиск в массиве? Кстати, метод организации "БД" извращенский, автору низачот. Обычный текстовый файл, в каждой строке которого одна запись, почему-то автором не рассмотрен, а зря...
Если не секрет, зачем тебе нужна такая прога?
[Ответ]
RDman 17:56 30.07.2007
Part!zan, по пункту 1 - желательно разжевать. За программирование не садился почти 2 года, ничего не помню уже))
И та и др. проги - просто потренероваться и восстановить навык.
Сам я не профи, а любитель ))
[Ответ]
shuri 19:10 30.07.2007
Сообщение от Part!zan:
Если не секрет, зачем тебе нужна такая прога?
Не знаю, зачем ему программа. Но когда он доберется до таймера и обработки состояния файла (или хотя бы его наличия), там начнется настоящая веселуха :-). В VB это сделано через такую ж..., предупреждаю сразу - шашки в руки не брал лет 12, но просто в свое время пытался соорудить проект а-ля реал таймер и обработка по наличию файла в каталоге на VB3 под Windows 95-98. С учетом того, что документации, кроме родного Help, и,немного, из Fido не было, можно представить, как было весело :-). Хотя небольшая программа была написана и отработала 1,5 года :-).
P.S. Там еще использовались архиваторы. Под Dos. Кто сталкивался, тот поймет :-)
[Ответ]
Part!zan 20:41 30.07.2007
shuri, ты не поверишь, но в мире произошло много нового со времен VB3
RDman, все мы были любителями когда-то. Я вообще не представляю, какие проблемы могут возникнуть в VB, там все настолько упрощено, что просто сложно ошибиться. Правда, у меня под рукой VB6 нету, есть только VB2005. Но надеюсь, будет понятно. Значить, список строк в листбоксе, с точки зрения вб, есть ни что иное как массив. Если твой листбокс называется List, то до списка можно добраться через следующую конструкцию List.Items(i). Функции по работе со строками посмотришь в мсдн, там все просто. Таймеры... Советую почитать в мсдн описание того, что это и как оно действует (функция SetTimer и ей сопутствующие). Не помню, был ли в вб6 такой компонент, но в вб2005 он есть, с ним все просто - кинул на форму задал параметры, написал обработчик. Если в вб6 его нету - придется делать вручную, что не намного сложнее. Как проверить текущее время с заданным - это вообще просто, поищи по мсдн описания функций работы с временем и датами. Я перечислил все очень кратенько, потому что полностью это рассказывать долго, ибо это азы. Если уж совсем туго - почитай какой-нть самоучитель, хотя я считаю лучшим самоучителем мсдн. Он, конечно, на инглише, но тут придется смириться - либо ты знаешь инглиш, либо завязываешь с программерством.
[Ответ]
RDman 20:48 30.07.2007
понятно пасиб)
Сообщение от shuri:
Не знаю, зачем ему программа.
уже объяснил - просто так)) Продам по высокой цене.[Ответ]