![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Поиск в таблице и русские буквы [D6, Paradox]
anod © (2002-03-31 00:27:00)У меня есть таблица с данными о юзерах.
При выборе пользователя из ListBox и вводе его пароля в edit.
производится поиск. Если имя пользователя русское, то выдается ошибка, а если пароль русский, то всё ок.
Вот код поиска:
if DBlistBox1.ItemIndex>-1 then begin
name:=DBListBox1.Items.Strings[DBListBox1.ItemIndex];
pass:=ShifrDeshifr(true,epass.Text);
Table1.First;
if Table1.Locate("Name;Password", VarArrayof([name,pass]) ,[]) then
begin
...
У меня стояло поле name индексированное, я убрал индексацию, но ошибка так и осталась.
anod (2002-04-01 12:39:00) [1]2 Anatoly Podgoretsky
По таблице русские символы заканчиваются на 239.
А это я просто не доделал ещё. Должно быть. #239+1(я) -> #160(а)
Anatoly Podgoretsky (2002-04-01 11:46:00) [2]anod © (01.04.02 09:47)
#255+1
anod (2002-04-01 10:17:00) [3]2 Lusha
Спасибо.
Модератору: я ничего плохого не писал.
Lusha (2002-04-01 10:05:00) [4]TDBListBox отображает значения своего свойства Items.
Я бы на Вашем месте использовал TDBLookUpListBox, инициализировав его следующим образом
LookUpSource = Ваш DataSource
ListField = Необходимое поле
KeyField = Необходимое поле (то же, что и ListField)
Считывание и установку необходимого значения производить свойством KeyValue. И все дела...
anod (2002-04-01 09:53:00) [5]Удалено модератором
anod (2002-04-01 09:47:00) [6]2 Lusha
Ты гений. Спасибо, всё ок. Никогда бы сам не догадался.
2Anatoly Podgorodetsky
НЕ, я про ASCII знаю. я имел ввиду, как может получатся #0
Anatoly Podgoretsky (2002-03-31 23:04:00) [7]А почему не задаешь вопрос в отдельное ветке, задавай получишь ответ.
ArtSoft (2002-03-31 22:59:00) [8]Удалено модератором
Anatoly Podgoretsky (2002-03-31 21:52:00) [9]Основы Паскала, символы иожно представлять так
"x", #код
Смотри тему "Character strings"
Lusha (2002-03-31 14:33:00) [10]Правильно ругается. Замените пременную Name в коде на какую-нибудь другую (name - свойство класса, в обработчике которого Вы сие написали) и все должно встать на свои места, я думаю...
anod (2002-03-31 14:23:00) [11]Не понял. А что там за #0.
А для русского?
Anatoly Podgoretsky (2002-03-31 14:16:00) [12]Правильно, для английского символ #0 никогда не будет, максимум #127
anod (2002-03-31 14:04:00) [13]Дело в том, что c именем, написанном английскими букванми проблем никаких нет.
А можно узнать, какие именно правила.
Если epass.text пустой, то pass = ""
procedure TForm1.Button1Click(Sender: TObject);
var ..
begin
name:="";
pass:="";
if DBlistBox1.ItemIndex>-1 then begin
name:=DBListBox1.Items.Strings[DBListBox1.ItemIndex];
pass:=ShifrDeshifr(true,epass.Text);
Table1.First;
if Table1.Locate("Name;Pass", VarArrayof([Name,Pass]) ,[]) then
begin
...// Здесь Какие-то расчеты массы тела, правильности питания и т.д.
end else MessageDlg("Проверте правильность ввода пароля", mtWarning, [mbOk],0);
end;
Anatoly Podgoretsky (2002-03-31 13:56:00) [14]Ты уверен, что pass:= содержит правильный пароль и именно существующий в таблице и от подчиняется правилам для работы с текстом?
Я вижу что нет, у тебя например может выть #0
anod (2002-03-31 13:49:00) [15]Ну в смысле не важно, что так, что так не работает.
ShifrDeshif ничего не дает.
function TForm1.ShifrDeshifr(ShOrDesh: boolean; text:string):string;
var i,n: byte; c:char;
begin
case ShOrDesh of
true: for i:= 1 to length(text) do
begin
n:=ord(text[i]);
c:=Chr(n+1);
text[i]:=c;
end;
false: for i:= 1 to length(text) do
begin
n:=ord(text[i]);
c:=Chr(n-1);
text[i]:=c;
end;
end;
result:=text;
end;
Lusha (2002-03-31 13:35:00) [16]Так как все же на самом деле,
pass:=ShifrDeshifr(true,epass.Text) или pass:=epass.Text;?
anod (2002-03-31 13:27:00) [17]3-я в приведенном выше коде, хотя странно.
pass:=epass.Text;
Lusha (2002-03-31 13:18:00) [18]Да-а-а? И на какую строку приведенного Вами кода сие ругательство выдается?
anod (2002-03-31 12:57:00) [19]Может ошибка при создании таблицы.
Ошибка:" "Имя пользователя" is not a valid component name"
??
Anatoly Podgoretsky (2002-03-31 11:49:00) [20]anod © (31.03.02 11:09)
? - это слишком общий вопрос
anod © (31.03.02 00:27)
Ни каких сообщение об ошибке, наверно обманываешь