-
−99
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
Если Сальдо = Перечисления.ДаНет.Да И Кредит = Перечисления.ДаНет.Да Тогда
СуммаКОплате = Строка.Сальдо + Строка.Начислено + Строка.Разовые - Строка.Оплата - Льгота;
Строка.Коплате = СуммаКОплате;
ИначеЕсли Сальдо = Перечисления.ДаНет.Нет И Кредит = Перечисления.ДаНет.Да Тогда
СуммаКОплате = Строка.Начислено + Строка.Разовые - Строка.Оплата - Льгота - ?(Строка.Сальдо < 0, Строка.Сальдо * -1, 0);
Строка.Коплате = СуммаКОплате;
ИначеЕсли Сальдо = Перечисления.ДаНет.Да И Кредит = Перечисления.ДаНет.Нет Тогда
СуммаКОплате = ?(Строка.Сальдо > 0, Строка.Сальдо , 0) + Строка.Начислено + Строка.Разовые - Строка.Оплата - Льгота;
Строка.Коплате = СуммаКОплате;
ИначеЕсли Сальдо = Перечисления.ДаНет.Нет И Кредит = Перечисления.ДаНет.Нет Тогда
СуммаКОплате = Строка.Начислено + Строка.Разовые - Льгота;
Строка.Коплате = СуммаКОплате;
КонецЕсли;
Проняло до слез. Ребята не знают простой математики, зато им известна условная тернарная операция. Привел самый эпичный отрывок, но там впору публиковать всю конфигурацию.
ivan_0110,
03 Февраля 2016
-
+2
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
bool matchingNumerals(int num)
{
QString str = QString("%1").arg(num);
for (int i = 0; i < 10; i++)
if (str.split(QString("%1").arg(i)).size() > 2)
return true;
return false;
}
Функция, определяющая, есть ли в числе одинаковые цифры на великой могучей Qt.
Mongrell,
03 Февраля 2016
-
+1
- 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
// Определение метода Q3CanvasText::text()
class Q_COMPAT_EXPORT Q3CanvasText : public Q3CanvasItem {
//...
QString text() const;
//...
};
// Далее уже в "моем" классе строчка:
class CDevice : public CDiagramObject {
// ...
private:
Q3CanvasText * m_pTitle;
//....
public:
const QString & stitle() const { return m_pTitle->text(); } // обратим вниманиена возвращаемый тип
// ...
};
// Еще один класс и отображение тултипа при наведении
void CDiagramView::showToolTip( const QPoint & p, CDevice * d ) {
if( d ) {
QString tmp;
if( d->group() == QString::null || d->group() == "" )
tmp = ( d->stitle().left( d->stitle().indexOf(":") ) ); // вылетало здесь : d->stitle().indexOf(":") segmentation fault
else
tmp = d->group();
//.....
}
}
Нашел магию!
Юзаю Qt 4.8.6 в Linux
Под Виндой новая версия перепиливаемой проги компилится и работает,
под Линухом новая версия вылетает, старая робит.
Соль в том, что метод stitle() по факту возвращает ссылку на копию текста возвращенного Q3CanvasText::text(), которая внезапно удаляется при выходе из метода.
Но почему тот же gcc под виндой скомпилил это без багов?
OlegUP,
03 Февраля 2016
-
+2
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
<?php
function generate_number_part($length=2) {
$password = substr(preg_replace("/[^0-9]/", "", crypt(time())) .
preg_replace("/[^0-9]/", "", crypt(time())) .
preg_replace("/[^0-9]/", "", crypt(time())),
0, $length);
return $password;
}
Сгенерировать пароль из ровно $length цифр... или меньше
ruslanbes2,
03 Февраля 2016
-
−2
- 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
float PriceByProductID(string product_id)
{
if(product_id == RUBY_PILE)
return 1.99f;
else if (product_id == RUBY_BAG)
return 4.99f;
else if (product_id == RUBY_SACK)
return 9.99f;
else if (product_id == RUBY_BOX)
return 19.99f;
else if (product_id == RUBY_CHEST)
return 39.99f;
else if (product_id == RUBY_TRUNK)
return 99.99f;
else if (product_id == GOLD_PILE)
return 0.99f;
else if (product_id == GOLD_BAG)
return 2.99f;
else if (product_id == GOLD_SACK)
return 7.99f;
else if (product_id == GOLD_BOX)
return 14.99f;
else if (product_id == GOLD_CHEST)
return 29.99f;
else if (product_id == GOLD_TRUNK)
return 79.99f;
return 0f;
}
kschingiz,
03 Февраля 2016
-
+9
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
int naive_show_int(int x) {
char buf[32];
char *p = buf + sizeof(buf);
*--p = 0;
int negative = 0;
if (x < 0) {
x = -x;
negative = 1;
}
while (x > 0) {
if (x <= 0)
return -1;
int digit = '0' + x % 10;
if (digit < '0' || digit >= '9')
return -1;
*--p = digit;
x /= 10;
}
if (negative)
*--p = '-';
puts(p);
return 0;
}
Допустишь один UB - ничто уже не спасёт твою прогу...
http://ideone.com/EFGoBi
bormand,
02 Февраля 2016
-
−1
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
#include <iostream>
using namespace std;
auto print(auto arg)
{
return (cout<<arg);
//return cout;
}
auto print(auto arg, auto... args)
{
return (print(args...)<<arg);
//return cout;
}
int main() {
print(1,"ko")<<"ok";
return 0;
}
https://ideone.com/YvoHi3
ГЦЦ так и не научился в возвращаемые значения с авто
laMer007,
02 Февраля 2016
-
+9
- 1
- 2
- 3
- 4
- 5
// получаем текущую дату (день)
$now_day = $mysqli->query('SELECT DATE(NOW()) now');
$now_day = $now_day->fetch_assoc(); //получаем текущий день
$now_day = $now_day['now']; //в виде строки
$now_day = '2016-01-14';
Кастанедовский код.
Ja_govnokoder,
02 Февраля 2016
-
0
- 1
- 2
- 3
- 4
$data = array_slice(array_filter(explode("|", trim($data))), 0, 2000);
if (count(array_filter(explode("|", trim($data)))) > 2000) {
mail('****@gmail.com', '**** too much orders', count(array_filter(explode("|", trim($data)))));
}
Не знаю, как это прокомментировать. Видимо, индус не хочет получать сообщения на почту.
jbot,
02 Февраля 2016
-
−19
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| ЗаказПоставщику.Ссылка КАК Ссылка
|ИЗ
| Документ.ЗаказПоставщику КАК ЗаказПоставщику
|ГДЕ
| ЗаказПоставщику.EmeWmsЭкспорт И
| НЕ ЗаказПоставщику.ПометкаУдаления";
yaguarvl,
01 Февраля 2016