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

Вниз

Ндааааа....   Найти похожие ветки 

 
vuk ©   (2009-01-21 21:15) [0]

program Project1;
{$APPTYPE CONSOLE}

uses
 SysUtils,
 Generics.Collections;

var
 list: TList<integer>;
 i, index:integer;
begin
 list := TList<integer>.Create;
 try
   for i := 0 to 10 do
     list.Add(i);
   for i := 0 to 10 do
   begin
     if not list.BinarySearch(i, index) then
       index := -1;
     writeln(format("Value: %d; index: %d", [i, index]));
   end;
 finally
   list.Free;
 end;
 readln;
end.
-------------------------
Результат:

Value: 0; index: 0
Value: 1; index: -1
Value: 2; index: 0
Value: 3; index: -1
Value: 4; index: -1
Value: 5; index: 0
Value: 6; index: -1
Value: 7; index: -1
Value: 8; index: -1
Value: 9; index: -1
Value: 10; index: -1


 
Jeer ©   (2009-01-21 22:08) [1]

Да уж.. как  бы сказать поаккуратнее.. :)

Сколько лет писаю на того или иного вида "бамагу" - ну, еж твою - не возникает
какого-либо видоизменений лакмусовой "бамаги".
Ну, что я делаю не так ?
Объясните, в конце-то концов !
Не, не о том "конце" речь - с тем концом усе упорядке :)


 
Petr V. Abramov ©   (2009-01-21 22:14) [2]


> Объясните, в конце-то концов !
> Не, не о том "конце" речь - с тем концом усе упорядке :)

да, у меня все порядке.
Не, не о том "конце" речь - с тем концом усе упорядке :)


 
vuk ©   (2009-01-21 22:25) [3]

Что-то непонятно?
Delphi 2009, win32, дженерики, поиск половинным делением не работает. Напрочь.


 
ketmar ©   (2009-01-21 22:35) [4]

а шо это вы тут делаете? O_O

---
Do what thou wilt shall be the whole of the Law.


 
palva ©   (2009-01-21 22:46) [5]


> дженерики, поиск половинным делением не работает. Напрочь.

А может надо как-то сообщить этому списку, что он отсортирован? Данные, правда, по факту отсортированы... Но я бы поискал какое нибудь .sorted := true


 
KilkennyCat ©   (2009-01-21 22:50) [6]


> vuk ©

Генофонд не копал?


 
vuk ©   (2009-01-21 23:02) [7]

Список в данном случае отсортирован изначально, так что вызов сортировки ничего не даст. В генофонд заглянул. Ошибка именно там. Что за обезьяна писала BinarySearch я так и не понял. Но тестированием этого точно никто не занимался.


 
KilkennyCat ©   (2009-01-21 23:08) [8]

Странно, зачем его вообще трогали. И как его могли испортить? Это ж классика... Сегодня полюбопытствую, как машину восстановлю.


 
Сергей М. ©   (2009-01-21 23:13) [9]


> vuk ©   (21.01.09 23:02) [7]


А можно ли глянуть на генообезьянокод этого самого BinariSearch ?


 
vuk ©   (2009-01-21 23:16) [10]

Вот мне тоже это непонятно. Как можно было наколбасить то, что там написано, если даже тупое передирание из любого места, где такой поиск есть, деёт нормальный результат? В институте за такое двойки ставят.


 
KilkennyCat ©   (2009-01-21 23:27) [11]

Страшно то, что теперь нельзя будет доверять ни чему...


 
vuk ©   (2009-01-21 23:50) [12]


class function TArray.BinarySearch<T>(const Values: array of T; const Item: T;
 out FoundIndex: Integer; const Comparer: IComparer<T>; Index,
 Count: Integer): Boolean;
var
 L, H: Integer;
 mid, cmp: Integer;
begin
 if (Index < Low(Values)) or (Index > High(Values))
   or (Index + Count - 1 > High(Values)) or (Count < 0)
   or (Index + Count < 0) then
   raise EArgumentOutOfRangeException.CreateRes(@sArgumentOutOfRange);
 if Count = 0 then
 begin
   FoundIndex := 0;
   Exit(False);
 end;

 L := Index;
 H := Index + Count - 1;
 while L <= H do
 begin
   mid := L + (H - L) shr 1;
   cmp := Comparer.Compare(Values[mid], Item);
   if cmp < 0 then
     L := mid + 1
   else if cmp = 0 then
   begin
     FoundIndex := L;
     Exit(True);
   end;
   H := mid - 1;
 end;
 FoundIndex := L;
 Result := False;
end;


 
jack128_   (2009-01-21 23:56) [13]

