Другие языки программирования и технологии
Помогите с алгоритмом.
В базе данных возникла следующая проблема: при написании процедуры входа в базу (авторизации) имеется таблица с логинами и соответствующими им паролями. Алгоритм реализации подобного входа в общем виде я написал так:если (login=user)&(pas=right_pas) то вход осуществляется.Проблема в том, что строка "user1" содержит в себе строку user и следовательно user1+right_pas приводит к входу в базу, хотя подобного быть не должно. В принципе можно к каждому user-у в базе логинов добавлять пробел, но тогда "user 1" будет аналогичным образом входить в базу.Вопрос: как этого избежать?
Возможно, надо использовать операцию "==" вместо "=".
На результат операции отношения влияет установка команды SET EXACT, например:
set exact off
? 'abcd' = 'ab'
&& напечатает .T. , т. к. при установке SET EXACT в OFF в сравнении участвуют только 2 символа (количество символов первого операнда) .
Если установить SET EXACT в ON, то VFP увеличит размер короткой строки, добавляя к ней хвостовые пробелы, и будет сравнивать все символы операндов, например:
set exact on
? 'abcd' = 'ab'
&& напечатает .F.
Исключение составляет операция "==", которая всегда работает как будто SET EXACT установлен в ON.
Взамен операции "==", можно употребить встроенную функцию LIKE()
? Like ('abcd', 'ab' )
&& напечатает .F.
? Like ('abcd', 'abcd' )
&& напечатает .T.
Однако возможности функции LIKE несколько шире, в ее аргументы можно вставлять символы "*" и "?", используемые в общепринятом порядке, например:
? Like ('ab*', 'abcd' )
&& напечатает .T.
На результат операции отношения влияет установка команды SET EXACT, например:
set exact off
? 'abcd' = 'ab'
&& напечатает .T. , т. к. при установке SET EXACT в OFF в сравнении участвуют только 2 символа (количество символов первого операнда) .
Если установить SET EXACT в ON, то VFP увеличит размер короткой строки, добавляя к ней хвостовые пробелы, и будет сравнивать все символы операндов, например:
set exact on
? 'abcd' = 'ab'
&& напечатает .F.
Исключение составляет операция "==", которая всегда работает как будто SET EXACT установлен в ON.
Взамен операции "==", можно употребить встроенную функцию LIKE()
? Like ('abcd', 'ab' )
&& напечатает .F.
? Like ('abcd', 'abcd' )
&& напечатает .T.
Однако возможности функции LIKE несколько шире, в ее аргументы можно вставлять символы "*" и "?", используемые в общепринятом порядке, например:
? Like ('ab*', 'abcd' )
&& напечатает .T.
Я ничё не понял что за строка user 1 а тем более сложение непонятно зачем строк.
НИКОГДА НЕ ЮЗАЙ СЛОЖЕНИЕ СТРОК!!! !
1)Пользователь вводит в поле логин (String), нажимает Enter.
2) Данный логин ищется в базе. База это простейшая хэш таблица ключ-значение. База в ответ даёт пароль. Или сигнал что такого логина нет. Или пока не даёт даёт только тогда когда введён пароль и нажат Enter.
3) Пользователь вводит пароль (String) проверяется совпадает ли он с тем что в базе. Если да то вход если нет то думай чё делается дальше. В принципе можно сделать даже две хэш таблицы
Логин -> хэш число и вторая Пароль-> хэш число (то же самое) тогда две базы выдадут тебе два числа (Longint ) например
и ты их сравшиваешь.
НИКОГДА НЕ ЮЗАЙ СЛОЖЕНИЕ СТРОК!!! !
1)Пользователь вводит в поле логин (String), нажимает Enter.
2) Данный логин ищется в базе. База это простейшая хэш таблица ключ-значение. База в ответ даёт пароль. Или сигнал что такого логина нет. Или пока не даёт даёт только тогда когда введён пароль и нажат Enter.
3) Пользователь вводит пароль (String) проверяется совпадает ли он с тем что в базе. Если да то вход если нет то думай чё делается дальше. В принципе можно сделать даже две хэш таблицы
Логин -> хэш число и вторая Пароль-> хэш число (то же самое) тогда две базы выдадут тебе два числа (Longint ) например
и ты их сравшиваешь.
вот ужас то.. . этоже изврат какойто.. . то есть в фокспро нельзя тупо сравнить 2 строки?
Похожие вопросы
- Информатика. Программирование. Обработка массивов данных. Помогите составить алгоритм и прог. код к нему.
- Помогите с алгоритмом!
- Помогите написать алгоритм и программу на фортране
- Нужно написать программу (помогите с алгоритмом) с++
- Помогите найти алгоритм подбора множителей к числам заданного массива, сумма произведений которых равна заданному числу
- Помогите составить алгоритм решения задачи
- Помогите придумать алгоритм.
- Помогите найти, алгоритм нахождения Произведения простых чисел, на С++, или литературу которая поможет разобраться.
- Помогите найти алгоритм вычисления простых чисел
- Помогите написать алгоритм к задаче по информатике