Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Рабочий каталог (очень нужно)
Форум программистов > Системное программирование > C, С++ и С Builder > Borland C++ Builder & Kylix
Greenpeas
Здравствуйте!
ВВЕДЕНИЕ:
Пишу программу по созданию тестов. Тест хранится в двух таблицах: Таблица *_otv и таблица *_vopr (звёздочка - это название теста). Когда пользователь нажимает "Создать новый тест", то программа спрашивает (SaveDialog) куда сохранить тест. (Ваще то я очень хотел бы здесь использовать диалог выбора каталога, см. ЕЩЁ). Юзер вписывает в название файла имя теста, жмёт "Сохранить". Создаётся текстовый файл с расширением *.ft1.+ создаются пустые таблицы. Т.к. я воспользовался SaveDialog, то таблицы создались в этом же каталоге, в котором произошло сохранение (можно сделать вывод, что этот каталог стал рабочим для программы).
Но стоит нажать "Открыть тест" (OpenDialog показывает файлы ток с расширением ft1), выбрать ранее созданный тест в другом каталоге, то получаю ошибку BDE, что такие то таблицы не найдены... Он их ищет в каталоге, который был определён в SaveDialog. Поэтому у меня 3 вопроса:

1. Рациональным ли я путём ваще пошёл, работая с таблицами? Ведь можно было бы всё это дело в одном текстовом файле сделать.

2. Я хочу использовать ВЫБОР КАТАЛОГА ДЛЯ РАБОТЫ (Типа того, как установщик программы спрашивает, в какой каталог установить программу). Как мне это сделать? Возможно это тот же OpenDialog перенастроиный...

3. Как заставить мою программу работать в нужном мне каталоге. Т.е. создавать в нём таблицы. Открывать таблицы в других каталогах... Я работаю чисто SQL запросами в Query и всё.


Извините, за этот весь бред, но мне это очень важно... Дипломник.
Olala
И вам здравствуйте!
Попытаюсь ответить на твои вопросы.
Цитата
1. Рациональным ли я путём ваще пошёл, работая с таблицами? Ведь можно было бы всё это дело в одном текстовом файле сделать.

Нет, не рациональным. Советую потратить время на изучение теории баз данных, особенно обрати внимание на главу, где рассказывается о нормальных формах. Изучи хотя бы первые три.
Цитата
2. Я хочу использовать ВЫБОР КАТАЛОГА ДЛЯ РАБОТЫ (Типа того, как установщик программы спрашивает, в какой каталог установить программу). Как мне это сделать? Возможно это тот же OpenDialog перенастроиный...

Ну и используй. В чем проблема то?
Цитата
3. Как заставить мою программу работать в нужном мне каталоге. Т.е. создавать в нём таблицы. Открывать таблицы в других каталогах... Я работаю чисто SQL запросами в Query и всё.

Без понятия.
Возможно, когда ты разберешься со структурой базы данных, послдение два вопроса отпадут сами собой. smile.gif
Удачи.
Greenpeas
Цитата
Нет, не рациональным. Советую потратить время на изучение теории баз данных, особенно обрати внимание на главу, где рассказывается о нормальных формах. Изучи хотя бы первые три.

Та о 1-й, 2-й и 3-й нф я в курсе...
В 1-м вопросе мне интересно, нужно ли ваще в БД всё это делать...??? или просто в файле каком нить... ИМХО с БД проще...

2-й вопрос
Цитата
Ну и используй. В чем проблема то?

Где выкопать диалог выбора каталога??? Ведь он наверника есть в палитре...
European
Цитата(Greenpeas @ 19:09:2007, 15:24 )
В 1-м вопросе мне интересно, нужно ли ваще в БД всё это делать...??? или просто в файле каком нить... ИМХО с БД проще...
*

Так просто на это вопрос не ответишь, т.к. существует множество факторов, определяющих выбор. Например, защита тестов и ответов, возможность работы по сети и в многопользовательском режим ну и т.д.
Цитата(Greenpeas @ 19:09:2007, 15:24 )
Где выкопать диалог выбора каталога??? Ведь он наверника есть в палитре...
*

Нет его там, можешь не искать. Все решается на уровне настройки алиасов для Query и указания рабочего каталога для диалогов. Хелп в помощь, короче smile.gif
sax_ol
Для: Greenpeas
если "ИМХО с БД проще" и никаких других условий, то отказаться от BDE ("однозначно"(с)) в сторону ADO c Access (или подобной СУБД), ну а там уже юзать не "Query", а ADOCommand и иже ...
Olala
Для: Greenpeas
Использование СУБД существенно расширит возможности работы с твоими тестами. Вопрос состоит в том - надо ли тебе это? Возможно, тебе будет достаточно и текстовых файлов. European прав - тут множество факторов, которые следует принять во внимание.
Какую СУБД выбрать - твое личное дело. На мой взгляд, в данной ситуации непринципиально, что ты будешь использовать - TQuery или TADOQuery. Но опять же, многое зависит от технических требований к программному проекту.
В любом случае, если сделаешь выбор в пользу СУБД, отнесись серьезно к проектированию структуры базы данных.
Если сделаешь выбор в пользу текстовых файлов, продумай механизм защиты. Твой диплом от этого только выиграет.
Greenpeas
Уважаемый Olala, и остальные собоседники. Конечно же вы правы и во всём выше сказанном я с вами всеми согласен... Хочу уточнить, что моя программка должна делать и цель её создания. Я работаю в институте, в отделе дистанционного обучения. Изготавливаю Электронные Учебные Курсы для заочников в html виде. Преподаватели мне приносят материалы в doc. Я всё это конвертирую в html. В каждом курсе есть тест в виде html. Пример:

1. Как зовут Васю?
1) Вася
2) Коля
3)Никак

Вот в таком роде. Это всё записывается на диск и даётся заочнику.

Плюс ко всему этому я прошу преподавателей делать тесты не только в Word, но и в CSV (Excel) виде. CSV тест нужен для тестирования по интернету. Я даю нашему WEB-программисту эти csv тесты, где есть вопросы, варианты ответов, отметки правильных ответов, тип вопроса и т.д. Короче говоря, csv нужен для тестирующей программы на сервере... (к этому я уже не имею отношения)

ТАК ВОТ. Я ПИШУ ЭТУ ПРОГРАММКУ ДЛЯ ТОГО, ЧТО БЫ ОБЛЕГЧИТЬ ТРУД ПРЕПОДАВАТЕЛЯМ, НУ И ЕСТЕСТВЕННО СЕБЕ.

Что делает программа?

Преподаватель запускает программу. Создаёт новый тест (Вбивает вопросы и варианты ответов. помечает правильные... Вопросы разных типов: с одним правильным ответом, 2 и более, на соответствие, последовательность..., ввод ответа с клавиатуры). После всего этого нажимает какую нить волшебную кнопочку (Например "ГОТОВО"). Программка спрашивает путь к сохранению, и генерирует HTML и CSV файлы. Плюс ко всему этому - папку img с изображениями (например формулы в виде картинок)... Вот в принципе и всё, что должна делать программка...

Почему это дипломник?
Потому что я на 5-м курсе, и эту программку будут использовать преподаватели института, акт внедрения будет... вот и всё. smile.gif

С удовольствием выслушаю ваши предложения по организации хранения теста во время редактирования. Ну, короче, КАК БЫ ВЫ ВСЁ ЭТО СДЕЛАЛИ?

Спасибо!
European
Для: Greenpeas
Выслушав твой монолог, могу посоветовать сначала поговорить с web-программистом и выяснить какую СУБД он использует, если вообще использует. После разговора, возможно, у тебя уже будет готовая структура БД. А может только клиента и останется написать
Olala
Ну что же. Теперь стали более-менее понятны требования к функционалу твоей программы. smile.gif
И поскольку программу предполагается активно эксплуатировать впоследствии, то следует серьезно подойти к архитектуре программного продукта.
Что бы сделала лично я:
1. Хранение тестов и ответов органзовала в СУБД. СУБД даст тебе такие преимущества, как защищенность, надежность, масштабируемость и т.д. Следует хорошо продумать, как правильно организовать разные типы ответов (ты их сам классифицировал в последнем посте). Обрати внимание, что тебе, помимо текстовых ответов, надо хранить img-изображения.
2. В приложении к базе данных предусмотрела отдельную функцию экспорта теста из формата СУБД в HTML и CSV файлы. При такой архитектуре это позволит тебе получать необходимые файлы "по требованию". К примеру, после редактирования уже созданного теста (добавление/удаление вопросов/ответов). А также в случае, когда не слишком осторожный пользователь случайно повредит HTML или CSV файл или удалит img-изображение с какой-нибудь формулой.
Дополнительные плюсы: облегчится сопровождение/доработка проекта, декомпозиция поможет управлять сложностью проекта.
Выбери такую СУБД, которая имела бы достаточно широкие возможности и не налагала бы ограничения, если впоследствии возникнет необходимость в наращивании функционала программы.
Greenpeas
Цитата
1. Хранение тестов и ответов органзовала в СУБД. СУБД даст тебе такие преимущества, как защищенность, надежность, масштабируемость и т.д.

А что тут защищать, если преподаватель просто у себя дома вбивает тест... делает html, csv и img и приносит мне...

Я подумал, наверное организую всё просто в двух текстовых файлах ВОПРОСЫ и ОТВЕТЫ. Да и больно программка проста для дипломника... Но сделать её всё-таки нужно. Почему вы так склонны к использованию БД?
BVS
Цитата(Greenpeas @ 20:09:2007, 15:33 )
Почему вы так склонны к использованию БД?
*

Ты сам начал писать на БД (Paradox), а СУБД просто даст тебе больше возможностей при работе с SQL.
Как сохранить файлы PAradox в другом каталоге - при помощи команд cope и paste. Я б на твоем месте запрашивал каталог для хранения файлов при начале работы программы, и занес б полученное значение в свойство DataBase - потом все создаваемые таблицы помещались бы в этот каталог.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2008 IPS, Inc.