Удалено модератором


 
jack128_   (2009-01-21 23:58) [14]

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


 
vuk ©   (2009-01-22 01:14) [15]

Собственно да, компилятор на дженериках пока того... Смотрю в QC... Жесть... В принципе, примерно это и ожидалось... :(


 
Германн ©   (2009-01-22 01:21) [16]


> KilkennyCat ©   (21.01.09 23:27) [11]
>
> Страшно то, что теперь нельзя будет доверять ни чему...
>

А уже давно нельзя доверять ничему и никому! Первым меня подвёл Atmel. И до сих пор я не смог решить эту задачу. :(


 
Eraser ©   (2009-01-22 01:23) [17]

> [15] vuk ©   (22.01.09 01:14)


> Смотрю в QC... Жесть... В принципе, примерно это и ожидалось...

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


 
KilkennyCat ©   (2009-01-22 01:48) [18]


> Германн ©

Я тебе предлагал помощь. Предлагаю и сейчас, ибо полностью в Атмелах сейчас.


 
Германн ©   (2009-01-22 01:52) [19]


> KilkennyCat ©   (22.01.09 01:48) [18]
>
>
> > Германн ©
>
> Я тебе предлагал помощь. Предлагаю и сейчас, ибо полностью
> в Атмелах сейчас.
>

Я помню. Почта в анкете рабочая? Если да, то спрошу завтра.


 
test   (2009-01-22 05:25) [20]

А в какой версии появились типизированные TList?


 
KilkennyCat ©   (2009-01-22 09:20) [21]


> Германн ©   (22.01.09 01:52) [19]

в анкете не помню, здесь - да.


 
Sha ©   (2009-01-22 11:18) [22]

На первый взгляд в [12] нет ошибки.


 
Sha ©   (2009-01-22 11:37) [23]

нашел )
FoundIndex := L;


 
Marser ©   (2009-01-22 11:37) [24]

Это дженерики тут только сейчас появились или я что-то важное раньше пропустил?


 
vuk ©   (2009-01-22 11:43) [25]

to Sha ©   (22.01.09 11:18) [22]:
>На первый взгляд в [12] нет ошибки.
Ага. Ну да, похоже. Только вот на второй, а особенно после трассировки, становится видна вся белиберда. Для начала обратите внимание, что именно функция возвращает в качестве результата, когда cmp = 0.

Вот, для осознания разницы, вариант из QC, который предложил Rudy Velthuis:

class function TArray.BinarySearch<T>(const Values: array of T; const Item: T;
 out FoundIndex: Integer; const Comparer: IComparer<T>; Index,
 Count: Integer): Boolean;
var
 L, H: Integer;
 mid, cmp: Integer;
begin
 if (Index < Low(Values)) or (Index > High(Values))
   or (Index + Count - 1 > High(Values)) or (Count < 0)
   or (Index + Count < 0) then
   raise EArgumentOutOfRangeException.CreateRes(@sArgumentOutOfRange);
 if Count = 0 then
 begin
   FoundIndex := 0;
   Exit(False);
 end;

 Result := False;
 L := Index;
 H := Index + Count - 1;
 while L <= H do
 begin
   mid := L + (H - L) shr 1;                  
   cmp := Comparer.Compare(Values[mid], Item);
   if cmp < 0 then                 // mods 09/29/2008 R. Velthuis
     L := mid + 1
   else
   begin
     H := mid - 1;
     if cmp = 0 then
       Result := True;
   end;
 end;
 FoundIndex := L;
end;


Или вот еще:
function TStringList.Find(const S: string; var Index: Integer): Boolean;
var
 L, H, I, C: Integer;
begin
 Result := False;
 L := 0;
 H := FCount - 1;
 while L <= H do
 begin
   I := (L + H) shr 1;
   C := CompareStrings(FList^[I].FString, S);
   if C < 0 then L := I + 1 else
   begin
     H := I - 1;
     if C = 0 then
     begin
       Result := True;
       if Duplicates <> dupAccept then L := I;
     end;
   end;
 end;
 Index := L;
end;


 
Добежал   (2009-01-22 11:44) [26]


>  list: TList<integer>;

а что это такое за определение <integer>?!?!


 
Sha ©   (2009-01-22 11:51) [27]

vuk ©   (22.01.09 11:43) [25]

думаю, там у них просто ошибка при копи-паст вкралась (см. [23])

достаточно первый FoundIndex := L;
заменить на FoundIndex := mid;


 
vuk ©   (2009-01-22 11:54) [28]

to Marser ©   (22.01.09 11:37) [24] :
>Это дженерики тут только сейчас появились или я
>что-то важное раньше пропустил?
В D2009 они появились. Но, судя по QC, всё это пока неюзабельно. Помимо того, что в самой библиотеке такие вот ляпы, так еще и компиятор фигню гонит.

to Добежал   (22.01.09 11:44) [26]:
>  list: TList<integer>;
а что это такое за определение <integer>?!?!
integer - это тип данных такой. :) А TList<integer> - это объявление строго типизированного списка для элементов типа integer.


 
Sha ©   (2009-01-22 11:55) [29]

