- 1
- 2
- 3
- 4
- 5
- 6
- 7
switch(true)
{
case tag1: /*тут обработка*/break;
case tag2: /*тут обработка*/break;
case tag3: /*тут обработка*/break;
case tag4: /*тут обработка*/break;
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+144
switch(true)
{
case tag1: /*тут обработка*/break;
case tag2: /*тут обработка*/break;
case tag3: /*тут обработка*/break;
case tag4: /*тут обработка*/break;
}
Короче это был кусок парсера SGML файла, который в зависимости от встреченного тега выполнял действия. Этот код недословный, привожу чтоб показать как использовалась конструкция switch. На мой взгляд изящный подход =)
+164
/**
* Constructs a URL encoded query string from an array of key/value pairs
*
* @access protected
* @since 2.0
* @param array $array query string key/value pairs
* @return string
*/
protected function _glue( $array )
{
$query_string = '';
foreach( $array as $key => $val ) :
$query_string .= $key . '=' . rawurlencode( $val ) . '&';
endforeach;
return '?' . substr( $query_string, 0, strlen( $query_string )-1 );
}
http://code.google.com/p/php-twitter/
опять велосипеды
+70
public int someGetCountMethod() {
try {
ResultSet rs2 = db.select("call someGetCountMethod('')");
rs2.first();
return rs2.getInt(1);
} catch (Exception ex) {
return 0;
}
}
где-то откапал вот такое
+157
// если IP в файле есть, выводим сообщение с уведомлением
if ($file[$i]===$ip."\r\n"){
echo 'Вы уже голосовали. Но спасибо, что попытались.<br>';
break;
// если IP нет, тогда считаем рейтинг и записываем IP в файл
} elseif ($file[$i]!=$ip."\r\n") {
// ********* СЧИТАЕМ РЕЙТИНГ *********
// открываем файл с рейтингом
$file_open=fopen("rate.txt", "a+");
$file_read=fgets($file_open);
// разбиваем данные по спецсимволу ':'
$dan=explode(":",$file_read);
// первое значение - сумма всех оценок, второе - кол-во проголосовавших юзеров
// добавляем к сумме оценок - полученную новую оценку
// добавляем к сумме юзеров - 1 человека
if ($_POST['rating_val']>=1 && $_POST['rating_val']<=5){
$r=$_POST['rating_val'];
$ocenka=$dan[0]+$r;
$users=$dan[1]+1;
$write=$ocenka.':'.$users;
ftruncate ($file_open, 0);
fwrite($file_open, $write);
}
// рейтинг считаем по формуле: (сумма оценок + текущая оценка) / (кол-во юзеров + 1 юзер)
$rating=substr(($dan[0]+$r) / ($dan[1]+1),0,3);
echo 'Ваш рейтинг: '.$rating.'<br>
Всего голосов: '.$users.'<br>';
// закрываем файл с рейтингом
fclose($file_open);
// ************************************
fwrite($open_ip, $ip."\r\n");
echo 'Ваш голос учтен. Спасибо.<br>';
break;
} else {
echo 'Странно. Вопреки всякой логике, произошла ошибка, которая появиться не могла.<br>
Пожалуйста, <a href=mail.php>напишите нам письмо</a> и мы обязательно разберемся.';
}
Проверка в скриптике друга. Смотрим самый внешний IF, порадовала ветка else :)
+106
bool tos = true;
susid:
while (tos)
{
goto susid;
}
Энто был я=(
+141
/* Putarc1 печатает точки, определяющие дугу от 0 до 45.*/
void Putarc1(HIMAGE *Im,short x, short y, short x_center, short y_center, unsigned char color){
int starty, endy, y1;
starty=y; endy=(y+1);
for (y1=starty;y1<endy;++y1) PutPoint(Im,y1+x_center,y_center-x,color);
}
/* Putarc2 печатает точки, определяющие дугу от 45 до 90.*/
void Putarc2(HIMAGE *Im,short x, short y, short x_center, short y_center, unsigned char color){
int startx, endx, x1;
startx=x; endx=(x+1);
for (x1=startx;x1<endx;++x1) PutPoint(Im,x1+x_center,y_center-y,color);
}
/* Putarc3 печатает точки, определяющие дугу от 90 до 135.*/
void Putarc3(HIMAGE *Im,short x, short y, short x_center, short y_center, unsigned char color){
int startx,endx,x1;
startx=x; endx=(x+1);
for (x1=startx;x1<endx;++x1) PutPoint(Im,x_center-x1,y_center-y,color);
}
/* Putarc4 печатает точки, определяющие дугу от 135 до 180.*/
void Putarc4(HIMAGE *Im,short x, short y, short x_center, short y_center,unsigned char color){
int starty,endy,y1;
starty=y; endy=(y+1);
for (y1=starty;y1<endy;++y1) PutPoint(Im,x_center-y1,y_center-x,color);
}
/* Putarc5 печатает точки, определяющие дугу от 180 до 225.*/
void Putarc5(HIMAGE *Im,short x, short y, short x_center, short y_center,unsigned char color){
int starty,endy,y1;
starty=y; endy=(y+1);
for (y1=starty;y1<endy;++y1) PutPoint(Im,x_center-y1,x+y_center,color);
}
/* Putarc6 печатает точки, определяющие дугу от 225 до 270.*/
void Putarc6(HIMAGE *Im,short x, short y, short x_center, short y_center,unsigned char color){
int startx,endx,x1;
startx=x*1.0; endx=(x+1)*1.0;
for (x1=startx;x1<endx;++x1) PutPoint(Im,x_center-x1,y+y_center,color);
}
/* Putarc7 печатает точки, определяющие дугу от 270 до 315.*/
void Putarc7(HIMAGE *Im,short x, short y, short x_center, short y_center, unsigned char color){
int startx, endx, x1;
startx=x; endx=(x+1);
for (x1=startx;x1<endx;++x1) PutPoint(Im,x1+x_center,y+y_center, color);
}
/* Putarc8 печатает точки, определяющие дугу от 315 до 360.*/
void Putarc8(HIMAGE *Im,short x, short y, short x_center, short y_center, unsigned char color) {
int starty,endy,y1;
starty=y; endy=(y+1);
for (y1=starty;y1<endy;++y1) PutPoint(Im,y1+x_center,x+y_center,color);
}
Рисуем дуги кусками по 45 градусов
+160
<?$APPLICATION->IncludeFile(
$APPLICATION->GetTemplatePath("include_areas/contacts.php"),
Array(),
Array("MODE"=>"html")
);?> </div>
Вот так индусские проггеры из Bitrix показывают контакты сайта.
+170
function formatbytes($file, $type)
{
switch($type){
case "KB":
$filesize = filesize($file) * .0009765625; // bytes to KB
break;
case "MB":
$filesize = (filesize($file) * .0009765625) * .0009765625; // bytes to MB
break;
case "GB":
$filesize = ((filesize($file) * .0009765625) * .0009765625) * .0009765625; // bytes to GB
break;
}
if($filesize <= 0){
return $filesize = 'unknown file size';}
else{return round($filesize, 2).' '.$type;}
}
Вот так мы выводим размер файлика.
+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;
когда-то кому-то в дипломнике вот такое написал. с понтом - подключаем плагины и они в эксель выводят программно новые виды форм. хотя экселевский файл тупо вкомпилен в ресурс библиотеки
+161
switch ($action)
{
case 'error_php':
showError('php'); #
break;
case 'error_short_tag':
showError('tag'); #
break;
case 'index':
showIndex(); #
break;
case 'license':
showLicense(); #
break;
case 'choose':
showChoose(); #
break;
case 'postchoose':
showPostChoose(); #die($action."");
break;
case 'system':
showSystem(); # после выбора цвета макета переходим сюда
break;
case 'build':
showBuild(); # потом сюда
break;
case 'configure':
showConfigure(); # если без структуры идём сюда
break;
case 'uninstall':
showUninstall();
break;
case 'install':
showInstall();
break;
case 'postinstall':
showPostInstall();
break;
case 'vars':
downloadConfigFile();
break;
}
Структурное программирование от авторов инсталлятора NetCat.