Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Kакая разница между этими кодами? 
:(
    Опции темы
Deiv
Дата 4.7.2007, 16:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 43
Регистрация: 11.2.2006
Где: ЛаПаc-Боливия (Ю жная Америка)

Репутация: нет
Всего: нет



Я пыталься работать следующий код без использования пункт SQL = DISTINCT (потому, что это хорошее решение) чтобы получить Поля (Fields) без повторения; первый код работает хорошо, но второй НЕT почему?  
Код

procedure TForm1.FormCreate(Sender: TObject);
type
  AnyArray = array[0..100] of string;
var
  x:  integer;
  A:  AnyArray;
const
  sqlElements = ' Select * from elements ';
begin
  x:=0;
  ADOQuery1.Active:= False;
  ADOQuery1.Sql.text:= sqlElements;
  ADOQuery1.Active:= True;
  with ADOQuery1 do
    begin
      first;
      while not eof do
        if (ComboBox1.Items.IndexOf(FieldByName('Tip').AsString)=-1) then 
           begin
              ComboBox1.Items.Add(FieldByName('Tip').AsString);
              A[x]:= FieldByName('Tip').Value;
              inc(x);
           end;
        next;
    end;
end;


Код

procedure TForm1.FormCreate(Sender: TObject);
type
  UnArray = array[0..100] of string;
var
  x: integer;
  A: UnArray;
  B: TStringList;
const
  sqlElements = ' Select * from elements ';
begin
  x:=0;
  B:= TStringList.Create;
  ADOQuery1.Active:= False;
  ADOQuery1.Sql.text:= sqlElements;
  ADOQuery1.Active:= True;
  with ADOQuery1 do
    begin
      first;
      while not eof do
        if (B.IndexOf(FieldByName('Tip').AsString)=-1) then
           begin
              ComboBox2.Items.Add(FieldByName('Tip').AsString);
              A[x]:= FieldByName('Tip').Value;
              inc(x);
              next;
           end;
    end;
end;
  
Почему линия:  
Код
if (B.IndexOf(FieldByName ('Type'). AsString) = -1) then

Это не РАБОТАЕТ ТО ЖЕ КАК этот Другой?:  
Код

if (ComboBox1.Items.IndexOf(FieldByName ('Type'). AsString) = -1) then
  
Как сделать (решить) тот второй код что работал в качестве первого?


Which is it the differences of these Codes?  
I am trying to make work the following code without using the clause SQL = DISTINCT (because this a good solution is) to obtain Fields without repeating; does the first one work well, but the second NOT why?  
 
Why the line:  
if (B.IndexOf(FieldByName ('Type'). AsString) = -1) then 
Doesn't it WORK THE SAME AS this Other one?:  
if (ComboBox1.Items.IndexOf(FieldByName ('Type'). AsString) = -1) then  
  
How to make (solve) that the second code works as the first one?

PM MAIL YIM   Вверх
Rodman
Дата 4.7.2007, 19:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: 1
Всего: 122



Type зарегеное слово... переименую поле и должно пойти!
PM MAIL WWW Skype GTalk YIM MSN   Вверх
SPrograMMer
Дата 4.7.2007, 23:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Спамер :)
**


Профиль
Группа: Участник
Сообщений: 442
Регистрация: 5.11.2004
Где: Краснодар

Репутация: нет
Всего: 6



Цитата(Rodman @  4.7.2007,  19:09 Найти цитируемый пост)
Type зарегеное слово

да, но оно в кавычках => не в этом дело... smile 

зачем тебье во втором коде переменная B, в которой содержится объект TStringList, ведь ты используешь поиск: 
Цитата(Deiv @  4.7.2007,  16:35 Найти цитируемый пост)
    
Код

if (B.IndexOf(FieldByName ('Type'). AsString) = -1) then

хотя вставку делаешь имеено в список, который у тебя на форме: 
Цитата(Deiv @  4.7.2007,  16:35 Найти цитируемый пост)
Код

              ComboBox2.Items.Add(FieldByName('Tip').AsString);

т е переменная B после
Цитата(Deiv @  4.7.2007,  16:35 Найти цитируемый пост)
 
Код

 B:= TStringList.Create;

не изменяеется... => в ней нети элементов и твое сравнение не работает....



ЗЫ:  и еще зачем те массив A?  Он объявлен локальным в подпрограмме => за ее пределами он не виден, а в подпрограмме ты только последовательно его заполняешь:
Цитата(Deiv @  4.7.2007,  16:35 Найти цитируемый пост)
Код

              A[x]:= FieldByName('Tip').Value;


Но более с ним ничего не делаешь... Бессмысленные растраты ресурсов? smile 