Т.е. дело скорее всего было так:
сначала забыли возвращать FoundIndex в случае успеха,
затем в процессе отладки это обнаружили и скопипастили присвоение,
которое было в случае неуспеха.


 
vuk ©   (2009-01-22 11:59) [30]

to Sha ©   (22.01.09 11:51) [27]:
>думаю, там у них просто ошибка при копи-паст вкралась (см. [23])
Да нет, это не копи-паст. Это человек решил цикл соптимизировать. Ну и "соптимизировал" - посмотрел, что за пределами цикла возвращается в качестве найденного индекса, прописал это в FoundIndex и свалил из функции. А то, что переменная еще в пределах цикла меняется, если не свалить, то это как-то от него ускользнуло. А на тестирование вообще забил.


 
ketmar ©   (2009-01-22 12:16) [31]

>[30] vuk © (2009-01-22 11:59:00)
потому что кодожир — страшное, неописуемое, ненужное говно. как и все дельфя после D7, увы.

---
All Your Base Are Belong to Us


 
vuk ©   (2009-01-22 12:19) [32]

to ketmar ©   (22.01.09 12:16) [31]:
>потому что кодожир — страшное, неописуемое, ненужное говно.
>как и все дельфя после D7, увы.

Ну, надо сказать, что D2009 на больших проектах стабильнее и D7 и D6...


 
han_malign ©   (2009-01-22 13:12) [33]


> достаточно первый FoundIndex := L;
> заменить на FoundIndex := mid;

H := mid - 1;


 
MBo ©   (2009-01-22 13:54) [34]

>Да нет, это не копи-паст. Это человек решил цикл соптимизировать. Ну и "соптимизировал"

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

А ведь казалось бы - и идея очень проста, в нескольких словах можно объяснить, и реализация в несколько строчек - ан нет, на грабельки почти все наступают...


 
Sergey Masloff   (2009-01-22 14:19) [35]

MBo ©   (22.01.09 13:54) [34]
Это в Керниган-Пайк "Практика программирования", насколько я помню.
Ключевое слово - с первого раза. Видимо там сетак и пишут - что вижу то пише пользователи протестируют ;-)


 
vuk ©   (2009-01-22 14:37) [36]

Многие не только реализовать нормально не могут, но и передрать - не очень-то...


 
vuk ©   (2009-01-22 14:46) [37]

Да, ещё. Если даже вернуть mid и поставить H := mid - 1 туда, куда надо, то такая реализация не будет учитывать возможное наличие дубликатов. Так что нормальная реализация - та, что из QC.


 
pasha_golub ©   (2009-01-22 16:32) [38]

Мужики, ну шо вы взъелись? Хлопцы по ночам код хреначили. Какие еще могу быть результаты. Но вот огорчило меня это. я так надеялся на дженерики, блин. задолбался уже TObjectList"ы городить кругом


 
vuk ©   (2009-01-22 16:43) [39]

Паш, их, конечно, юзать можно, но только осторожно очень. И, похоже, лучше свою реализацию классов наваять... Хотя, от глюков компилятора это не спасет.


 
qqq   (2009-01-22 17:08) [40]


> выпускают обновления, где не исправлены все известные баги,
>  что вкорне не правильно.

пытаются побыстрее залепить особо зияющие дыры, а остальные потом, отдельно

кстати, где можно качнуть обновления, чтоб не просило код регистрации?


 
Добежал   (2009-01-22 17:34) [41]


> А TList<integer> - это объявление строго типизированного
> списка для элементов типа integer

ну какой-то новый синтаксис, в D7 такого нету ;)
А какую информацию для экземпляра класса несет такое объявление?

И куда эта информация передается, в конструктор?

Я бы честно понял если бы просто:

List := TList<integer>.Create

Но вот какой смысл в объявлении var list: TList<integer> ?

Нельзя объявить обычный: var list: TList

а уж при создании указать как надо:

list := TList<integer>.Create

?


 
MBo ©   (2009-01-22 18:16) [42]

>Добежал   (22.01.09 17:34) [41]
>Нельзя объявить обычный: var list: TList
нет, это совсем разные классы, интерфейс совпадает лишь частично.\
По уму стоило бы новый назвать TGenericList или как-то так.


 
Добежал   (2009-01-22 18:42) [43]


