- 1
static_cast<Vampire*>(&attacker)->suckHpFrom(attacked, damage * Vampire::hpSuckRatio);
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+134
static_cast<Vampire*>(&attacker)->suckHpFrom(attacked, damage * Vampire::hpSuckRatio);
+143
for (val side: new boolean[] { false, true }) {
+101
var
Excel: OleVariant;
Rows, Cols: integer;
WorkSheet: OleVariant;
DebugList: TStringList;
I, j, CSeek: integer;
R, ArrV: OleVariant;
ObjData: TDataContainer;
D: integer;
begin
{$IFDEF DEBUG}
DebugList := TStringList.Create;
{$ENDIF}
try
Excel := CreateOleObject('Excel.Application');
Excel.Visible := false;
Excel.Workbooks.Open[DocPath, 0, True];
WorkSheet := Excel.ActiveWorkbook.ActiveSheet;
R := Excel.Intersect(WorkSheet.UsedRange,
WorkSheet.UsedRange.Offset[14, 0]);
ArrV := R.Value;
Rows := VarArrayHighBound(ArrV, 1);
Cols := VarArrayHighBound(ArrV, 2);
{$IFDEF DEBUG}
DebugList.Add(Format('Количество ячеек в таблице = %d', [(Rows) * Cols]));
DebugList.Add(Format('Rows = %d, Cols = %d', [Rows, Cols]));
{$ENDIF}
CSeek := 0;
D := 1;
for I := 1 to Rows do
begin
if (CompareStr(Trim(VarToStr(ArrV[I, 1])), Trim('Итого')) = 0) then
Break;
if (CompareStr(Trim(VarToStr(ArrV[I, 1])),
Trim('отдел')) = 0) or
(CompareStr(Trim(VarToStr(ArrV[I, 1])), Trim('10.05')) = 0) or
(CompareStr(Trim(VarToStr(ArrV[I, 1])), Trim('10.06')) = 0) or
(CompareStr(Trim(VarToStr(ArrV[I, 1])), Trim('10.09')) = 0) then
begin
CSeek := I + 2;
Continue;
end;
if CSeek > I then
Continue;
for j := 1 to Cols do
begin
case j of
1:
begin
if VarToStr(ArrV[I, j]) <> '' then
begin
ObjData := TDataContainer.Create;
ObjData.Name := ArrV[I, j];
end;
end;
3:
begin
if VarToStr(ArrV[I, j]) <> '' then
ObjData.InventoryNumber := GetInventoryNumber(ArrV[I, j]);
end;
10:
begin
if (D mod 2 <> 0) then
begin
if VarToStr(ArrV[I, j]) <> '' then
ObjData.DataCount := ArrV[I, j];
end
else
ObjData.Cost := ArrV[I, j];
if (ObjData <> nil) and (ObjData.DataCount > 0) then
begin
FData.Add(ObjData);
DebugList.Add(ObjData.AsString);
end;
end;
end;
Inc(D);
end;
end;
{$IFDEF DEBUG}
DebugList.Add('Objects created: ' + IntToStr(FData.Count));
D:=1;
for ObjData in FData.Items.Values do
D := D + ObjData.DataCount;
DebugList.Add('Total objects count: ' + IntToStr(D));
DebugList.SaveToFile('C:\ExcelDebug.txt');
{$ENDIF}
finally
{$IFDEF DEBUG}
DebugList.Free;
{$ENDIF}
Excel.Quit;
end;
end;
При разборе выхлопа из 1С в Excel - excel и формат выгрузки сделали всё, чтобы я люто наговнокодил-(
+137
$path = substr(array_pop(array_reverse(explode("?", $_SERVER["REQUEST_URI"]))), 1);
$text = urldecode(array_pop(explode("/", trim(array_pop(array_reverse(explode("?", str_replace(".png", "", $path))))))));
Имеется скрипт, генерирующий изображение, с адресом типа "/images/4601546083333.png?height=420&width=1510" .
В скрипте необходимо получить название запрошенного файла без расширения.
+125
Господа. Помогите решить хитрую задачку.
Есть у меня проект корне которого лежат файлик весь проект под контролем git кроме этого файлика. там конфигурация специфичная для тестового сервера.
Вот мне нужно сделать еще одну ветку, и как бы сделать так что бы этот файлик был подконтрольный гиту в этой ветке.
т.е. когда я делаю checkout файлик менялся. А когда push файлик игнорировался бы.
Очень буду благодарен если кто подскажет как быть.
+123
http://git-man-page-generator.lokaltog.net/
нынче стало популярно линки постить. я тоже попробую.
Git SCM. The Missing Man Page.
посвящается всем кто пытался читать официальные доки гита.
+172
$lastBuildDate=date(DATE_FORMAT_RFC822);
$lastBuildDated = str_replace ( '+0400' , '+0300' , $lastBuildDate );
Шах и мат серверным настройкам timezone
−159
Запрос = Новый Запрос();
Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
Запрос.Текст = "ВЫБРАТЬ
| Проекты.Ссылка КАК Проект, Проекты.Менеджер КАК Менеджер, Проекты.СтатусПроекта, Проекты.ТипПроекта, Проекты.ВидПродукции,
| Проекты.ДатаТретейПодписи, Проекты.ДатаНачалаСтадии, Проекты.РасчетнаяДатаОкончанияСтадии, Проекты.Приоритет
|ИЗ Справочник.Проекты КАК Проекты
|ГДЕ (Проекты.ДатаОтправкиТЗ >= &НачДата И Проекты.ДатаОтправкиТЗ <= &КонДата ИЛИ Проекты.ДатаОтправкиТЗ = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0))
| И (&ВыбМенеджер = ЗНАЧЕНИЕ(Справочник.Сотрудники.ПустаяСсылка) ИЛИ Проекты.Менеджер = &ВыбМенеджер)
| И (&ВыбСтатусПроекта = ЗНАЧЕНИЕ(Перечисление.Статусы.ПустаяСсылка) ИЛИ Проекты.СтатусПроекта = &ВыбСтатусПроекта)
| И Проекты.ПометкаУдаления = &ЗначПометкиНаУдаление";
Запрос.УстановитьПараметр("НачДата",НачДата);
Запрос.УстановитьПараметр("КонДата",КонДата);
Запрос.УстановитьПараметр("ВыбМенеджер",ВыбМенеджер);
Запрос.УстановитьПараметр("ВыбСтатусПроекта",ВыбСтатусПроекта);
Запрос.УстановитьПараметр("ЗначПометкиНаУдаление",ложь);
ТЗ = Новый ТаблицаЗначений;
ТЗ.Колонки.Добавить("Менеджер");
ТЗ.Колонки.Добавить("Проект");
ТЗ.Колонки.Добавить("ТипПроекта");
ТЗ.Колонки.Добавить("ВидПродукции");
ТЗ.Колонки.Добавить("ДатаТретейПодписи");
ТЗ.Колонки.Добавить("ДатаНачалаСтадии");
ТЗ.Колонки.Добавить("РасчетнаяДатаОкончанияСтадии");
ТЗ.Колонки.Добавить("ПлановаяДатаОтправкиТЗ");
ТЗ.Колонки.Добавить("Статус"); //Статус проекта
ТЗ.Колонки.Добавить("Приоритет"); //Статус проекта
Результат = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = Результат.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Если (ВыборкаДетальныеЗаписи.СтатусПроекта = Перечисления.Статусы.Выполнено) Тогда
Продолжить;
КонецЕсли;
Если ЗначениеЗаполнено(ВыборкаДетальныеЗаписи.РасчетнаяДатаОкончанияПроекта) = Ложь Тогда
Продолжить;
КонецЕсли;
Если СокрЛП(ВыборкаДетальныеЗаписи.ДатаОтправкиТЗ) = "01.01.0001 0:00:00" Тогда
если (ВыборкаДетальныеЗаписи.РасчетнаяДатаОкончанияПроекта-60*60*24*45 >= НачДата) и (ВыборкаДетальныеЗаписи.РасчетнаяДатаОкончанияПроекта-60*60*24*45<= КонДата) Тогда
Иначе
продолжить;
КонецЕсли;
КонецЕсли;
НоваяСтрока = ТЗ.Добавить();
НоваяСтрока.Проект = ВыборкаДетальныеЗаписи.Проект;
НоваяСтрока.Менеджер = ВыборкаДетальныеЗаписи.Менеджер;
НоваяСтрока.ВидПродукции = ВыборкаДетальныеЗаписи.ВидПродукции;
НоваяСтрока.ТипПроекта = ВыборкаДетальныеЗаписи.ТипПроекта;
НоваяСтрока.ДатаТретейПодписи = ВыборкаДетальныеЗаписи.ДатаТретейПодписи;
НоваяСтрока.РасчетнаяДатаОкончанияСтадии = ВыборкаДетальныеЗаписи.РасчетнаяДатаОкончанияСтадии;
НоваяСтрока.ДатаНачалаСтадии = ВыборкаДетальныеЗаписи.ДатаНачалаСтадии;
НоваяСтрока.Статус = ВыборкаДетальныеЗаписи.СтатусПроекта;
НоваяСтрока.ПлановаяДатаОтправкиТЗ = ВыборкаДетальныеЗаписи.РасчетнаяДатаОкончанияПроекта-60*60*24*45;//-45 дней
НоваяСтрока.Приоритет = ВыборкаДетальныеЗаписи.Приоритет;
КонецЦикла;
тз.Сортировать("Менеджер,ТипПроекта возр, Приоритет Убыв,Проект");
РФ = РеквизитФормыВЗначение("Отчет");
Макет = РФ.ПолучитьМакет("ПечатьПроектов");
ОбластьШапки = Макет.ПолучитьОбласть("Шапка");
ОбластьСтроки = Макет.ПолучитьОбласть("Строка");
ОбластьТипаПроекта = Макет.ПолучитьОбласть("ТипПроекта");
ОблатстьОтложенныхПроектов = Макет.ПолучитьОбласть("Отложенные");
ОбластьМенеджеры = Макет.ПолучитьОбласть("МЕНЕДЖЕР");
ТабДок = Новый ТабличныйДокумент;
ТабДок.Очистить();
ТабДок.Вывести(ОбластьШапки);
Если тз.Количество()>0 Тогда
ТекущийТипПроекта = 0; ТекущийМенеджер = 0; пн = 0;
Для Каждого ТекущаяСтрока Из тз Цикл
Если ТекущаяСтрока.Статус = Перечисления.Статусы.Отложено Тогда
продолжить;
КонецЕсли;
Если (ТекущийМенеджер = 0) или (ТекущийМенеджер <> ТекущаяСтрока.Менеджер) Тогда
ТекущийМенеджер = ТекущаяСтрока.Менеджер;
ОбластьМенеджеры.Параметры.тМенеджер = ТекущийМенеджер;
ТабДок.Вывести(ОбластьМенеджеры);
КонецЕсли;
Если (ТекущийТипПроекта = 0) или (ТекущийТипПроекта <> ТекущаяСтрока.ТипПроекта) Тогда
ТекущийТипПроекта = ТекущаяСтрока.ТипПроекта;
ОбластьТипаПроекта.Параметры.тТипПроекта = ТекущийТипПроекта;
ТабДок.Вывести(ОбластьТипаПроекта);
КонецЕсли;
пн = пн + 1;
ОбластьСтроки.Параметры.ПН = пн;
ОбластьСтроки.Параметры.тПроектАртикул = СокрЛП(ТекущаяСтрока.ВидПродукции) + Символы.ПС + СокрЛП(ТекущаяСтрока.проект.Наименование);
ОбластьСтроки.Параметры.тПроектРасшифровка = ТекущаяСтрока.проект;
ОбластьСтроки.Параметры.тПлановаяДатаОтправкиТЗ = формат(ТекущаяСтрока.ПлановаяДатаОтправкиТЗ,"ДФ=dd.MM.yyyy");//-45 дней от расчетной даты окончания
ОбластьСтроки.Параметры.тДатаТретейПодписи = СокрЛП(Формат(ТекущаяСтрока.ДатаТретейПодписи,"ДФ=dd.MM.yyyy"));
ТабДок.Вывести(ОбластьСтроки);
КонецЦикла;
Попытка
ТабДок.Области.Строка.АвтоВысотаСтроки = Истина;
ТабДок.АвтоМасштаб = Истина;
ТабДок.ПолеСправа = 0;
ТабДок.ПолеСлева = 0;
ТабДок.ПовторятьПриПечатиСтроки = ТабДок.Область(1,,2,);
ТабДок.ФиксацияСверху = 2;
Исключение
КонецПопытки;
КонецЕсли;
ТД = ТабДок;
ТД.Напечатать();
Серверная процедура в 8.2. Автор - "семёрочник-многостаночник". Переписываю и рыдаю...
Ужимал как мог, чтобы вместилось.
+145
http://geektimes.ru/post/248580/
Ну что, пидарашки. Олимпиадные программисты ожидаемо соснули. Все еще будете употреблять "а наши побеждают в олимпиадах" как аргумент?
+46
#include <Windows.h>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <iostream>
#include <fstream>
#include <iostream>
#include <string>
using namespace std;
double f(double x, double y)
{
return y*y-2*x;
}
double f2(double x)
{
return sqrt(2*x+1);
}
int main(void) {
std::ofstream out;
out.open("out.txt");
double xn = 0, yn = 1, a = 0, b = 1, h = 0.2, x, y, n;
int i;
n = (b - a) / h;
y = yn;
x = a;
printf("x[0]=%.4f ", x);
printf("y[0]=%.4f\n\n", y);
double k1, k2, k3, k4, dy, y1;
cout << " i " << "x[i] " << "y[i] " << "y[x[i]] " << "E" << endl;
for (i = 1; i <= n; ++i)
{
x = xn + i*h;
k1 = h*f(x, y);
k2 = h*f((x + (h / 2)), (y + (1 / 2 * k1)));
k3 = h*f((x + (h / 2)), (y + (1 / 2 * k2)));
k4 = h*f((x + h), (y + k3));
dy = (k1 + 2 * k2 + 2 * k3 + k4) / 6;
y = y + dy;
y1 = f2(x);
printf("%2d. ", i);
printf("%.5f ", x);
printf("%.5f ", y);
printf("%.5f ", y1);
printf("%.9f\n", abs(y-y1));
}
out << y1 << '\n';
out.close();
return 0;
}
В out выводится только последнее значение y1.
Сам цикл проходит (в данном случае) 5 раз
Соответственно, 5 значений y1
Как сделать, чтобы он показывал все пять значений?