--------------------
животное = зверь
законченный гентушник
PM MAIL ICQ Jabber   Вверх
Deiv
  Дата 5.7.2007, 15:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 43
Регистрация: 11.2.2006
Где: ЛаПаc-Боливия (Ю жная Америка)

Репутация: нет
Всего: нет



Как я сказал решение это есть DISTINCT, но я не хочу содержать сомнение по вопросу о TStringList.
Что я хочу делать?  
Первые код сделает фильтры для меня очень хорошо элементов Поля (Fields) "Tip" без повторения которые показываются их в ComboBox1, но мне не нужно ComboBox в моем Программе, у меня нет ComboBoxa, из такой причины я хочу только, что cделать ту же работу первого кода но без ComboBoxa (не приходится меня) и содержать те значения без повторения: в ARRAY так что тогда те значения использовал бы на другом месте моего кода; я решил написать с TStringListoм считая, что это хорошее решение потому, что он представлет себя очень аналогичный код на линии "IF", но кажется...... Они не работают в равной мере!!  

Как я могу сохранить (содержать) элементы без повторения как первый код (но с TStringListoм) к ARRAY?



As I said the solution it is with DISTINCT, but I don't want to keep the doubt of the TStringList.  
That I want to make?  
The first code it filters me very well the elements of the Field "Tip" without repeating them in the ComboBox1, but I don't need a ComboBox in my Program, I don't have a ComboBox, for that reason I want only, to make the same work the first's code but without ComboBox (it is not necessary me) and to keep those values without repeat them: in an ARRAY so that then those values use it in another place of my code; for I decided to use a TStringList believing that this a good solution because they are very similar in code in the line "IF", but...... they don't work equally!!  
How can I keep elements without repeating as the first code (but with TStringList) to ARRAY?


Присоединённый файл ( Кол-во скачиваний: 3 )
Присоединённый файл  MyQuestion.zip 40,37 Kb
PM MAIL YIM   Вверх
Deiv
  Дата 9.7.2007, 18:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 43
Регистрация: 11.2.2006
Где: ЛаПаc-Боливия (Ю жная Америка)

Репутация: нет
Всего: нет



Молодежь,
Пожалуйста нет раствора для моей проблемы?, 
или которого другая спосого может заниматься? 

Это сообщение отредактировал(а) Deiv - 9.7.2007, 18:06
PM MAIL YIM   Вверх
Akella
Дата 13.7.2007, 09:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 8
Всего: 329



Цитата(Deiv @  4.7.2007,  16:35 Найти цитируемый пост)
Я пыталься работать следующий код без использования пункт SQL = DISTINCT 

ты сам-то понимаешь, что ты пишешь  smile 
PM MAIL   Вверх
Lunatikus
Дата 13.7.2007, 11:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 503
Регистрация: 29.6.2007

Репутация: нет
Всего: 6



Акелла,не издевайся над человеком-наверняка он использует какойнибудь переводчик с английского языка-вон,даже оригинальное сообщение прислал.(еще раз доказывает,что русские программисты-лучшие в мире =) раз к ним за помощью из других стран обращаются)

to Deiv:
i think your problem - use NEXT(in second code) inside "if...else".So therefore if the condition is not carried out that and transition will not be carried out.
I can be mistaken.


--------------------
TheSin - небольшое игровое сообщество взрослых и молодых(L2,WoW,Aion,RFonline and other not mmorpg,not computer games).
сайт гильдии
PM MAIL   Вверх
Deiv
Дата 1.8.2007, 17:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 43
Регистрация: 11.2.2006
Где: ЛаПаc-Боливия (Ю жная Америка)

Репутация: нет
Всего: нет



Цитата(Akella)
ты сам-то понимаешь, что ты пишешь

Как я сказал те, что они знают меня: Я из Латинской Америки и говорю очень мало русский язык
Taught me that the respect is first of all the first thing in any part of the world, and to understand the Beginners in programming. If I try to look for solutions in Russia it is because I have friends there.
Спасибо за ваши комментарии, в любом случае здесь - ответ (раствор): 
Код

with ADOQuery1 do
  begin
    first;
    while not eof do
      begin
          if (B.IndexOf(FieldByName('Tipo').AsString)=-1) then
            begin
              B.Add(FieldByName('Tipo').AsString); 
              A[x]:=FieldByName('Tipo').AsString;
              inc(x);
            end;
        next;
      end;
  end;

© http://www.clubdelphi.com/
Конец
PM MAIL YIM   Вверх
MetalFan
Дата 1.8.2007, 20:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

Репутация: 22
Всего: 128



простите, но тоффарисчу зачот! за смелость так сказать)

Это сообщение отредактировал(а) MetalFan - 1.8.2007, 20:48


--------------------
There are always someone smarter than you...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.2300 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.