> По уму стоило бы новый назвать TGenericList

блин. я в общем понял что ничего не понимаю... А где толково кратко почитать про введение в дженерики, желательно на русском?


 
MBo ©   (2009-01-22 18:50) [44]

на английском
http://sjrd.developpez.com/delphi/tutoriel/generics/

а на русском проще найти описание дотнетовских дженериков, достаточно близко


 
Григорьев Антон ©   (2009-01-22 19:27) [45]


> Добежал   (22.01.09 18:42) [43]
> А где толково
> кратко почитать про введение в дженерики, желательно на
> русском?

http://dn.codegear.com/article/39076 - это Кэнту пишет. Естественно, не на русском.


 
Добежал   (2009-01-22 19:49) [46]

спасибо


 
мимо   (2009-01-23 00:17) [47]

Ну что блин за мода - старые вещи новыми именами обзывать и преподносить как невероятное достижение. Всю жизнь это шаблонами было. Какие нафиг дженерики? Равно как и делегаты всю жизнь событиями считались.


 
Pavia ©   (2009-01-23 00:53) [48]


>  Равно как и делегаты всю жизнь событиями считались.

Ты путаешь. Делегаты это процедурный класс.  А сабытия на них строяться потому что сылку на метод обработчика события передают через переменную. Которая имеет тип метода. В дельфи такии типы были уже давно, а тут блин еще придумали ананимные методы хотя разницы почти никакой, но она есть.


 
31512 ©   (2009-01-23 09:01) [49]


> Добежал   (22.01.09 18:42) [43]

Начни отсюда http://www.rsdn.ru/article/dotnet/generics.xml?print
А потом можно раскрутить в сторону Delphi.


 
Григорьев Антон ©   (2009-01-23 10:18) [50]


> мимо   (23.01.09 00:17) [47]

Нет, обобщения (дженерики) - это не совсем шаблоны C++. У шаблонов больше возможностей и меньше ограничений по сравнению с обобщениями. Из-за этого обобщения считаются более безопасными.

Делегаты - это тоже не совсем процедурный тип, делегаты ещё и мульткаст поддерживают, это более высокоуровневые средства.

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


 
vuk ©   (2009-01-23 11:34) [51]

В QC репорт в состоянии Open. Хотя, честно говоря, исправление одной ошибки вряд ли сильно повлияет на юзабельность дженериков... Там проблем гораздо больше. А всё сразу вряд ли поправят.


 
Jack128_   (2009-01-23 11:49) [52]


> По уму стоило бы новый назвать TGenericList или как-то так.

зачем??  Никаких конфликтов из за идентичности имен тут быть не может, так зачем вводить префикс Generic, когда и так ясно, что он generic ??


 
pasha_golub ©   (2009-01-23 11:57) [53]

А как по мне так лучше было бы так:

List: T<Integer>List;
oblList: T<TmyObject>List;

Читаемость однако.


 
test   (2009-01-23 12:01) [54]

pasha_golub ©   (23.01.09 11:57) [53]

+100

Более привычный вариант записи Java.


 
pasha_golub ©   (2009-01-23 12:03) [55]


> test   (23.01.09 12:01) [54]


> Более привычный вариант записи Java.
>

Мне не важно. Все таки прилагательное в английском впереди стоять должно.


 
vuk ©   (2009-01-23 12:41) [56]

А вот мне понятнее именно так как есть. У функций, вот, тоже аргументы тоже после наименования идут, а не в середине.


 
pasha_golub ©   (2009-01-23 12:57) [57]


> vuk ©   (23.01.09 12:41) [56]


> У функций, вот, тоже аргументы тоже после наименования идут,
>  а не в середине.

Ну тут как бы из математики пример. Ничего страшного. Хотя вот допустим такое было бы тоже нормально:

List: TList(Integer);

В принципе, думаю, можно было бы такое замутить, шобы парсер не спотыкался.


 
vuk ©   (2009-01-23 13:36) [58]

to pasha_golub ©   (23.01.09 12:57) [57]:
>Хотя вот допустим такое было бы тоже нормально:
>List: TList(Integer);
То есть тебя смущают треугольные скобки?


 
Sha ©   (2009-01-23 13:47) [59]

меня дико смущают, так можно и дальше пойти без остановок:
в новых конструкциях начать использовать обратные апострофы,
тильды всякие, - ведь это ж какой шаг вперед будет!!!


 
ketmar ©   (2009-01-23 14:05) [60]

