Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.01.15;
Скачать: CL | DM;

Вниз

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

 
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;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.047 c
14-1134656616
IceBeerg
2005-12-15 17:23
2006.01.15
Параметры regedit а


14-1134897585
Ух
2005-12-18 12:19
2006.01.15
Почему вымышленные истории называют баяном?


14-1134882947
Ксардас
2005-12-18 08:15
2006.01.15
Не подскажите хорошую книжку по с++?


2-1135504189
bobbyDigital
2005-12-25 12:49
2006.01.15
Яркость контрастность


3-1132044086
Leonid
2005-11-15 11:41
2006.01.15
Файл PDOXUSRS.NET и DBF-файлы