- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
static int multipart_buffer_eof(multipart_buffer *self TSRMLS_DC)
{
if ( (self->bytes_in_buffer == 0 && fill_buffer(self TSRMLS_CC) < 1) ) {
return 1;
} else {
return 0;
}
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+129
static int multipart_buffer_eof(multipart_buffer *self TSRMLS_DC)
{
if ( (self->bytes_in_buffer == 0 && fill_buffer(self TSRMLS_CC) < 1) ) {
return 1;
} else {
return 0;
}
}
+132
Программа Елочки
Сместиться_В(4,11)
Треугольник
Треугольник
Треугольник
Сместиться_На(6,9)
Ветки
Ветки
Ветки
Сместиться_На(6,9)
Треугольник
Треугольник
Треугольник
Сместиться_На(6,9)
Ветки
Ветки
Ветки
Конец_Программы
Программа Треугольник
Опустить_Перо
Сместиться_На(2,-3)
Сместиться_На(-4,0)
Сместиться_На(2,3)
Поднять_Перо
Сместиться_На(-2,-3)
Сместиться_На(2,0)
Конец_Программы
Программа Ветки
Опустить_Перо
Сместиться_На(2,-3)
Сместиться_На(-2,3)
Сместиться_На(-2,-3)
Сместиться_На(2,3)
Сместиться_На(0,-3)
Поднять_Перо
Конец_Программы
Лежало в архиве вместе с тем самым могучим интерпретатором. Я аж прослезился.
+63
package javaapplication2;
import java.util.*;
public class JavaApplication2 {
public static void main(String[] args) {
int temp; byte n;
Scanner in = new Scanner(System.in);
System.out.print("Введите разрядность искомых чисел: "); n = in.nextByte();
if (n < 1 | n > 5) {
System.out.println("Всего чисел: 0");
return;
}
int i = (int)Math.pow(10, (n - 1)); // i - минимальное число. Пр: 1, 10, 100, 1000, 10000
int count = 0;
while ( (int)Math.log10(i*2) + 1 == n) { // Цикл выполняется пока кол-во цифр в числе i равно числу n.
boolean unqie = false;
temp = i;
int[] g = new int[10];
for (int j = 0; j < (n*2); j++) // Цикл выполниться вдвое больше раз, чем разрядность искомых чисел.
{
g[temp % 10]++;
if (g[temp % 10] > 1) {
unqie = true;
break;
}
temp /= 10; // Отбрасываем последнюю проверенную цифру.
if (temp <= 0) { // После того, как проверили первое число на уникальность,
temp = i*2; // проверяем второе, которое в 2 раза больше первого.
}
}
if ( unqie == false) { // Если число прошло проверку на уникальность, выводим его на экран.
count++;
System.out.printf("%s %s \n", i, i*2);
}
i++;
}
System.out.printf("Всего: %s numbers \n", count);
}
}
Моё. Программа выводит те числа, в которых, а также в умноженных на два числах, все цифры уникальные. Только начинаю изучать яву, не бейте, лучше обоссыте.
−119
Торм. колодки передние[?(Докум.ТКП_Процент>0,",ост.толщина","")] [?(Докум.ТКП_Процент>0,Докум.ТКП_Процент,"")][?(Докум.ТКП_Процент>0,"мм","")]
это содержимое одной ячейки таблицы с видом вывода "Шаблон", мало того что автор вынуждает 3 раза обращаться к полю Докум.ТКП_Процент, так ещё и о конкатенации строк видимо ничего не слышал, упрощается до:
Торм. колодки передние [?(Докум.ТКП_Процент>0,",ост.толщина "+Докум.ТКП_Процент+" мм","")]
+125
<!-- ... -->
</body>
</html><noindex>
<table id="c_add2" name="c_add2" cellpadding="0" cellspacing="0" class="sh0"><tr><td><br></td></tr></table>
<table id="c_add" name="c_add" cellpadding="0" cellspacing="0" class="sh0 clcart ft11">
<tr>
<td width="100%" height="27px" class="c_h"><strong class="fs72">Товар добавлен в корзину</strong></td>
</tr>
<tr>
<td width="100%" height="90px">
<table width="100%" cellpadding="2" cellspacing="0" class="fs b fcgr">
<tr>
<td width="50%" align="right">Товаров в корзине: </td><td> <span id="c_cart" name="c_cart" class="fcz"></span></td>
</tr>
<tr>
<td width="50%" align="right">На сумму: </td><td> <span id="sum_cart" name="sum_cart" class="fcz"></span> р</td>
</tr>
</table>
</td>
</tr>
<tr>
<td width="100%" align="center" class="description">Окно будет закрыто через <span name="cl_time" id="cl_time">5</span> секунд</td>
</tr>
<tr>
<td width="100%" align="center">
<table width="100%" cellpadding="0" cellspacing="0">
<tr>
<td width="50%" align="center"><a href="cart.php"><img title="Перейти в корзину" alt="Перейти в корзину" src="img/btn/cartorder.gif" border="0"></a></td>
<td width="50%" align="center"><a href="#" onclick="clTCart(); return false;"><img border="0" src="img/btn/closewin.gif"></a></td>
</tr>
</table>
</td>
</tr>
</table>
</noindex>
I love my webmasterz!
+44
public function addHeadJS($src){
$js_tag = '<script language="JavaScript" type="text/javascript" src="/'.$src.'"></script>';
if($this->is_ajax) { echo $js_tag; return true; }
$this->addHead($js_tag);
return true;
}
Добавляет тег <script> с указанным путем
@param string $src - Первый слеш не требуется
@return true
+14
bool Item::IsBoundByEnchant() const
{
// Check all enchants for soulbound
for (uint32 enchant_slot = PERM_ENCHANTMENT_SLOT; enchant_slot < MAX_ENCHANTMENT_SLOT; ++enchant_slot)
{
if (enchant_slot > PRISMATIC_ENCHANTMENT_SLOT || enchant_slot < PROP_ENCHANTMENT_SLOT_0) // not holding enchantment id
continue;
if (uint32 enchant_id = GetEnchantmentId(EnchantmentSlot(enchant_slot)))
if (SpellItemEnchantmentEntry const* enchantEntry = sSpellItemEnchantmentStore.LookupEntry(enchant_id))
if (enchantEntry->slot & ENCHANTMENT_CAN_SOULBOUND)
return true;
}
return false;
}
Взял из эмулятора World of WarCraft Trinity 4.3.4 ветка.
Все говно в 6 строчке
PERM_ENCHANTMENT_SLOT = 0
MAX_ENCHANTMENT_SLOT = 15
PRISMATIC_ENCHANTMENT_SLOT = 6
PROP_ENCHANTMENT_SLOT_0 = 10
+136
public override int GetHashCode()
{
if (this.FileName == null)
{
return base.GetHashCode();
}
return this.FileName.GetHashCode() + 13;
}
почему 13?
−119
Функция РазобратьКодыНеисправностей(СтрокаКодов, ТипКода)
СпрКодов = СоздатьОбъект("Справочник.КодыГарантийныхНеисправностей");
ГруппаТ1 = СпрКодов.НайтиПоКоду("0",0);
ГруппаТ2 = СпрКодов.НайтиПоКоду("00",0);
ГруппаТ3 = СпрКодов.НайтиПоКоду("000",0);
Если СтрокаКодов <> "" Тогда
Разд1 = Найти(СтрокаКодов, ";");
Разд2 = Найти(Прав(СтрокаКодов,СтрДлина(СтрокаКодов) - Разд1), ";") + Разд1;
Разд3 = Найти(Прав(СтрокаКодов,СтрДлина(СтрокаКодов) - Разд2), ";") + Разд2;
Разд4 = Найти(Прав(СтрокаКодов,СтрДлина(СтрокаКодов) - Разд3), ";") + Разд3;
Разд5 = Найти(Прав(СтрокаКодов,СтрДлина(СтрокаКодов) - Разд4), ";") + Разд4;
Разд6 = Найти(Прав(СтрокаКодов,СтрДлина(СтрокаКодов) - Разд5), ";") + Разд5;
Разд7 = Найти(Прав(СтрокаКодов,СтрДлина(СтрокаКодов) - Разд6), ";") + Разд6;
Разд8 = Найти(Прав(СтрокаКодов,СтрДлина(СтрокаКодов) - Разд7), ";") + Разд7;
Разд9 = Найти(Прав(СтрокаКодов,СтрДлина(СтрокаКодов) - Разд8), ";") + Разд8;
Разд10 = Найти(Прав(СтрокаКодов,СтрДлина(СтрокаКодов) - Разд9), ";") + Разд9;
Разд11 = Найти(Прав(СтрокаКодов,СтрДлина(СтрокаКодов) - Разд10), ";") + Разд10;
Если ТипКода = "Т1" Тогда
Если Разд1 > 1 Тогда
СпрКодов.ИспользоватьРодителя(ГруппаТ1);
Если СпрКодов.НайтиПоКоду("0/" + Лев(СтрокаКодов,Разд1-1),2) = 1 Тогда
ПолучТ1 = СпрКодов.ТекущийЭлемент();
Возврат ПолучТ1;
КонецЕсли;
КонецЕсли;
ИначеЕсли ТипКода = "Т2" Тогда
Если Разд2-Разд1 > 1 Тогда
СпрКодов.ИспользоватьРодителя(ГруппаТ2);
Если СпрКодов.НайтиПоКоду("00/" + Лев(Прав(СтрокаКодов, СтрДлина(СтрокаКодов) - Разд1), Разд2 - Разд1 - 1), 2) = 1 Тогда
ПолучТ2 = СпрКодов.ТекущийЭлемент();
Возврат ПолучТ2;
КонецЕсли;
КонецЕсли;
ИначеЕсли ТипКода = "Т3_1" Тогда
Если Разд3-Разд2 > 1 Тогда
СпрКодов.ИспользоватьРодителя(ГруппаТ3);
Если СпрКодов.НайтиПоКоду("000/" + Лев(Прав(СтрокаКодов, СтрДлина(СтрокаКодов) - Разд2), Разд3 - Разд2 - 1), 2) = 1 Тогда
ПолучТ3_1 = СпрКодов.ТекущийЭлемент();
Возврат ПолучТ3_1;
КонецЕсли;
КонецЕсли;
ИначеЕсли ТипКода = "Т3_2" Тогда
Если Разд4-Разд3 > 1 Тогда
СпрКодов.ИспользоватьРодителя(ГруппаТ3);
Если СпрКодов.НайтиПоКоду("000/" + Лев(Прав(СтрокаКодов, СтрДлина(СтрокаКодов) - Разд3), Разд4 - Разд3 - 1), 2) = 1 Тогда
ПолучТ3_2 = СпрКодов.ТекущийЭлемент();
Возврат ПолучТ3_2;
КонецЕсли;
КонецЕсли;
ИначеЕсли ТипКода = "Т3_3" Тогда
Если Разд5-Разд4 > 1 Тогда
СпрКодов.ИспользоватьРодителя(ГруппаТ3);
Если СпрКодов.НайтиПоКоду("000/" + Лев(Прав(СтрокаКодов, СтрДлина(СтрокаКодов) - Разд4), Разд5 - Разд4 - 1), 2) = 1 Тогда
ПолучТ3_3 = СпрКодов.ТекущийЭлемент();
Возврат ПолучТ3_3;
КонецЕсли;
КонецЕсли;
ИначеЕсли ТипКода = "Т3_4" Тогда
Если Разд6-Разд5 > 1 Тогда
СпрКодов.ИспользоватьРодителя(ГруппаТ3);
Если СпрКодов.НайтиПоКоду("000/" + Лев(Прав(СтрокаКодов, СтрДлина(СтрокаКодов) - Разд5), Разд6 - Разд5 - 1), 2) = 1 Тогда
ПолучТ3_4 = СпрКодов.ТекущийЭлемент();
Возврат ПолучТ3_4;
КонецЕсли;
КонецЕсли;
ИначеЕсли ТипКода = "Т3_5" Тогда
Если Разд7-Разд6 > 1 Тогда
СпрКодов.ИспользоватьРодителя(ГруппаТ3);
Если СпрКодов.НайтиПоКоду("000/" + Лев(Прав(СтрокаКодов, СтрДлина(СтрокаКодов) - Разд6), Разд7 - Разд6 - 1), 2) = 1 Тогда
ПолучТ3_5 = СпрКодов.ТекущийЭлемент();
Возврат ПолучТ3_5;
КонецЕсли;
КонецЕсли;
ИначеЕсли ТипКода = "Т3_6" Тогда
Если Разд8-Разд7 > 1 Тогда
СпрКодов.ИспользоватьРодителя(ГруппаТ3);
Если СпрКодов.НайтиПоКоду("000/" + Лев(Прав(СтрокаКодов, СтрДлина(СтрокаКодов) - Разд7), Разд8 - Разд7 - 1), 2) = 1 Тогда
ПолучТ3_6 = СпрКодов.ТекущийЭлемент();
Возврат ПолучТ3_6;
КонецЕсли;
КонецЕсли;
ИначеЕсли ТипКода = "Т3_7" Тогда
Если Разд9-Разд8 > 1 Тогда
СпрКодов.ИспользоватьРодителя(ГруппаТ3);
Если СпрКодов.НайтиПоКоду("000/" + Лев(Прав(СтрокаКодов, СтрДлина(СтрокаКодов) - Разд8), Разд9 - Разд8 - 1), 2) = 1 Тогда
ПолучТ3_7 = СпрКодов.ТекущийЭлемент();
Возврат ПолучТ3_7;
КонецЕсли;
КонецЕсли;
ИначеЕсли ТипКода = "Т3_8" Тогда
Если Разд10-Разд9 > 1 Тогда
СпрКодов.ИспользоватьРодителя(ГруппаТ3);
Если СпрКодов.НайтиПоКоду("000/" + Лев(Прав(СтрокаКодов, СтрДлина(СтрокаКодов) - Разд9), Разд10 - Разд9 - 1), 2) = 1 Тогда
ПолучТ3_8 = СпрКодов.ТекущийЭлемент();
Возврат ПолучТ3_8;
КонецЕсли;
КонецЕсли;
ИначеЕсли ТипКода = "Т3_9" Тогда
Если Разд11-Разд10 > 1 Тогда
СпрКодов.ИспользоватьРодителя(ГруппаТ3);
ещё один высер от автодилера.
1. начнём сначала, там есть строки:
...
ГруппаТ1 = СпрКодов.НайтиПоКоду("0",0);
..., обращаю внимание автора, что функция НайтиПоКоду не возвращает элемент справочника, она лишь говорит есть он или нет, для позиционирования на элементе не хватает строк типа ГруппаТ1 = СпрКодом.ТекущийЭлемент(); и т.д.
2. дальше. в функцию передаётся параметр СтрокаКодов - это строка с запятыми в качестве разделителей. я конечно понимаю, что в 1С нет встроенной функции для получения массива частей строки типа split в java, но написать свою вообще не сложно, но видимо у автора не хватило мозг..., извините, времени.
3. теперь смотрим на подобные (их несколько в функции) блоки кода типа:
СпрКодов.ИспользоватьРодителя(ГруппаТ1);
Если СпрКодов.НайтиПоКоду("0/" + Лев(СтрокаКодов,Разд1-1),2) = 1 Тогда
ПолучТ1 = СпрКодов.ТекущийЭлемент();
Возврат ПолучТ1;
КонецЕсли;
строка СпрКодов.ИспользоватьРодителя(ГруппаТ1); не имеет смысла, т.к. ГруппаТ1 содержит значение 1 (см. п.1), а не ссылку на элемент справочника, код работает только благодаря второму параметру - 2, т.к. он заставляет функцию НайтиПоКоду искать по всему справочнику, используя полный код.
−103
# save all blocks to %blocks. Replace first block with <block blockname />
sub _parse_block {
my $tag = $_[1];
last unless $_[0]=~s#($tag->[0]block +([^ /]*?) *$tag->[1])((.*?)$tag->[0]/?block$tag->[1])#
my($opentag,$source,$bname,$bcode, $retval) = ($1,$3, $2, $4, '');
if( $bcode =~m|$tag->[0]block +[^ /]*? *$tag->[1]|){
_parse_block($source, $tag);
$retval = $opentag.$source;
}else{
$retval = "$tag->[0]block $bname /$tag->[1]" unless exists $blocks{$bname};
$bcode=~s%$tag->[0](:? |/)*parent(:? |/)*$tag->[1]%$blocks{$bname}%g;
$blocks{$bname} = $bcode;
}
$retval;
#seg;
}
foreach my $tag( @{$self->{tag_symbols}} ){
_parse_block($code,$tag) while(1);
}
#if <blockmode> turned on, delete all data that not in blocks until </blockmode> or end of code
foreach my $tag( @{$self->{tag_symbols}} ){
$code=~s%$tag->[0] *blocks?(?:mode?)? *$tag->[1](.*?)(?:(?:$tag->[0] *\/ *blocks?(?:mode?)? *$tag->[1])|(';#end of code))%
$_ = $1; my $end_of_code = $2;
my $retval;
$retval .= $1 while( m/($tag->[0]block +[^ ]*? *\/.*?$tag->[1])/g );
$retval.$end_of_code;
%esg;
#
}
# replace <block blockname /> with a code block
foreach my $tag( @{$self->{tag_symbols}} ){
while($code=~s|$tag->[0]block +([A-zА-я0-9_-]*?) */.*?$tag->[1]|$blocks{$1}|eg){};
};
Кусок шаблонизатора. Парсинг вложенных тегов регулярками.