Форум: "Потрепаться";
Текущий архив: 2005.02.20;
Скачать: [xml.tar.bz2];
ВнизЯ на грани самоубийства!!! Найти похожие ветки
← →
Околокомпьютерный (2005-01-25 13:13) [40]а компилитор тебе еще сочувствовать не начал???
← →
Marser © (2005-01-25 13:22) [41]
> MacroDenS © (24.01.05 20:02) [38]
> Держись, Kerk. Мы все тебе сочуствуем.
> // Ты б у начальства навел справки про предыдущего прогера,
> что б весь пыл на него направить, а то суицид - енто не
> круто.
Дадад. И паяльник ватт на 25 прихвати :-)
← →
Рамиль © (2005-01-25 13:35) [42]Marser © (25.01.05 13:22) [41]
За такой код лучше утюг:)
← →
Delphin © (2005-01-25 14:40) [43]Рамиль © (25.01.05 13:35) [42]
> Дадад. И паяльник ватт на 25 прихвати :-)
Настоящие программисты/хакеры используют паяльник :))
← →
basken (2005-01-25 15:13) [44]
> Настоящие программисты/хакеры используют паяльник :))
а также – электрические вспоминатели (кипятильники) …))
← →
TUser © (2005-01-25 15:20) [45]Автора кода надо заставить до конца жизни пользоваться одной-единственной шариковой мышкой, в том числе при работе с программами PhotoShop, QuarkXPress, PageMaker, AutoCAD, 3D Max, Сапер, а также УниверсальныйЗаменитьСломавшейсяКлавиатуры (рисует изображение клавиатуры и позволяет тыкать туда мышью).
← →
alt84 (2005-01-25 22:11) [46]Ой..... Дэээээ?????
Что-то до боли знакомые строчки ;)
Смотрю, вам закусить нечем? :)
Тогда вот из последнего моего проджекта:\s*СУПЕРМАРКЕТ "ДАСТАРХАН"
\s*серия №xxxxx лиц.номер xxxxxxx
\s*телефон доставки: xx-xx-xx
\s*ДОБРО ПОЖАЛОВАТЬ !
\s*Касса № [0-9]*
\s*Кассир:(?P<cashier_name>.*)
(?P<item_cod>\d+).(?P<item_name>.*)
((?P<item_count>[0-9.]+) Х (?P<item_price>[0-9.]+)\s*)*Стоимость\.*(?P<item_total>[0-9.]+)
(\s*Сторно\s*)*=+
Всего\.*(?P<total>[0-9.]+)
В том числе НДС [0-9]+%\.*[0-9]+
[0-9]+\s*=[0-9.]+
ИТОГ\s*=[0-9.]+
\s*НАЛИЧНЫМИ\s*=(?P<agree>[0-9.]+)
(СДАЧА\s*=[0-9.]+\s*)*ККМ\s+[0-9]+\s+ИНН\s+[0-9]+\s+#(?P<check_number>[0-9]+)
[0-9.]+\s+[0-9:]+\s+.*
.*ПРОДАЖ\S+\s+№[0-9]+
\s*ФП
Что-то не ясно? :) Парсер чеков для супермаркета в Казахстане :)
Ребят, вы что? Забыли, где Чуйская долина находиться? :)
А если это дело еще и с музончиком от нашей "Адаптация" забадяжить, то вообще такая отменная дурь получается, что только за комп и проги писать :) Гыыыыыыыыы :)
← →
Kerk © (2005-01-25 22:12) [47]alt84 (25.01.05 22:11) [46]
твое понятнее.. :)
когда свое закончу, на твое перейду.. чтоб постепенно было.. без ломки..
← →
Marser © (2005-01-26 18:14) [48]
> УниверсальныйЗаменитьСломавшейсяКлавиатуры (рисует изображение
> клавиатуры и позволяет тыкать туда мышью).
Простите за ламерство, а как это чудо будет работать, если в CMOS "halt on all errors""?
> Рамиль © (25.01.05 13:35) [42]
> Marser © (25.01.05 13:22) [41]
> За такой код лучше утюг:)
Нет, точечные воздействия имеют больший эффект при меньших послдествиях :-)
← →
Soft © (2005-01-26 19:50) [49]Вполне нормально. Я сам так иногда пишу. А с конструкцией with можно вполне запутаться самому.
procedure TNTDScreen.CalculateHosts;
var i:integer;
Var TextSize:TSize;
begin
//Подсчет координат узлов
If (NTDSystem.N_Hosts>0) then
for i:=1 to NTDSystem.N_Hosts do
begin
//вычисляем индекс картинки
NTDSystem.Hosts[i].IndexPicture:=GetPointerPictureByParam(NTDSystem.Hosts[i].testing,NTDSystem.Hosts[i].TypeHost,NTDSyst em.Hosts[i].Status);
//вычисление координат вывода пиктограммы
NTDSystem.Hosts[i].PPicture.X:=NTDSystem.Hosts[i].X+StartCord.X-(Trunc(NTDSystem.Images[NTDSystem.Hosts[i].IndexPicture] .Image.Width*IconSize/100) div 2);
NTDSystem.Hosts[i].PPicture.Y:=NTDSystem.Hosts[i].Y+StartCord.Y-(Trunc(NTDSystem.Images[NTDSystem.Hosts[i].IndexPicture] .Image.Height*IconSize/100) div 2);
//Вычисление координат вывода описания узла
NTDSystem.Hosts[i].PAbout.Y:=NTDSystem.Hosts[i].PPicture.Y+Trunc(NTDSystem.Images[NTDSystem.Hosts[i].IndexPicture].Image .Height*IconSize/100);
TextSize:=WritedPicture.Bitmap.Canvas.TextExtent(NTDSystem.Hosts[i].AboutName);
NTDSystem.Hosts[i].PAbout.X:=NTDSystem.Hosts[i].X+StartCord.X-(TextSize.cx div 2);
//Вычисление координат вывода времени тестирования узла
NTDSystem.Hosts[i].PTime.Y:=NTDSystem.Hosts[i].PAbout.Y+TextSize.cy;
NTDSystem.Hosts[i].TimeString:=FormatDateTime("dd.mm.yyyy hh:nn",NTDSystem.Hosts[i].TimeWhenTest);
//при выходе узла из строя выводим продолжительность
if (NTDSystem.Hosts[i].Status=4) then
NTDSystem.Hosts[i].TimeString:=NTDSystem.Hosts[i].TimeString+"("+FormatDateTime("hh:nn",now-NTDSystem.Hosts[i].Timeout)+ ")";
TextSize:=WritedPicture.Bitmap.Canvas.TextExtent(NTDSystem.Hosts[i].TimeString);
NTDSystem.Hosts[i].PTime.X:=NTDSystem.Hosts[i].X+StartCord.X-(TextSize.cx div 2);
//Вычисление начальных и конечных координат пиктограммы
NTDSystem.Hosts[i].PTop.X:=StartCord.X+NTDSystem.Hosts[i].X-(Trunc(NTDSystem.Images[NTDSystem.Hosts[i].IndexPicture].Ima ge.Width*IconSize/100) div 2);
NTDSystem.Hosts[i].PTop.Y:=StartCord.Y+NTDSystem.Hosts[i].Y-(Trunc(NTDSystem.Images[NTDSystem.Hosts[i].IndexPicture].Ima ge.Height*IconSize/100) div 2);
NTDSystem.Hosts[i].PBottom.X:=StartCord.X+NTDSystem.Hosts[i].X+(Trunc(NTDSystem.Images[NTDSystem.Hosts[i].IndexPicture]. Image.Width*IconSize/100) div 2);
NTDSystem.Hosts[i].PBottom.Y:=StartCord.Y+NTDSystem.Hosts[i].Y+(Trunc(NTDSystem.Images[NTDSystem.Hosts[i].IndexPicture]. Image.Height*IconSize/100) div 2);
end;
end;
← →
Soft © (2005-01-26 20:09) [50]>>Kerk © (24.01.05 10:56)
>>Скажите что-нибудь приятное.. чтоб жить захотелось!!!
Онлайновый клуб самоубийц учит людей суициду
http://www.membrana.ru/print.html?1044291600
Так что если соберешься, сделай это профессионально... а то получится как с тем кодом.
← →
esu © (2005-01-26 20:51) [51]
> alt84 (25.01.05 22:11) [46]
ну тут-то как раз все нонятно :)
А вот с [0] действительно тяжко... И много там кода в таком стиле ?
← →
jack128 © (2005-01-26 22:16) [52]Soft © (26.01.05 19:50) [49]
Ну не знаю.. По мне вот так на порядок понятнее и прозрачнееprocedure TNTDScreen.CalculateHosts;
var
i:integer;
TextSize:TSize;
begin
//Подсчет координат узлов
if (NTDSystem.N_Hosts>0) then
for i:=1 to NTDSystem.N_Hosts do
begin
Host := NTDSystem.Hosts[i];
//вычисляем индекс картинки
Host.IndexPicture:=GetPointerPictureByParam(Host.Testing, Host.TypeHost, Host.Status);
HostImage := NTDSystem.Images[Host.IndexPicture].Image;
//вычисление координат вывода пиктограммы
Host.PPicture.X:=Host.X+StartCord.X-(Trunc(HostImage.Width*IconSize/100) div 2);
Host.PPicture.Y:=Host.Y+StartCord.Y-(Trunc(HostImage.Height*IconSize/100) div 2);
//Вычисление координат вывода описания узла
Host.PAbout.Y:=Host.PPicture.Y+Trunc(HostImage.Height*IconSize/100);
TextSize:=WritedPicture.Bitmap.Canvas.TextExtent(Host.AboutName);
Host.PAbout.X:=Host.X+StartCord.X-(TextSize.cx div 2);
//Вычисление координат вывода времени тестирования узла
Host.PTime.Y:=Host.PAbout.Y+TextSize.cy;
Host.TimeString:=FormatDateTime("dd.mm.yyyy hh:nn",Host.TimeWhenTest);
//при выходе узла из строя выводим продолжительность
if (Host.Status=4) then
Host.TimeString:=Host.TimeString+"("+FormatDateTime("hh:nn",now-Host.Timeout)+ ")";
TextSize:=WritedPicture.Bitmap.Canvas.TextExtent(Host.TimeString);
Host.PTime.X:=Host.X+StartCord.X-(TextSize.cx div 2);
//Вычисление начальных и конечных координат пиктограммы
Host.PTop.X:=StartCord.X+Host.X-(Trunc(HostImage.Width*IconSize/100) div 2);
Host.PTop.Y:=StartCord.Y+Host.Y-(Trunc(HostImage.Height*IconSize/100) div 2);
Host.PBottom.X:=StartCord.X+Host.X+(Trunc(HostImage.Width*IconSize/100) div 2);
Host.PBottom.Y:=StartCord.Y+Host.Y+(Trunc(HostImage.Height*IconSize/100) div 2);
end;
end;
← →
Kerk © (2005-01-27 00:01) [53]Soft © (26.01.05 19:50) [49]
Вполне нормально. Я сам так иногда пишу.
Нормально??? Да давить за такое надо!!!
(Зря ты признался.. :))
← →
Soft © (2005-01-27 00:52) [54]>>Kerk © (27.01.05 00:01) [53]
Зато заказчик доволен как слон и поддерживать программу не дадут в другие руки. Удобно.
← →
Kerk © (2005-01-27 00:56) [55]Soft © (27.01.05 0:52) [54]
вот вот.. только о себе и думаешь. давить.
← →
Gero © (2005-01-27 01:03) [56]
> Soft © (27.01.05 00:52)
Я б на месте твоего начальства за такой код уволил бы тебя не задумываясь.
← →
nikkie © (2005-01-27 01:05) [57]>[54] Soft
и этот человек учит меня не ковырять в носу?
>[55] Kerk
похоже у Керка суициидальные настроения сменились жаждой мести авторам такого кода. оно правильно. это более конструктивный подход.
← →
Erik1 © (2005-01-27 10:36) [58]Я тоже много чего приятного встречал, однажды в мои руки попал проект использующий в качестве базы MsAccess + Delphi 3. Для начала автор подключил для доступа к Access BDE, но ему этого показалась мало и он добавил ODBC. Далее понапихол в проект кучу стороних компонент для красоты, разумеется без указания, что это за компоненты и где их взять. После этого там был написан "миленкий" код, этого шедевра повторить немогу! Но он умел открывать форму для просмотра 20000 локальных записей 4 минуты. И кажется смог добится экспотенциального падения производительности, при увеличении данных. Когда мне дали код, формы разумеется неоткрывались и я нашол все компоненты, чтото сделал с программой и она даже заработала. В конце концов переписал ее заного полностью на MsAccess. Смотря только на тех. задание, там различий дохрена было.
Мне вобще везет на перлы, главное в этом деле, понять как это должно работать. После просто переписываеш.
← →
Kerk © (2005-01-27 10:42) [59]esu © (26.01.05 20:51) [51]
А вот с [0] действительно тяжко... И много там кода в таком стиле ?
34,2 тыс строк
← →
Bel © (2005-01-27 10:47) [60]Мне тоже приходилось доделывать проект за одним чудиком. Мало того, что он написал свой интерпретатор, документацию по нему не оставил, так он еще и реализовал его так, что черт ногу сломит. Вот, например, этот кусок у меня в 6 Делфи не скомпилировался, сказал, что не может одну переменную цикла использовать. (Он писал на 3 Делфи). Как вообще такое можно писать?
function FldByTblFLdNm(const mTbl,NmFld:string):TmyFields;
var i,j:integer;
begin
Result := Flds[0];
for i := 1 to FldCount do begin
j := i;
if Flds[i].F <> nil then
if ( lowerCase(trim(Flds[i].F.DataSet.Name )) + "#" = (lowerCase(trim(NmTbl))+ "#") )
then begin
for i := i to FldCount do begin
j := i;
if not (lowercase(trim(Flds[j].F.DataSet.Name) ) + "#" = lowercase(trim(NmTbl))+ "#" ) then begin
for i := FldCount downto j do begin
if (lowercase(trim(Flds[i].F.DataSet.Name) ) + "#" = lowercase(trim(NmTbl))+ "#" )
and (uppercase(trim(Flds[i].F.FieldName )) + "#" = uppercase(trim(NmFld))+ "#" )
then begin Result := Flds[i]; exit; end;
end;
Result := Flds[0];
exit;
end;
if (uppercase(trim(Flds[j].F.FieldName )) + "#" = uppercase(trim(NmFld))+ "#" )
then begin Result := Flds[j]; exit; end;
end;
break;
end;
end;
end;
← →
Kerk © (2005-01-27 10:49) [61]Bel © (27.01.05 10:47) [60]
LOL. Оригинальный чувак был. :))
← →
Nous Mellon © (2005-01-27 11:05) [62]
>
> LOL. Оригинальный чувак был. :))
Думаешь, его уже убили?
← →
TUser © (2005-01-27 11:13) [63]Интересно, а ко мне вот студенты на курсовые работы пришли. Стоит ли ждать такого?
← →
Kerk © (2005-01-27 11:16) [64]Nous Mellon © (27.01.05 11:05) [62]
ну мало ли.. за такое можно. :)
TUser © (27.01.05 11:13) [63]
тех, кто сдаст что-то подобное лучше сразу отрави.
Страницы: 1 2 вся ветка
Форум: "Потрепаться";
Текущий архив: 2005.02.20;
Скачать: [xml.tar.bz2];
Память: 0.59 MB
Время: 0.04 c