- 1
- 2
my @orda = ();
my @whera = (); # Niggaz in da haus!
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−123
my @orda = ();
my @whera = (); # Niggaz in da haus!
Найдено в коде метода, формирующего SQL-запрос для доступа к БД.
+124
switch ((int)row["State"])
{
case 0:
/*** Get Contact Row for Company ***/
if (contactTbl != null)
{
contactRow = null;
DataRow[] contactRows = contactTbl.Select("Company_Id='" + row["Id"].ToString() + "'");
if (contactRows != null && contactRows.Length > 0)
{
contactRow = contactRows[0];
if ((bool)contactRow["fDontMailshot"] == false)
{
thisMailShot = true;
}
else
{
thisMailShot = false;
}
}
}
if ((bool)row["fManagementCompany"] == true)
{
if (row["Id"].ToString() == "00-20181" || row["Id"].ToString() == "00-60838")
{
myEntityID = Entity(2, row);
if (!SubContractor(myEntityID, row)) { return false; }
}
else
{
myEntityID = Entity(10, row);
}
if (myEntityID < 0) { return false; }
if (!Address(myEntityID, row)) { return false; }
if (!Contact(myEntityID, contactRow, SOURCETYPE_ENTITY)) { return false; }
}
else if ((bool)row["fSubcontractor"] == true || ((bool)row["fSupplier"] == true && (bool)row["fCustomer"] == false))
{
myEntityID = Entity(2, row);
if (myEntityID < 0) { return false; }
if (!Address(myEntityID, row)) { return false; }
if (!Contact(myEntityID, contactRow, SOURCETYPE_ENTITY)) { return false; }
if (!SubContractor(myEntityID, row)) { return false; }
}
else if ((bool)row["fHousingAssociation"] == true)
{
myEntityID = Entity(7, row);
if (myEntityID < 0) { return false; }
if (!Address(myEntityID, row)) { return false; }
if (!Contact(myEntityID, contactRow, SOURCETYPE_ENTITY)) { return false; }
if (!Customer(myEntityID, row, thisMailShot)) { return false; }
}
else if ((bool)row["f2ndOwnerTenant"] == true && (bool)row["fCustomer"] == false)
{
myEntityID = Entity(8, row);
if (myEntityID < 0) { return false; }
if (!Address(myEntityID, row)) { return false; }
if (!Contact(myEntityID, contactRow, SOURCETYPE_ENTITY)) { return false; }
if (!Customer(myEntityID, row, thisMailShot)) { return false; }
}
else if ((bool)row["fCustomer"] == true && (bool)row["f2ndOwnerTenant"] == false)
{
myEntityID = Entity(7, row);
if (myEntityID < 0) { return false; }
if (!Address(myEntityID, row)) { return false; }
if (!Contact(myEntityID, contactRow, SOURCETYPE_ENTITY)) { return false; }
if (!Customer(myEntityID, row, thisMailShot)) { return false; }
}
else if ((bool)row["fCustomer"] == true && (bool)row["f2ndOwnerTenant"] == true)
{
myEntityID = Entity(7, row);
if (myEntityID < 0) { return false; }
if (!Address(myEntityID, row)) { return false; }
if (!Contact(myEntityID, contactRow, SOURCETYPE_ENTITY)) { return false; }
if (!Customer(myEntityID, row, thisMailShot)) { return false; }
}
break;
default:
break;
}
Отличный пример использования конструкций ветвления. Имеем switch, в нём один case, а в кейсе много-много иф-элсов. И что очень характерно для этого проекта с тремя классами по 9000 строк, никакого повторного использования кода. Реализация принципа "зачем писать меньше?".
+103
var
resStream: TResourceStream;
memStream: TMemoryStream;
DLL: THandle;
tempFile: string;
excel: variant;
wbook: OLEVariant;
begin
if not IsOLEObjectInstalled('Excel.Application') then
begin
MessageBox(Handle, PChar('Для открытия фаблонов форм необходимо установить'+#13+
'Microsoft Excel'), 'Ошибка загрузки формы.', MB_ICONINFORMATION);
exit
end;
tempFile := extractFilePath(paramStr(0))+'DATA\PLUGINS\$temp$.xxx';
if ListView1.Selected = nil then exit;
if not FileExists(ListView1.Selected.SubItems.Strings[2]) then exit;
DLL := loadLibrary(PChar(ListView1.Selected.SubItems.Strings[2]));
if DLL = INVALID_HANDLE_VALUE then begin
freeLibrary(DLL);
exit
end;
resStream := TResourceStream.Create(DLL, 'FORMA', MakeIntResource(10));
memStream := TMemoryStream.Create;
memStream.LoadFromStream(resStream);
if fileExists(tempFile) then deleteFile(tempFile);
memStream.SaveToFile(tempFile);
setFileAttributes(PChar(tempFile), FILE_ATTRIBUTE_HIDDEN or
FILE_ATTRIBUTE_TEMPORARY);
memStream.Free;
resStream.Free;
freeLibrary(DLL);
excel := createOLEObject('Excel.Application');
excel.Visible := TRUE;
wbook := excel.Workbooks.Open(tempFile)
end;
когда-то кому-то в дипломнике вот такое написал. с понтом - подключаем плагины и они в эксель выводят программно новые виды форм. хотя экселевский файл тупо вкомпилен в ресурс библиотеки
+113
private static void assertNoReflection()
{
foreach (StackFrame stackFrame in new StackTrace().GetFrames())
{
if (stackFrame.GetMethod().DeclaringType.Namespace == "System.Reflection")
{
throw new MethodAccessException();
}
}
}
internal static string GetKey()
{
assertNoReflection();
// ...
}
Вот так вот приходится говнить, потому что в дотнете рефлексией можно спокойно вызывать internal- и private- методы.
assertNoReflection(); проверяет, что вверх по стеку вызовов никто не балуется рефлексией.
После assertNoReflection(); из нативной длл получаем обфусцированную (вручную, лол) строку, которая далее с помощью запутанных алгоритмов (некоторые параметры для "расшифровки" опять берутся из нативной длл) приводит её в вид пароля (для доступа к запароленному архиву).
Софт не прямо уж суперсекретный, просто нужно скрыть ресурсы хотя бы для приличия. Пароль через подключение к серверу не катит.
Ко всему этому оно собрано в одно exe моновским mkbundle'ом (рефлектор не может открыть!) и поверх upx'ом. В общем, большое количество кулхацкеров отсекается (должны знать ассемблер и MSIL).
Чувствую, что говнорешение, но не могу придумать что-то более умное. Обфускаторы тоже не очень катят, ибо плохо дружат с моно.
+971
#include<stdio.h>
#include<stdlib.h>
#define N 3
using namespace std;
/*class Node{
struct Node *f,*s,*t;
public :
int x,y;
void Node(int rx,int ry){
x=rx;
y=ry;
return;
}
};*/
typedef struct node{int x,y}node;
node tree[100];
node jmps[3];
int main(){
// Node *root=new Node(-1,-1);
int i=0,j;
////////////////////////
////////////////////////
tree[0].x=-1;
tree[0].y=-1;
for(i=0;i<N;i++){
for(j<N*)
}
}
−130
#!/bin/bash
curl http://www.radioroks.com.ua/online.php | grep '<b>' > /tmp/roks
sed -e 's/<[^>]*>//g' /tmp/roks > /tmp/roks2
sed -e 's/·/- /g' /tmp/roks2 > /tmp/roks
sed -e 's/\t//g' /tmp/roks > /tmp/roks2
sed -e 's/\:-/\:\
-/g' /tmp/roks2 > /tmp/roks
cat /tmp/roks | head -n $1
Кажется, писал под утро. Не вдуплился юзать только 1 файл, а жонглировал /tmp/roks и /tmp/roks2 ...
+165
//--------------- Функция подсчета карт в игре ---------------//
function cards_score($str){
if($str==1||$str==2||$str==3||$str==4){
$num = 6;
}
if($str==5||$str==6||$str==7||$str==8){
$num = 7;
}
if($str==9||$str==10||$str==11||$str==12){
$num = 8;
}
if($str==13||$str==14||$str==15||$str==16){
$num = 9;
}
if($str==17||$str==18||$str==19||$str==20){
$num = 10;
}
if($str==21||$str==22||$str==23||$str==24){
$num = 2;
}
if($str==25||$str==26||$str==27||$str==28){
$num = 3;
}
if($str==29||$str==30||$str==31||$str==32){
$num = 4;
}
if($str==33||$str==34||$str==35||$str==36){
$num = 11;
}
return $num;
}
//--------------- Функция подсчета очков в игре ---------------//
function cards_points($str){
$str=(int)$str;
$points = ' очков';
if($str==2||$str==3||$str==4||$str==22||$str==23||$str==24|$str==32||$str==33||$str==34){$points = ' очка';}
if($str==21){$points = ' <b>очко!!!</b>';}
if($str==31){$points = ' очко';}
return $str.$points;
}
//--------------- Функция вывода статуса ---------------//
function user_ststuses($balls) {
$text = file_get_contents(DATADIR."status.dat");
if ($text!=""){
$udta = explode("|",$text);}
if($balls>=0 && $balls<5){$statuses=$udta[0];}
if($balls>=5 && $balls<10){$statuses=$udta[1];}
if($balls>=10 && $balls<20){$statuses=$udta[2];}
if($balls>=20 && $balls<50){$statuses=$udta[3];}
if($balls>=50 && $balls<100){$statuses=$udta[4];}
if($balls>=100 && $balls<250){$statuses=$udta[5];}
if($balls>=250 && $balls<500){$statuses=$udta[6];}
if($balls>=500 && $balls<750){$statuses=$udta[7];}
if($balls>=750 && $balls<1000){$statuses=$udta[8];}
if($balls>=1000 && $balls<1250){$statuses=$udta[9];}
if($balls>=1250 && $balls<1500){$statuses=$udta[10];}
if($balls>=1500 && $balls<1750){$statuses=$udta[11];}
if($balls>=1750 && $balls<2000){$statuses=$udta[12];}
if($balls>=2000 && $balls<2250){$statuses=$udta[13];}
if($balls>=2250 && $balls<2500){$statuses=$udta[14];}
if($balls>=2500 && $balls<2750){$statuses=$udta[15];}
if($balls>=2750 && $balls<3000){$statuses=$udta[16];}
if($balls>=3000 && $balls<3250){$statuses=$udta[17];}
if($balls>=3250 && $balls<3499){$statuses=$udta[18];}
if($balls>=3500 && $balls<4999){$statuses=$udta[19];}
if($balls>=5000 && $balls<7499){$statuses=$udta[20];}
if($balls>=7500 && $balls<9999){$statuses=$udta[21];}
if($balls>=10000){$statuses=$udta[22];}
$statuses=check($statuses);
return $statuses;
}
3 сорца отсюда http://visavi.net/load/zip.php?act=preview&id=988&view=854&star t=840&
+98
dmauto.tout.FieldByName('nomer').AsString:= inttostr(inc(strtoint(dmauto.tout.FieldByName('nomer').AsString)));
−105
''' <summary>
''' Функция взятия запроса как инструкции t/sql; рекордсет возвращается в виде oZap(,).
''' </summary>
''' <param name="eConnectString">Строка подключения к БД из списка.</param>
''' <param name="sText">Инструкция t/sql.</param>
''' <param name="oErr">Необязательная ошибка.</param>
''' <param name="oZap">Необязательный двумерный массив, содержащий рекордсет ― 1-ю таблицу датасета.</param>
''' <param name="iTimeout">Необязательное число секунд таймаута запроса.</param>
''' <returns>Число затронутых строк в таблице БД; если ноль, то нормально ещё, а если -1, то запрос не прошёл, если -2, то соединение не установилось.</returns>
''' <remarks>
''' </remarks>
''' <history>
''' [Max Pro] 11.04.2007 Created
''' [Max Pro] 08.08.2008 Реабилитировал OleDb.
''' [Max Pro] 08.04.2009 Оптимизировал как надо ReDim Preserve и переполнение Integer.
''' [Max Pro] 27.08.2009 Исправил ошибку ReDim Preserve ― было больше на 1 элемент.
''' </history>
''' -----------------------------------------------------------------------------
Public Function iZap(ByVal eConnectString As ConnectString, ByVal sText As String, Optional ByRef oErr As Exception = Nothing, Optional ByRef oZap(,) As Object = Nothing, Optional ByVal iTimeout As Integer = -1) As Integer
'#region "var"
Dim iX As Integer
Dim lY As Long
Dim lYTemp As Long
Dim i As Integer
Dim iZapTemp As Integer
'var zap
Dim sConnectString As String = sConStrFromEnum(eConnectString)
Dim oConnection
Dim oCommand
Dim oReader
'#end region 'var
'#region ini
If sConnectString Like "*sqloledb*" Then
oConnection = New OleDbConnection
oCommand = New OleDbCommand
Else
oConnection = New SqlConnection
oCommand = New SqlCommand
End If
'#end region 'ini
iZap = -2
oErr = New Exception
oConnection.ConnectionString = sConnectString
Try
'попытка открытия соединения
oConnection.Open()
If oConnection.State Then iZap = -1 'if <>0
'присвоение параметров команды
If iTimeout >= 0 Then oCommand.CommandTimeout = iTimeout
oCommand.CommandType = CommandType.Text
oCommand.Connection = oConnection
oCommand.CommandText = sText
'попытка выполнения команды
oReader = oCommand.ExecuteReader()
iZap = 0
iX = oReader.FieldCount - 1
lY = -1
lYTemp = 255
ReDim oZap(iX, lYTemp)
While oReader.Read()
lY += 1
If lY < Integer.MaxValue Then '2 147 483 647-1(заменил <= на < чтобы число элементов iZap не зашкалило).
iZapTemp = lY + 1
If lY > lYTemp Then
lYTemp += 256
ReDim Preserve oZap(iX, lYTemp)
End If
For i = 0 To iX
If IsDBNull(oReader(i)) Then oZap(i, lY) = Nothing Else oZap(i, lY) = oReader(i)
Next i
End If
End While
oReader.Close()
oReader = Nothing
oCommand = Nothing
iZap = iZapTemp
ReDim Preserve oZap(iX, iZapTemp - 1)
If lY >= Integer.MaxValue Then
oErr = New Exception(lY.ToString("# ##0") & " строк >=" & Integer.MaxValue & " (Integer.MaxValue), но массив заполнен до предела Int32 и iZap=Integer.MaxValue.")
End If
Catch oError As Exception
oErr = oError
Finally
If IsNothing(oConnection) = False Then
oConnection.Close()
oConnection = Nothing
End If
End Try
End Function 'iZap
А так Максим Прохоров выполняет запросы. слабо?
+908
template <typename Handler>
void start_connect_op(socket_type descriptor,
per_descriptor_data&, Handler handler)
{
boost::asio::detail::mutex::scoped_lock lock(mutex_);
if (!shutdown_)
{
boost::shared_ptr<bool> completed(new bool(false));
connect_handler_wrapper<Handler> wrapped_handler(
descriptor, completed, *this, handler);
bool interrupt = write_op_queue_.enqueue_operation(
descriptor, wrapped_handler);
interrupt = except_op_queue_.enqueue_operation(
descriptor, wrapped_handler) || interrupt;
if (interrupt)
interrupter_.interrupt();
}
}
Как дико зафрагментировать кучу?!
Столько хороших идей и так много говнокода в реализации.
//boost::shared_ptr<bool> completed(new bool(false)); - это один из шедевров кривокодирования!!!