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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.10.2010, 04:40   #1
Lokos
Форумчанин
 
Регистрация: 29.09.2009
Сообщений: 587
По умолчанию простейший алгоритм а работает криво

Здравствуйте.
Ума не приложу в чем проблема может просто заработался.
В переменную buf передается значение '1,2'
первое номер второе пароль
первое число должно записаться в NamberAg
второе в passAg
код
Код:
begin
   NomerAg:='';
   PassAg:='';
   flag:=false;
   for I := 1 to length(buf) do
      begin
         if flag=true then
           PassAg:=Passag+buf[i];
         if buf=',' then
           flag:=true;
         if flag=false then
            NomerAg:=NomerAg+buf[i];
      end;
результат все пишется в NamverAg
Lokos вне форума Ответить с цитированием
Старый 26.10.2010, 04:51   #2
Lokos
Форумчанин
 
Регистрация: 29.09.2009
Сообщений: 587
По умолчанию

вростил в чем проблема ошибка просто наитупейшая
Код:
begin
   NomerAg:='';
   PassAg:='';
   flag:=false;
   for I := 1 to length(buf) do
      begin
         if flag=true then
           PassAg:=Passag+buf[i];
         if buf[i]=',' then
           flag:=true;
         if flag=false then
            NomerAg:=NomerAg+buf[i];
      end;
Lokos вне форума Ответить с цитированием
Старый 26.10.2010, 06:54   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

а так не проще?
Код:
  NomerAg  := Copy(Buf,1,Pos(',',Buf)-1);
  PassAg := Copy(Buf,Pos(',',Buf)+1, Length(Buf)-Pos(',',Buf));
Serge_Bliznykov вне форума Ответить с цитированием
Старый 27.10.2010, 09:52   #4
Lokos
Форумчанин
 
Регистрация: 29.09.2009
Сообщений: 587
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
а так не проще?
Код:
  NomerAg  := Copy(Buf,1,Pos(',',Buf)-1);
  PassAg := Copy(Buf,Pos(',',Buf)+1, Length(Buf)-Pos(',',Buf));
первое значение может быть либо однозначным либо двухзначным, а второе до 25 символов вообще
Lokos вне форума Ответить с цитированием
Старый 27.10.2010, 10:39   #5
zumm
БохЪ
Форумчанин
 
Аватар для zumm
 
Регистрация: 30.09.2009
Сообщений: 724
По умолчанию

Цитата:
первое значение может быть либо однозначным либо двухзначным, а второе до 25 символов вообще
Эм...И что? Их же все равно разделает ','.
В планах порабощение вселенной...
zumm вне форума Ответить с цитированием
Старый 27.10.2010, 11:04   #6
Grag
А может и не...
Участник клуба
 
Аватар для Grag
 
Регистрация: 27.03.2010
Сообщений: 1,269
По умолчанию

А вот енто чё за ерунда???
if buf=',' then
Судя по коду buf - это массив.... Мож так нужно if buf[?]=',' then
да и вот это
Код:
if flag=true then
лишнее, лучше вот так нарисовать
Код:
if flag then
и 
if not flag then
Перемешивай дело с бездельем и не сойдешь с ума...
Grag вне форума Ответить с цитированием
Старый 27.10.2010, 11:31   #7
-Flasher-
Пользователь
 
Регистрация: 05.01.2010
Сообщений: 26
По умолчанию

Цитата:
Сообщение от Grag Посмотреть сообщение
А вот енто чё за ерунда???
if buf=',' then
Во втором посте он это исправил.
Цитата:
Сообщение от Grag Посмотреть сообщение
лучше вот так нарисовать
if flag then
и
if not flag then
Разницы в скорости нет. Пиши как нравится.
-Flasher- вне форума Ответить с цитированием
Старый 27.10.2010, 16:21   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
первое значение может быть либо однозначным либо двухзначным, а второе до 25 символов вообще
zumm абсолютно прав! Предложенный мной алгоритм разделяет строку на два элемента исключительно по первой запятой. И совсем не важно, один символ в номерАг или сто... тоже касается и второй переменной.

Вы бы просто попробовали мой код. Его совсем несложно вставить в Вашу программу (вместо Вашего) и проверить, как он работает!
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Простейший DELETE, а не работает((( Blondy SQL, базы данных 6 11.05.2010 20:11
программа работает криво Юрий_91 Общие вопросы C/C++ 1 25.04.2010 08:40
почему DrawText криво работает? STill_ace Общие вопросы C/C++ 11 24.08.2009 15:57
Криво работает polygon ROD Общие вопросы C/C++ 5 06.02.2009 20:54
Почему не работает простейший макрос? zander Microsoft Office Excel 5 05.02.2009 20:58