Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.11.2007, 12:56   #11
RoZi
Пользователь
 
Аватар для RoZi
 
Регистрация: 25.11.2007
Сообщений: 27
По умолчанию

опять не получается..
RoZi вне форума Ответить с цитированием
Старый 26.11.2007, 13:13   #12
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Цитата:
if r=Pos('/',x) then
if (r=3) and (r=6)then
Messagedlg('Пароль не верный!',mtInformation,[mbOK],0) else
if s=Pos('-',x) then
if (s=3) and (s=6)then
Messagedlg('Пароль не верный!',mtInformation,[mbOK],0) else
if k=Pos('.',x) then
if (k=3) and (r=6)then
Messagedlg('Пароль не верный!',mtInformation,[mbOK],0)
else
функция Pos('/',х) отыскивает первое и только первое появление знака '/' в строке х. Если Вы знаете, что этот знак должен находиться на 3 и 6 местах, то зачем его искать?
Исключите из кода if Pos('/',x) then, if Pos('/',x) then, if Pos('/',x) then и задавайте переменным r,s,k нужные Вам значения.
puporev вне форума Ответить с цитированием
Старый 26.11.2007, 13:30   #13
RoZi
Пользователь
 
Аватар для RoZi
 
Регистрация: 25.11.2007
Сообщений: 27
По умолчанию

Цитата:
Сообщение от puporev Посмотреть сообщение
функция Pos('/',х) отыскивает первое и только первое появление знака '/' в строке х. Если Вы знаете, что этот знак должен находиться на 3 и 6 местах, то зачем его искать?
Исключите из кода if Pos('/',x) then, if Pos('/',x) then, if Pos('/',x) then и задавайте переменным r,s,k нужные Вам значения.
в таком случае как мне задать что именно тот или иной знак должен быть на той1 или иной позиции. Pos('/',x) - тут же мы ищем позицию / в строке x....
RoZi вне форума Ответить с цитированием
Старый 26.11.2007, 14:22   #14
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Есть строка А. Нужно проверить соответствие определенным местам определенных элементов. Пишем:
if (A[3]='/') and (A[6]='/' ) then ...
puporev вне форума Ответить с цитированием
Старый 27.11.2007, 02:41   #15
RoZi
Пользователь
 
Аватар для RoZi
 
Регистрация: 25.11.2007
Сообщений: 27
По умолчанию

Цитата:
Сообщение от puporev Посмотреть сообщение
Есть строка А. Нужно проверить соответствие определенным местам определенных элементов. Пишем:
if (A[3]='/') and (A[6]='/' ) then ...
не-а и так ошибка. Он говорит что не знает то я от него хочу ему не нравятся [] выдает ошибку Array type required.
RoZi вне форума Ответить с цитированием
Старый 27.11.2007, 07:08   #16
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Покажите, как Вы написали. Если А - тип string, A[i]-его элемент. Переменная А должна быть объявлена в разделе реременных как string.
У меня этот фрагмент нормально работает.
puporev вне форума Ответить с цитированием
Старый 27.11.2007, 08:02   #17
RoZi
Пользователь
 
Аватар для RoZi
 
Регистрация: 25.11.2007
Сообщений: 27
По умолчанию

я не могу её объявить как string, она тогда не дойдет до этого куска.. у меня сначало идет проверка на количество знаков
Код:
x:=edit1.Text ;
 p:=length(x);//здесь переменная не может быть объявлена как string
         if p=8 then
и только после этого идет проверка на 3 и 6 знака, если строка не будет =8 мне не надо делать проверку
RoZi вне форума Ответить с цитированием
Старый 27.11.2007, 08:27   #18
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Розита, мона и я свои пять коп вставлю?

А не подойдет ли тебе такой вариант проверки:

Код:
procedure TForm1.Edit1Change(Sender: TObject);
var d:TDateTime;
begin
 ShortDateFormat:='dd/mm/yy';
 if not TryStrToDate(Edit1.Text,d) then begin
  ShortDateFormat:='dd-mm-yy';
  if not TryStrToDate(Edit1.Text,d) then begin
   ShortDateFormat:='dd.mm.yy';
   Caption:='Несовпадает'; exit;
  end;
 end;
    Caption:='Совпадает';
end;
I'm learning to live...

Последний раз редактировалось Stilet; 27.11.2007 в 08:36.
Stilet вне форума Ответить с цитированием
Старый 27.11.2007, 08:31   #19
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

p - это длина строки типа integer, но x - это строка типа string.
Поэтому нужно писать
Код:
x:=edit1.Text ;
p:=length(x);
         if p=8 then
            if (x[3]='/') and (x[6]='/')then
                Messagedlg('Пароль не верный!',mtInformation,[mbOK],0) else
            if (x[3]='-') and (s[6]='-')then
                Messagedlg('Пароль не верный!',mtInformation,[mbOK],0) else
            if (x[3]='.') and (s[6]='.')then
                Messagedlg('Пароль не верный!',mtInformation,[mbOK],0)
        else

   {Messagedlg('Пароль не верный!',mtInformation,[mbOK],0);}
puporev вне форума Ответить с цитированием
Старый 28.11.2007, 10:33   #20
RoZi
Пользователь
 
Аватар для RoZi
 
Регистрация: 25.11.2007
Сообщений: 27
По умолчанию

Stilet, не не хочет и так работать, он мне все остальное перекрывает и дальше не идет проверка при любом пароле выводит ошибку..
RoZi вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с датой xDjarx БД в Delphi 38 02.05.2009 14:21
Работа с датой Aleksandr Общие вопросы Delphi 12 29.09.2008 14:01
Работа с датой Dunpeal Общие вопросы Delphi 5 15.05.2008 12:05
Работа с датой [RR]Reaction Общие вопросы Delphi 3 07.04.2008 21:52
Манипуляции с датой и временем. Tatyana БД в Delphi 16 29.06.2007 19:19