>[57] pasha_golub © (2009-01-23 12:57:00)
>Хотя вот допустим такое было бы тоже нормально:
>
>List: TList(Integer);

TList of Integer.
%-)

---
Understanding is not required. Only obedience.


 
pasha_golub ©   (2009-01-23 14:06) [61]


> vuk ©   (23.01.09 13:36) [58]


> То есть тебя смущают треугольные скобки?

Если честно, то да. :) Оно как мне сразу XML"ом отдает. И аж передергивает мну.


 
pasha_golub ©   (2009-01-23 14:08) [62]


> ketmar ©   (23.01.09 14:05) [60]


> TList of Integer.
> %-)

Тоже, кстати, шикарно. :) Или

TList for Integer;


 
vuk ©   (2009-01-23 14:39) [63]

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

TList of и TList for идут фтопку, как только параметров будет больше одного. Да и вообще, видимо стоит задуматься, что дженерики не только на контейнерные классы годятся.


 
ketmar ©   (2009-01-23 15:14) [64]

>[63] vuk © (2009-01-23 14:39:00)
>TList of и TList for идут фтопку, как только параметров будет больше одного.

why? TMap of String, Integer;

---
Do what thou wilt shall be the whole of the Law.


 
Jack128_   (2009-01-23 15:18) [65]

Я уже представлю себе как прекрасно будет читаться код в круглыми скобками:

TMyObj1(TMyObj2(Integer).Func)(1);   Лисп нервно курит в сторонке..


 
ketmar ©   (2009-01-23 15:23) [66]

>[65] Jack128_ (2009-01-23 15:18:00)
а запретить. определяй дополнительный тип через type и пиши потом его.

и, кстати, в свете вышесказанного: хочу область видимости для type хотя бы с «разрешением функция». а то и «кодовый блок». и для переменных тоже.

---
All Your Base Are Belong to Us


 
ketmar ©   (2009-01-23 15:24) [67]

>[65] Jack128_ (2009-01-23 15:18:00)
TMyObj1<TMyObj2<Integer>.Func>(1)

не вижу, чем это страшнее скобок.

---
All Your Base Are Belong to Us


 
vuk ©   (2009-01-23 15:28) [68]

to ketmar ©   (23.01.09 15:14) [64]:
Особо готишно будет смотреться приведение к такому типу а также определение его методофф. :D


 
Jack128_   (2009-01-23 15:57) [69]


> >[65] Jack128_ (2009-01-23 15:18:00)
> TMyObj1<TMyObj2<Integer>.Func>(1)
>
> не вижу, чем это страшнее скобок.


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


 
ketmar ©   (2009-01-23 16:22) [70]

>[69] Jack128_ (2009-01-23 15:57:00)
лично мне чётко очевидно только одно: кого-то в этом коде укусил страуструп.

---
All Your Base Are Belong to Us


 
vuk ©   (2009-01-23 22:05) [71]

Не трожь птичку! Оно и так мертвое!
Ты учти, что с предложенными "альтернативными" вариантами кусаться начнут те, кому это юзать.


 
ketmar ©   (2009-01-24 04:37) [72]

>[71] vuk © (2009-01-23 22:05:00)
>Ты учти, что с предложенными "альтернативными" вариантами кусаться начнут те,
>кому это юзать.

а это уже не мои проблемы. я всё равно сейчас на цэ пишу. %-)

---
Understanding is not required. Only obedience.


 
Fantas   (2009-01-27 19:16) [73]


> Если честно, то да. :) Оно как мне сразу XML"ом отдает.
> И аж передергивает мну.


Это с непривычки. Как привыкнешь, так действительно так удобно - сразу видно параметрезированный тип, как тут уже раньше сказали. Читать так удобнее (и писать).


 
ketmar ©   (2009-01-27 20:11) [74]

>[73] Fantas (2009-01-27 19:16:00)
>Как привыкнешь, так действительно так удобно — сразу видно параметрезированный
>тип

а мы для этого используем редакторы с нормальной подсветкой синтаксиса…

---
Understanding is not required. Only obedience.


 
vuk ©   (2009-01-27 20:15) [75]

Если синтаксис фигово читается без подсветки, то такой синтаксис - фиговый. IMHO


 
ketmar ©   (2009-01-27 20:45) [76]

>[75] vuk © (2009-01-27 20:15:00)
паскаль фтопку, си фтопку, ещё кучу языков фтопку. нормально без подсветки читается только modula/oberon, имо.

---
Understanding is not required. Only obedience.


 
Eraser ©   (2009-01-27 20:54) [77]

> [76] ketmar ©   (27.01.09 20:45)

ассемблер тоже нормально без подсветки.

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


 
ketmar ©   (2009-01-28 01:53) [78]

