- 1
- 2
- 3
- 4
- 5
- 6
for (i = MAX_PATH; 5; i--){
if (CurProfileF[i] == 't' && CurProfileF[i-3] == '.'){
i = i-3;
break;
}
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+57
for (i = MAX_PATH; 5; i--){
if (CurProfileF[i] == 't' && CurProfileF[i-3] == '.'){
i = i-3;
break;
}
}
http://trac.miranda-ng.org/browser/trunk/protocols/Xfire/src/variables.cpp?rev=5315#L194
−864
sResult:= '';
select code||' '||h.longname into sResult
from tbl1 mo, tbl2 ob, g_cli c, tbl3 h
where mo.m_dep_id = ob.obj_dep_id and mo.m_id = ob.obj_id
and ob.dep_id = nDepId and ob.id = nId
and mo.cli_dep_id = c.dep_id and mo.cli_id = c.id
and c.id = h.id and c.dep_id = h.dep_id and p_operday between h.FROMDATE and h.TODATE;
return sResult;
exception
when NO_DATA_FOUND then return null;
when TOO_MANY_ROWS then
for rec in( select distinct code as cli_code, h.longname as cli_name
from tbl1 mo, tbl2 ob, g_cli c, tbl3 h
where mo.m_dep_id = ob.obj_dep_id and mo.m_id = ob.obj_id
and ob.dep_id = nDepId and ob.id = nId
and mo.cli_dep_id = c.dep_id and mo.cli_id = c.id
and c.id = h.id and c.dep_id = h.dep_id and dT between h.FROMDATE and h.TODATE)
loop
if nvl(length(sResult),0) = 0 then
sResult:= rec.cli_code||' '||rec.cli_name;
else
sResult:= sResult||', '||rec.cli_code||' '||rec.cli_name;
end if;
end loop;
return sResult;
when others then return null;
+156
$arResult = Yii::app()->db->createCommand($sql)->queryRow();
if ($arResult && isset($arResult) && is_array($arResult) && !empty($arResult['pk_report'])) {
...
}
проверить все, что скрыто
+137
void _device_ChangeStsConnect(bool Conn)
{
switch (Conn)
{
case true: Start(); break;
case false: Stop(); break;
default: break;
}
}
"Классический" switch булевой переменной.
+88
function TCalc.getRewardItems(items : AnsiString; countItems : integer; userId : Integer; from:integer) : ISuperObject;
var tmpFirstOdds : integer;
strLines, extrLines : TStringList;
strItems, strOdds, strOdds2: TIntegerList;
i, j, tmpCountItems : integer;
tmpOddsItems, sum : Integer;
str: ansistring;
begin
Result := nil;
// parse items line [id1,odd1],[id2,odd2],[id3,odd3]
strLines := TStringList.Create;
extrLines := TStringList.Create;
strItems := TIntegerList.Create;
strOdds := TIntegerList.Create;
ExtractStrings(['[', ']'],[','], PChar(items), strLines);
for i := 0 to strLines.Count - 1 do
begin
ExtractStrings([','],[' '], PChar(strLines[i]), extrLines);
strItems.Add(StrToInt(extrLines[0]));
strOdds.Add(StrToInt(extrLines[1]));
extrLines.Clear;
end;
// calculate odds [a,b,c,d] as [a,a+b,a+b+c,a+b+c+d]
sum := 0;
strOdds2 := TIntegerList.Create;
for i := 0 to strOdds.Count-1 do
begin
sum := sum + strOdds.Items[i];
strOdds2.Add(sum);
end;
// select items
str := '';
for i := 0 to countItems - 1 do
begin
tmpFirstOdds := Random(101); // 0-100
for j := 0 to strOdds2.Count-1 do
begin
if tmpFirstOdds < strOdds2.Items[j] then
begin
str := str + IntToStr(strItems[j]) + ',';
break;
end;
end;
end;
str := '['+Copy(str,1,Length(str)-1)+']';
// from monster
if from=0 then Result := so('{"part":"battle","func":"itemsdropped","data":'+str+'}');
// from chest
if from=1 then Result := so('{"part":"battle","func":"itemsdroppedchest","data":'+str+'}');
strLines.Free;
extrLines.Free;
strItems.Free;
strOdds.Free;
strOdds2.Free;
end;
У меня чуть глаза не вытекли от такого решения. Код по идее сообщает клиенту, что выпало из монстра после победы над ним.
+154
function updateClock()
{
var date = new Date();
var day = date.getDate();
var month = date.getMonth() + 1;
var year = date.getFullYear();
var hours = date.getHours();
var minutes = date.getMinutes();
var seconds = date.getSeconds();
var dateTimeString = day + "." + month + "." + year + " " + hours + ":" + minutes + ":" + seconds;
$('#clock').html("Сейчас " + dateTimeString);
}
Трибьют классике.
+94
function TMyDb.getUserItemsINTOMarkt(userid: Int64; marktid: String): SOString;
var
Query : TZQuery;
begin
Result := '';
try
lock;
Query := TZQuery.Create(nil);
if not isConnected() then
connect();
Query.Connection := SQLCon;
Query.SQL.TEXT:='SELECT mi.markt_id, mi.price, mi.item_id,ui.used_limit,'+
'ui.max_limit,ui.inv_id,ui.inv_min_damage, ui.inv_max_damage,'+
'ui.inv_options,ui.inv_bonuses,ui.inv_mods,ui.modifed,'+
'i.name FROM bkheroes.markt_items mi '+
'JOIN user_inventory ui ON mi.user_id='+IntToStr(userid)+' AND '+
'mi.user_inv_id=ui.inv_id AND mi.markt_id='''+marktid+
''' AND ui.userSellItem=''yes'' JOIN items i ON i.id=mi.item_id';
if SQLCon.Connected = True then
begin
Query.Open;
if Query.RecordCount > 0 then
begin
while not Query.EOF do
begin
Result := Result+'{"marktid":'+Query.FieldByName('markt_id').AsString+
',"inv_id":'+Query.FieldByName('inv_id').AsString+
',"price":'+Query.FieldByName('price').AsString+
',"itemid":'+Query.FieldByName('item_id').AsString+
',"used_limit":'+Query.FieldByName('used_limit').AsString+
',"max_limit":'+Query.FieldByName('max_limit').AsString+
',"min_damage":'+Query.FieldByName('inv_min_damage').AsString+
',"max_damage":'+Query.FieldByName('inv_max_damage').AsString+
',"options":'+explodeParams(query.FieldByName('inv_options').AsString,',',':').AsString+
',"bonuses":'+explodeParams(Query.FieldByName('inv_bonuses').AsString,',',':').AsString+
',"mods":'+explodeParams(Query.FieldByName('inv_mods').AsString,',',':').AsString+
',"modifed":"'+Query.FieldByName('modifed').AsString+
'","name":"'+Query.FieldByName('name').AsString+'"},';
query.Next;
end;
end;
Result:='{"marktid":'+marktid+',"items":['+Copy(Result,1,Length(Result)-1)+']}';
end;
TLogger.GeneralLog('getUserItemsINTOMarkt: '+Result,'TMyDBUnit',ltTrace);
finally
Query.Close;
Query.Free;
unlock;
end;
end;
О боже! Как можено такое писать за деньги? Да вообще, как можно писать такое??
+135
public void ValidateValue( ref object value ) {
bool b;
if ( value == null ) return;
var typeName = BaseType.Name;
var valueType = value.GetType();
if ( valueType.Name == "String" ) {
if ( BaseType == valueType ) return;
if ( BaseType == Constants.Types.Boolean ) {
if ( string.Compare( "yes", (string) value, StringComparison.OrdinalIgnoreCase ) == 0 ) value = true;
else if ( string.Compare( "no", (string) value, StringComparison.OrdinalIgnoreCase ) == 0 ) value = false;
#if !CF
else if ( Boolean.TryParse( value.ToString(), out b ) ) value = b;
#else
else if (TryParseUtility.TryParse(value.ToString(), out b)) value = b;
#endif
else throw new ArgumentException( String.Format( Resources.ValueNotCorrectType, value ) );
return;
}
}
#if !CF
if ( typeName == "Boolean"
&& Boolean.TryParse( value.ToString(), out b ) ) {
value = b;
return;
}
UInt64 uintVal;
if ( typeName.StartsWith( "UInt64" )
&& UInt64.TryParse( value.ToString(), out uintVal ) ) {
value = uintVal;
return;
}
UInt32 uintVal32;
if ( typeName.StartsWith( "UInt32" )
&& UInt32.TryParse( value.ToString(), out uintVal32 ) ) {
value = uintVal32;
return;
}
long intVal;
if ( typeName.StartsWith( "long" )
&& long.TryParse( value.ToString(), out intVal ) ) {
value = intVal;
return;
}
int intVal32;
if ( typeName.StartsWith( "Int32" )
&& Int32.TryParse( value.ToString(), out intVal32 ) ) {
value = intVal32;
return;
}
#else
if (typeName == "Boolean" && TryParseUtility.TryParse(value.ToString(), out b)) { value = b; return; }
UInt64 uintVal;
if (typeName.StartsWith("UInt64") && TryParseUtility.TryParse(value.ToString(), out uintVal)) { value = uintVal; return; }
UInt32 uintVal32;
if (typeName.StartsWith("UInt32") && TryParseUtility.TryParse(value.ToString(), out uintVal32)) { value = uintVal32; return; }
long intVal;
if (typeName.StartsWith("long") && TryParseUtility.TryParse(value.ToString(), out intVal)) { value = intVal; return; }
Int32 intVal32;
if (typeName.StartsWith("Int32") && TryParseUtility.TryParse(value.ToString(), out intVal32)) { value = intVal32; return; }
#endif
object objValue;
#if RT
Type baseType = BaseType.GetTypeInfo().BaseType;
#else
var baseType = BaseType.BaseType;
#endif
if ( baseType != null
&& baseType.Name == "Enum"
&& ParseEnum( value.ToString(), out objValue ) ) {
value = objValue;
return;
}
throw new ArgumentException( String.Format( Resources.ValueNotCorrectType, value ) );
}
MySql.Data 6.9.5, MySqlConnectionStringBuilder.cs
+161
function getGeneralOfficesStats(&$stats_year, &$stats_office_logo, &$stats_quant_client, &$stats_summ_client, &$stats_summ_supplier, &$stats_summ_delivery, &$stats_without_complex_price, &$quant_position, &$top_quant_client, &$top_summ_client, &$top_summ_supplier, &$top_summ_delivery, &$top_stats_without_complex_price, &$top_quant_position, $date_start_time=0, $date_end_time=0, $office_logo="")
{
$sql="SELECT t1.month, t1.year, t1.office_logo, t1.quant_client, t1.summ_client, t1.summ_supplier,
t1.summ_delivery, t1.stats_without_complex_price,
t1.quant_position, t1.top_quant_client, t1.top_summ_client,
t1.top_summ_supplier, t1.top_summ_delivery, t1.top_stats_without_complex_price, t1.top_quant_position
FROM stats_offices AS t1
INNER JOIN offices AS t2 ON t1.office_logo=t2.name AND t1.currency_logo=t2.currency
WHERE 1=1
".(($date_start_time>0 && $date_end_time>0)?" AND STR_TO_DATE(CONCAT(t1.year,'-',IF(LENGTH(t1.month)=1,'0',''),t1.month,'-01 01:01:01'), '%Y-%m-%d %H:%i:%s') BETWEEN STR_TO_DATE('".date("Y-m-01 00:00:00",$date_start_time)."', '%Y-%m-%d %H:%i:%s') AND STR_TO_DATE('".date("Y-m-d 23:59:59",$date_end_time)."', '%Y-%m-%d %H:%i:%s') ":"")."
".((!empty($office_logo))?" AND t1.office_logo='".mysql_escape_string($office_logo)."' ":"")."
ORDER BY t1.office_logo, t1.year DESC, t1.month DESC";
list($stats_month, $stats_year, $stats_office_logo, $stats_quant_client, $stats_summ_client, $stats_summ_supplier, $stats_summ_delivery, $stats_without_complex_price, $quant_position, $top_quant_client, $top_summ_client, $top_summ_supplier, $top_summ_delivery, $top_stats_without_complex_price, $top_quant_position)=$this->query($sql);
return $stats_month;
}
Сменил работу. Стал знакомится с кодом. Тихо охуеваю.
+157
formatDate: function (oSignDate) {
"use strict";
return oSignDate.getFullYear().toString() + (1 + oSignDate.getMonth()).toString() + oSignDate.getDate().toString() + "T" + oSignDate.getHours().toString() + oSignDate.getMinutes().toString() + oSignDate.getSeconds().toString() + (oSignDate.getTimezoneOffset() > 0 ? "-" : "+") + ("0000" + (-1 * oSignDate.getTimezoneOffset() / 60) * 100).toString().substr(-4, 4);
}
Представление даты в формате YYYYMMDDThhmmss±hhmm