• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Рабочий каталог (очень нужно)

  • Автор темы Greenpeas
  • Дата начала
Статус
Закрыто для дальнейших ответов.
G

Greenpeas

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

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

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

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


Извините, за этот весь бред, но мне это очень важно... Дипломник.
 
O

Olala

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

Greenpeas

Нет, не рациональным. Советую потратить время на изучение теории баз данных, особенно обрати внимание на главу, где рассказывается о нормальных формах. Изучи хотя бы первые три.
Та о 1-й, 2-й и 3-й нф я в курсе...
В 1-м вопросе мне интересно, нужно ли ваще в БД всё это делать...??? или просто в файле каком нить... ИМХО с БД проще...

2-й вопрос
Ну и используй. В чем проблема то?
Где выкопать диалог выбора каталога??? Ведь он наверника есть в палитре...
 
E

European

<!--QuoteBegin-Greenpeas+19:09:2007, 15:24 -->
<span class="vbquote">(Greenpeas @ 19:09:2007, 15:24 )</span><!--QuoteEBegin-->В 1-м вопросе мне интересно, нужно ли ваще в БД всё это делать...??? или просто в файле каком нить... ИМХО с БД проще...
[snapback]78826" rel="nofollow" target="_blank[/snapback]​
[/quote]
Так просто на это вопрос не ответишь, т.к. существует множество факторов, определяющих выбор. Например, защита тестов и ответов, возможность работы по сети и в многопользовательском режим ну и т.д.
<!--QuoteBegin-Greenpeas+19:09:2007, 15:24 -->
<span class="vbquote">(Greenpeas @ 19:09:2007, 15:24 )</span><!--QuoteEBegin-->Где выкопать диалог выбора каталога??? Ведь он наверника есть в палитре...
[snapback]78826" rel="nofollow" target="_blank[/snapback]​
[/quote]
Нет его там, можешь не искать. Все решается на уровне настройки алиасов для Query и указания рабочего каталога для диалогов. Хелп в помощь, короче :)
 
O

Olala

Для: Greenpeas
Использование СУБД существенно расширит возможности работы с твоими тестами. Вопрос состоит в том - надо ли тебе это? Возможно, тебе будет достаточно и текстовых файлов. European прав - тут множество факторов, которые следует принять во внимание.
Какую СУБД выбрать - твое личное дело. На мой взгляд, в данной ситуации непринципиально, что ты будешь использовать - TQuery или TADOQuery. Но опять же, многое зависит от технических требований к программному проекту.
В любом случае, если сделаешь выбор в пользу СУБД, отнесись серьезно к проектированию структуры базы данных.
Если сделаешь выбор в пользу текстовых файлов, продумай механизм защиты. Твой диплом от этого только выиграет.
 
G

Greenpeas

Уважаемый Olala, и остальные собоседники. Конечно же вы правы и во всём выше сказанном я с вами всеми согласен... Хочу уточнить, что моя программка должна делать и цель её создания. Я работаю в институте, в отделе дистанционного обучения. Изготавливаю Электронные Учебные Курсы для заочников в html виде. Преподаватели мне приносят материалы в doc. Я всё это конвертирую в html. В каждом курсе есть тест в виде html. Пример:

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

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

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

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

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

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

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

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

Спасибо!
 
E

European

Для: Greenpeas
Выслушав твой монолог, могу посоветовать сначала поговорить с web-программистом и выяснить какую СУБД он использует, если вообще использует. После разговора, возможно, у тебя уже будет готовая структура БД. А может только клиента и останется написать
 
O

Olala

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

Greenpeas

1. Хранение тестов и ответов органзовала в СУБД. СУБД даст тебе такие преимущества, как защищенность, надежность, масштабируемость и т.д.
А что тут защищать, если преподаватель просто у себя дома вбивает тест... делает html, csv и img и приносит мне...

Я подумал, наверное организую всё просто в двух текстовых файлах ВОПРОСЫ и ОТВЕТЫ. Да и больно программка проста для дипломника... Но сделать её всё-таки нужно. Почему вы так склонны к использованию БД?
 
B

BVS

<!--QuoteBegin-Greenpeas+20:09:2007, 15:33 -->
<span class="vbquote">(Greenpeas @ 20:09:2007, 15:33 )</span><!--QuoteEBegin-->Почему вы так склонны к использованию БД?
[snapback]78983" rel="nofollow" target="_blank[/snapback]​
[/quote]
Ты сам начал писать на БД (Paradox), а СУБД просто даст тебе больше возможностей при работе с SQL.
Как сохранить файлы PAradox в другом каталоге - при помощи команд cope и paste. Я б на твоем месте запрашивал каталог для хранения файлов при начале работы программы, и занес б полученное значение в свойство DataBase - потом все создаваемые таблицы помещались бы в этот каталог.
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!