>[77] Eraser © (2009-01-27 20:54:00)
покажи мне плюсанутого, добровольно перешедшего на Delphi. а если насильно — хоть ты ему кучу всякой фигни насуй, всё равно недоволен будет.

---
Do what thou wilt shall be the whole of the Law.


 
Игорь Шевченко ©   (2009-01-28 01:56) [79]

ketmar ©   (28.01.09 01:53) [78]

Все у тебя какие-то крайности. Какая нахрен разница, на чем писать - на чем удобней, на том и пишется, может, того, хватит священные пожары раздувать ?


 
ketmar ©   (2009-01-28 02:01) [80]

>[79] Игорь Шевченко © (2009-01-28 01:56:00)
я, вообще-то, намекаю на то, откуда расползается ублюдочный синтаксис с угловыми скобками. и почему аргумент «так привычней» — ерунда.

---
Understanding is not required. Only obedience.


 
vuk ©   (2009-01-28 02:05) [81]

to ketmar ©   (28.01.09 02:01) [80]:
>я, вообще-то, намекаю на то, откуда расползается ублюдочный синтаксис
>с угловыми скобками.
Видишь ли, всё, что ты сам тут предлагал, оно еще более ублюдочное.


 
ketmar ©   (2009-01-28 06:10) [82]

>[81] vuk © (2009-01-28 02:05:00)
>Видишь ли, всё, что ты сам тут предлагал, оно еще более ублюдочное.

а я ничего всерьёз и не предлагал. я, собственно, вообще против этой фичи. определить нужность фичи очень просто: как только от синтаксиса хочется блевать — фича не нужна.

---
Understanding is not required. Only obedience.


 
Riply ©   (2009-02-04 01:08) [83]

> [0] vuk ©   (21.01.09 21:15)
> Ндааааа....

Сижу, ищу очень нехорошую "плавующую" ошибку под Delphi 2009 (в 2006 ее нет).
Раньше все было просто: что-то не так - ищи ошибку у себя в коде,
ибо нечего гнать халтуру :)
А теперь: ищу, а в голове копошатся "неправильные мысли"
- а вдруг это не я напартачила ? А вдруг это "Дельфя глюкавая" ?
И уж очень они (эти мысли) мешают искать ошибку :)

Я это все к тому, что нельзя публиковать подобные ветки в местах,
где могут появляться люди с еще не окрепшим сознанием (как, например, у меня),
ибо сбивают с пути истинного :)


 
korneley ©   (2009-02-04 01:44) [84]


> - а вдруг это не я напартачила ? А вдруг это "Дельфя глюкавая"
> ?

Любой, задокументированный баг - фича. Так, что, искать разруху надо в других местах... Или отказаться от среды...Пятницы.. и т.д. Ну нет ещё достойных аналогов "дженериков" в Delphi-Pascal, и что? Сделайте что-нибудь на плюсАх (любых) , что нельзя сделать из-под Delphi.


 
Riply ©   (2009-02-04 02:00) [85]

> [84] korneley ©   (04.02.09 01:44)

Да я там (в своем посте) смайликов немерянно понаставила,
дабы никто случайно за чистую монету не принял :)


 
Германн ©   (2009-02-04 02:06) [86]


> Я это все к тому, что нельзя публиковать подобные ветки
> в местах,
> где могут появляться люди с еще не окрепшим сознанием (как,
>  например, у меня),
> ибо сбивают с пути истинного :)
>

Ты, Саш, правильно делаешь, что публикуешь свои ветки тут. Тут есть контингент "закалённых". Они тебя всегда примут и поймут.
А "пришедшие"? Ну и бог с ними. Если они с мозгами, то поймут, рано или поздно.


 
Jack128_   (2009-02-04 08:53) [87]


> Сижу, ищу очень нехорошую "плавующую" ошибку под Delphi
> 2009 (в 2006 ее нет).
> Раньше все было просто: что-то не так - ищи ошибку у себя
> в коде,

ну если "раньше" имеется в виду - в дельфи7 и ниже, то соглашусь. А в d2006 - вагон и маленькая тележка глюков. Как среду, так и компилера..

Кста, а что тя заставило перейти на 2009 ?? Те юникод так нужен ??


 
Riply ©   (2009-02-04 09:58) [88]

> [87] Jack128_   (04.02.09 08:53)
> Кста, а что тя заставило перейти на 2009 ?? Те юникод так нужен ??

