Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.01.15;
Скачать: [xml.tar.bz2];

Вниз

Почему не заходит в Брейк ?   Найти похожие ветки 

 
RX   (2005-12-24 12:25) [0]

     begin
     for i:=0 to ListFile.Lines.Count do
     for k:=0 to 3 do if ListFile.Lines[i]=massivlist[k]
                         then break else
                         massivlist[i]:=ListFile.Lines[i];

     end;


если вместо брейка написать чонить типа qwerty:=123 то это выполняется а брейк нет. И компилер брейкпоинт не ставит туда.


 
The_scorpion ©   (2005-12-24 12:45) [1]


> если вместо брейка написать чонить типа qwerty:=123 то это
> выполняется а брейк нет

Не может такого быть, брейк тоже выполняется. Просто выход идет только из одного цикла, ты наверное это не учитываешь.


 
RX   (2005-12-24 12:49) [2]

Нееет.вместо того что бы сделать брейк когда ListFile.Lines[i]=massivlist[k] TRUE - он какого то хрена в елс прыгает. Только что проверил.


 
RX   (2005-12-24 12:55) [3]

Алгоритм заполнения массива строками из Мемо путём банальной проверки на их наличие в массиве. В случае если такая строка в массиве есть то брейк (одинаковых строк в массиве не должно собираться), в случае если нет похожей строки в массиве - добавить в массив. Может кто предложит др-й рабочий алг-м?


 
Юрий Зотов ©   (2005-12-24 13:25) [4]

А зачем здесь вообще нужны какие-то там брейки? Да и ошибки в коде не помешало бы убрать.

for i := 0 to ListFile.Lines.Count - 1 do
 for k := 0 to 3 do
   if ListFile.Lines[i] <> massivlist[k] then
     massivlist[k] := ListFile.Lines[i];

Видимо, компилятор не дурак и строит код примерно в таком духе, так что никаких лишних брейков (т.е. лишних jmp) в нем уже нет - вот потому брейкпойнт и не ставится. Ставить просто негде.

Только сильно похоже, что этот код неверен уже по смыслу. Поскольку он не соответствует задаче, описаной в [3]. Вот вариант:

SL := TStringList.Create;
SL.Sorted := True;
SL.Duplicates := dupIgnore;
SL.Assign(ListFile.Lines);


 
RX   (2005-12-24 13:37) [5]

Чото блин корректировки не помогают
а вот SL как декларировать и где?
ругается типа чото там корресподинг


 
RX   (2005-12-24 13:50) [6]

Ну блин неужели нет чегонибудь стандартного всеми тыщу раз использумого метода проверки наличия в массиве элемента (принадлежит он этому массиву иль нет)??!


 
SergP.   (2005-12-24 14:00) [7]


> RX   (24.12.05 13:37) [5]
> Чото блин корректировки не помогают
> а вот SL как декларировать и где?
> ругается типа чото там корресподинг


SL:TStrings


 
DiamondShark ©   (2005-12-24 14:05) [8]


> RX   (24.12.05 13:50) [6]
> Ну блин неужели нет чегонибудь стандартного всеми тыщу раз
> использумого метода проверки наличия в массиве элемента
> (принадлежит он этому массиву иль нет)??!


i := Low(Massiv);
while (i <= High(Massiv)) and (element <> Massiv[i]) do Inc(i);
if i <= High(Massiv) then // Ура! Нашли!

учить наизузсть.


 
RX   (2005-12-24 14:09) [9]

)))) а как его заполнить чтоб дубликатов не было?
пожалуста!!! )))


 
Fl@sh ©   (2005-12-24 15:47) [10]


> )))) а как его заполнить чтоб дубликатов не было?
> пожалуста!!! )))

Имхо, лучше все-же делать способом, кот. представил ЮЗ.


 
RX   (2005-12-25 09:09) [11]

Вот блин наканецта придумал...
Вот это работает 100%

begin
     el:=0;
     for i:=0 to ListFile.Lines.Count-1 do
     begin
        eqflag:=false;
        for k:=0 to 100 do if ListFile.Lines[i]=massivlist[k]
                         then eqflag:=true;
        if eqflag=false then begin massivlist[el]:=ListFile.Lines[i];
                                   el:=el+1;
                             end;
     end;
end;


 
Separator ©   (2005-12-25 09:24) [12]


function Dup(ListFile: TStringList): TStringList;
begin
   Result:= TStringList.Create;
   Result.Sorted := True;
   Result.Duplicates := dupIgnore;
   Result.Assign(ListFile.Lines)
end;


 
Separator ©   (2005-12-25 09:28) [13]

Точней так:
Result.Assign(ListFile)


 
Separator ©   (2005-12-25 09:36) [14]

либо можно так:

function Dup(ListFile: TStringList): TStringList;
var i: integer;
begin
   Result:= TStringList.Create;
   for i:= 0 to ListFile.Count - 1 do
       if Result.IndexOf(ListFile[i]) <> -1
           then Result.Add(ListFile[i])
end;


Смысла от переменных el и eqflag вообще не вижу. Почему цикл к от 0 до 100?


 
Набережных С. ©   (2005-12-25 10:06) [15]


> Separator ©   (25.12.05 09:24) [12]

Это круто. Действительно, зачем такому профи читать чужие ответы, например [4], он и так знает, что кроме него никто ничего путного не посоветует.


 
Separator ©   (2005-12-25 10:50) [16]


> Набережных С. ©   (25.12.05 10:06) [15]

Я читал 4 и просто оформил для RX  в готовую функцию, чтоб меньше приходилось придумывать. А то чем он больше выдумает, тем больше ошибок допускает


 
Набережных С. ©   (2005-12-25 11:18) [17]


> Separator ©   (25.12.05 10:50) [16]

Я просто показал, как это может выглядеть со стороны, не более того. Я подумал, что тебя это может интересовать.



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2006.01.15;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.018 c
2-1135705069
melnik11
2005-12-27 20:37
2006.01.15
Как сделать так что нажав на Button открывался какой либо файл


5-1120111375
ORMADA
2005-06-30 10:02
2006.01.15
PageControl и [<>] прокрутка


3-1132123711
Карелин Артем
2005-11-16 09:48
2006.01.15
Получение всех FK в базе MS SQL 2000.


14-1134748275
Piter
2005-12-16 18:51
2006.01.15
Dos Navigator жив :)


14-1134978957
Чапаев
2005-12-19 10:55
2006.01.15
CDMA-телефон и Internet callback





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский