-
+156
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
char* setw_c(int width, char* str, const char align){
width = width - strlen(str) / 2;
if (align == 'l'){
std::cout << str;
if (width > 0)
for (int i = 0; i < width - 1; i++)
std::cout << " ";
return " ";
} else {
if (width > 0)
for (int i = 0; i < width; i++)
std::cout << " ";
return str;
}
}
вот так коряво я решил проблему с setw(), кириллицей и utf-8.
strlen() - чуть ли не единственная функция из cstring, более-менее нормально работающая с кириллицей в utf-8, да и то возвращает не реальную длину, а в два раза бОльшую, т.к. в utf-8 символ кириллицы занимает 2 байта, вместо одного, чего эта функция не учитывает.
bugaga_,
13 Ноября 2010
-
−180
- 1
select nvl(count(*), 0) from ...
Вот такое увидел.
Защита от нежданчика.
Oleg_quadro,
13 Ноября 2010
-
+145
- 1
- 2
- 3
- 4
- 5
public function redirect($url) {
header('Location: '.$url);
echo '<script>document.location.href = "'.$url.'"</script>';
die('<a href="'.$url.'"><h2>Нажмите сюда. У вас ебанутый браузер.</h2></a>');
}
j0kz,
12 Ноября 2010
-
+145
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
$(function(){
oCatalog=new Catalog();
});
Catalog = function (){
function test (data){
alert(data);
}
}
exoundeeq,
12 Ноября 2010
-
+163
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
std::vector<double> WBuffer;
std::vector<double> CleanWBuffer;
std::vector<Color> PixelBuffer;
std::vector<Color> CleanPixelBuffer;
void Scene3D::ClearBuffers()
{
const size_t n = static_cast<size_t>(ScreenSize[0] * ScreenSize[1]);
memcpy(&*(WBuffer.begin()), &*(CleanWBuffer.begin()), n * sizeof(*(WBuffer.begin())));
memcpy(&*(PixelBuffer.begin()), &*(CleanPixelBuffer.begin()), n * sizeof(*(PixelBuffer.begin())));
}
Быстрая очистка буферов.
CleanWBuffer предварительно заполнен 0.0, CleanPixelBuffer предварительно заполнен нужным цветом.
Можно было воспользоваться std::fill, но оно работает в несколько раз дольше.
Пришлось так вот лезть в потроха std::vector. Доставляют подряд идущие & и *.
burdakovd,
12 Ноября 2010
-
+166
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
<?php
# bla bla bla...
public function __construct ($dbname, $host = null, $user = null, $pass = null) {
$numargs = func_num_args ();
if ($numargs == 1)
parent::__construct ($dbname);
else
parent::__construct ($dbname, $host = null, $user = null, $pass = null);
$this->begin = time ();
}
# bla bla bla...
"гениальный" вызов конструктора!
dwinner,
12 Ноября 2010
-
+157
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
void Scene3D::DrawTriangle(const Point3D &A, const Point3D &B, const Point3D &C, const Color& color)
{
// ---------------------------------------------------------------------------------------
// вспомогательные вычисления
// нормаль
const Vector3D& n = (B - A) ^ (C - A);
// ...
// центр треугольника
const Point3D& medium = (A + B + C) / 3.0;
Руки как-то привыкли const TypeName& variableName набирать в определении параметров методов.
И случайно набралось такое (строки 6, 11)
Операторы (+, -, ^, /) над векторами возвращают Vector3D, не const Vector3D&.
Заметил только через полгода, и всё это время оно почему-то работало, и даже ворнингов не было.
Но такое ведь не должно работать!
Результат вычисления в правой части присваивания структура, то есть она возвращается в стеке. Если бы я присвоил её какой-то локальной переменной, для которой выделена память в стеке текущей функции, то она бы перед удалением скопировалась в локальную переменную. А так получается что ссылка (n, medium) указывает куда-то на стек, где временно хранится возвращенное оператором значение. И при следующем вызове любой функции эта область стека должна перезаписаться.
burdakovd,
12 Ноября 2010
-
+75
- 1
- 2
- 3
for ( Cluster c : Clusters.getInstance( ).listValues( ) ) {
stopNet.newInstance( ).dispatch( cluster );
}
Суровые калифорнийцы как всегда суровы...
raorn,
12 Ноября 2010
-
+156
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
index.php:
<?php
define("TEMPLATE_FOLDER", "./templates/");
class Template
{
public function view($template, $data)
{
foreach($data as $key => $variable)
$$key = $variable;
require(TEMPLATE_FOLDER . $template . '.php');
foreach($data as $key => $variable)
unset($$key);
}
}
$template = new Template();
$data['test'] = array(1, 2, 3);
$template->view('index', $data);
?>
templates/index.php:
<html>
<body>
<?php foreach($test as $row): ?>
<?php echo $row ?><br/><br/>
<?php endforeach; ?>
</body>
</html>
Говно ли?
TapTap,
12 Ноября 2010
-
+131
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Билайн анкетирование</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="description" content="Билайн анкетирование">
<meta name="keywords" content="Билайн анкетирование">
<link href="/stylesheets/main_stl.css" type=text/css rel=stylesheet>
<script src="/javascripts/jquery-1.4.2.min.js" language="javascript"></script>
<script src="/javascripts/jquery.maskedinput-1.2.2.min.js" language="javascript"></script>
<script src="/javascripts/custom/masked.js" language="javascript"></script>
</head>
<body>
<table id=main cellspacing=0 cellpadding=0 border=0>
<!-- HEAD -->
<tr>
<td style="height:128px; text-align:center;" align=center>
<table style="height:128px; width:798px; margin:0px auto;" cellspacing=0 cellpadding=0 border=0><tr>
<td style="padding-top:70px; padding-left:32px; vertical-align:top; width:681px;"><img src="/images/beetitle.png"></td>
<td style="padding-top:33px; vertical-align:top; width:117px;"><img src="/images/beelogo.png"></td>
</tr></table>
</td>
</tr>
<!-- BODY -->
<tr>
<td style="text-align:center;" valign=top align=center>
...
Это от сюда: http://opros-beeline.ru/login
Интересный у них там XHTML
Arigato,
12 Ноября 2010