Да, нет. Я на него(юникод) уже давно подсела :)
Просто решила попробовать свои силы в совместном проекте.
А началась работа над этим проектом,
со страшного скандала (почти с мордобитием) о выборе среды разработки.
И пришлось мне отступить под давлением ну просто неопровержимых аргументов :)
Вот так и докатилась до жизни такой :)


 
Jack128_   (2009-02-04 11:35) [89]


> И пришлось мне отступить под давлением ну просто неопровержимых
> аргументов :)
А.. Бывает..


 
MBo ©   (2009-02-05 07:22) [90]

Вот еще народ жалуется:

http://alex.ciobanu.org/?p=59

There are serious flaws in TDictionary in Delphi 2009. Try to avoid using it until a fixed version comes out. You can find a list of them in QC, but just to name two:

TDictionary.Clear() is flawed. If you clear the dictionary and then try to add another item to it, you will get an AV.
TDictionary.Add() is too


 
Jack128_   (2009-02-05 09:44) [91]

Да ерунда.. Я вот переодически подхожу к D2009 и всегда как только что нить пытаюсь написать - тут же натыкаюсь на ошибки компилера..  вот пару дней назад более удобную реализацию итераторов пытался написать, через анонимные функции.  Вот результат: http://qc.codegear.com/wc/qcmain.aspx?d=71106


 
федот   (2009-02-05 09:46) [92]

Andreas Hausladen, выпустил очередную версию IDEFixPack. И на этот раз все таки победил "Cannot resolve unit name" bug.
http://andy.jgknet.de/blog/?p=484
Для 2007 и 2009.


 
Piter ©   (2009-02-05 22:52) [93]

да умерла дельфи, надо давно это признать. Если год назад я об этом говорил глядя просто на новые версии, то сейчас об этом можно говорить глядя тупо на вакансии. Конечно, на фоне кризиса, но... На том же sql.ru вакансий по дельфи просто нету или может 1-2. На job"ах всяких тоже очень мало на фоне других ЯП. Новые проекты серьезные на дельфях просто не начинают, все движется исключительно по инерции. Java и net правят миром языков высокого уровня ) По ходу те, кто делали гениальную для своего времени D7 давно в MS работают или Sun )))

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

Да, комменты насчет того что "хоронят уже десятый год" - приветствуются.


 
test ©   (2009-02-05 22:58) [94]

Riply ©   (04.02.09 01:08) [83]
Jedi  http://sf.net
тут ловят ошибки, через hook

Riply ©   (04.02.09 01:08) [88]
Вот счас по подробнее, может кто из мастеров может просто порвать.


 
Riply ©   (2009-02-05 23:42) [95]

> [93] Piter ©   (05.02.09 22:52)

> Новые проекты серьезные на дельфях просто не начинают,

Сударь !  Вы имеете наглость называть Мой Проект "не серьезным" !?   :)
( т.к. он на Delphi и новый - остается отсутствие серьезности :) )


 
Riply ©   (2009-02-05 23:49) [96]

> [94] test ©   (05.02.09 22:58)
> тут ловят ошибки, через hook

Да ошибка уже поймана, обвинения с ее Величества Delphi сняты :)

> Вот счас по подробнее, может кто из мастеров может просто порвать.

Да поздно уж после драки кулаками махать :)


 
Добежал   (2009-02-06 16:57) [97]


> Сударь !  Вы имеете наглость называть Мой Проект "не серьезным"
> !?  

если этот проект "твой" - он по определению несерьезный. Серьезный - это хотя бы с десяток программеров при сроках реализации не меньше года. Ну я так себе представляю.


 
Eraser ©   (2009-02-06 17:09) [98]

> [93] Piter ©   (05.02.09 22:52)

понядобилось тут на днях написать на MSVSC++ небольшую GUI прожку... проклял всё. в очередной раз посочувтсвовал тем, кому приходится там разрабатывать серьезные GUI-приложения. C# это конечно другое дело, там похоже на делфи по сложности.
вот и тебе советую не теоретизировать, а взят и написать хотя бы "блокнот" на MSVSC++ тогда и поговорим.


 
Riply ©   (2009-02-06 19:42) [99]

> [97] Добежал   (06.02.09 16:57)

> если этот проект "твой" - он по определению несерьезный.
> Серьезный - это хотя бы с десяток программеров при сроках реализации не меньше года.

"Здесь мерилом работы считают усталость" (с)  
Я правильно тебя поняла ?  :)


 
XentaAbsenta ©   (2009-02-06 19:52) [100]

Eraser ©   (06.02.09 17:09) [98]
попробуй приложение для работы с бд наваять используя mfc, а точнее модель-представление. Это круче блокнота. Я пробовал - забил не написав.


 
Piter ©   (2009-02-06 22:56) [101]

Eraser ©   (06.02.09 17:09) [98]
понядобилось тут на днях написать на MSVSC++ небольшую GUI прожку

ну так no comments

Riply ©   (06.02.09 19:42) [99]
"Здесь мерилом работы считают усталость" (с)  
Я правильно тебя поняла ?  :)


нет.


 
Piter ©   (2009-02-06 22:57) [102]

XentaAbsenta ©   (06.02.09 19:52) [100]
попробуй приложение для работы с бд наваять используя mfc


попробуй прочитать мой пост и увидеть там словосочетания mfc


 
Lamer@fools.ua ©   (2009-02-06 23:19) [103]

Раздуем пожар дальше.
Ну в VB.NET"е такой синтаксис:
Dictionary(Of TKey, TValue)
и чё?
o:)


 
Riply ©   (2009-02-07 01:04) [104]

> [99] Riply ©   (06.02.09 19:42)
>> [97] Добежал   (06.02.09 16:57)
>"Здесь мерилом работы считают усталость" (с)  
>Я правильно тебя поняла ?  :)

> [101] Piter ©   (06.02.09 22:56)
>>Riply ©   (06.02.09 19:42) [99]
>>"Здесь мерилом работы считают усталость" (с)  
>>Я правильно тебя поняла ?  :)

>нет.

> Piter`у, который Добежал :)

Может, тогда так правильно:
"Серьезным считается проект в котором не менее 137 форм" ?  :)


 
Piter ©   (2009-02-07 13:15) [105]

Riply ©   (07.02.09 1:04) [104]
Может, тогда так правильно:
"Серьезным считается проект в котором не менее 137 форм" ?  :)


тебе нравится бред что ли фантазировать? Я сказал кажется ясно, серьезный - это когда с десяток программистов профессиональных пишут не меньше года. И это более-менее серьезный. Что тебе тут непонятно?

Серьезность оценивается не в количестве форма и не в количестве строк кода даже. А в затраченных человеках/часах. Это и есть трудоемкость, догадаться что сложно?


 
Псалтырь ©   (2009-02-08 17:58) [106]


> Piter ©   (07.02.09 13:15) [105]


> это когда с десяток программистов профессиональных пишут
> не меньше года.

а на кой ляд именно десяток? Двух-трех никак нельзя? или оптом программеры дешевле?


 
вернулся из ссылки   (2009-02-09 01:03) [107]

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

код - вот где надёга.

с точки зрения компилятора дельфи еще не один год проживет.

имхо.


 
TohaNik ©   (2009-02-09 10:25) [108]


> "Серьезным считается проект в котором не менее 137 форм"
> ?  :)


Неправильно, серьезность проекта определяет серьезность не менее десятка серьезных программистов.
А ты смайликов немеряно пишешь, значит несерьезная:).


 
Riply ©   (2009-02-09 11:30) [109]

> [105] Piter ©   (07.02.09 13:15)
> тебе нравится бред что ли фантазировать?

Нет. Мне нравится "вопросы спрашивать, чтобы на них ответы отвечали" :)

> [108] TohaNik ©   (09.02.09 10:25)
> Неправильно, серьезность проекта определяет серьезность не менее десятка серьезных программистов.
> А ты смайликов немеряно пишешь, значит несерьезная:).

"- Алло?
– Здравствуйте! С вами говорит один из составителей сборника «Физики шутят». Нам рекомендовали...
– Простите, какого сборника?
– «физики шутят».
– Что делают физики?!
– Шу-тят!
– Не понимаю.
– Ну, шутят, смеются.
– Ах, смеются... Ну, так что же?
– Это будет сборник переводов. Не встречались ли случайно вам или вашим сотрудникам в иностранной физической литературе...
– Нет, нет! Наши сотрудники занимаются серьезными делами, и им не до шуток."

 
(с) из телефонного разговора авторов одноименного сборника  :)


 
zanussi   (2009-02-15 19:38) [110]

Удалено модератором
Примечание: Offtopic


 
имя   (2009-02-23 03:37) [111]

Удалено модератором



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

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

Наверх





Память: 0.76 MB
Время: 0.009 c
2-1237208496
DmitriyR
2009-03-16 16:01
2009.04.26
Динамический массив


2-1237123155
бобик
2009-03-15 16:19
2009.04.26
позиция курсора


2-1236773609
Term
2009-03-11 15:13
2009.04.26
Вопрос по выделению цветом в TRichEdit


2-1236876949
Timur
2009-03-12 19:55
2009.04.26
Сравнение массивов


2-1237188570
Zalum
2009-03-16 10:29
2009.04.26
открыть страницу в Internet Explorer-e. ShellExecute





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский