- 1
- 2
Дайте инвайт этому господину
https://habr.com/sandbox/125898/
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+2
Дайте инвайт этому господину
https://habr.com/sandbox/125898/
+1
public static string GetTextFromExcel97To2003Format(string filePath)
{
FileStream fileStream = null;
POIFSFileSystem fileSystem = null;
ExcelExtractor excelExtractor = null;
try
{
using (fileStream = new FileStream(filePath, FileMode.Open))
{
fileSystem = new POIFSFileSystem(fileStream);
excelExtractor = new ExcelExtractor(fileSystem);
excelExtractor.IncludeBlankCells = false; // optional
excelExtractor.IncludeCellComments = false; // optional
excelExtractor.IncludeHeaderFooter = false; // optional
excelExtractor.IncludeSheetNames = false; // optional
return excelExtractor.Text;
}
}
catch
{
// handle the exception
}
finally
{
if (excelExtractor != null)
{
excelExtractor.Close();
excelExtractor = null;
}
fileSystem = null;
if (fileStream != null)
{
fileStream.Close();
fileStream.Dispose();
fileStream = null;
}
}
return string.Empty;
}
это пиздец, товарищи: https://www.kunal-chowdhury.com/2017/07/npoi-excel-97-2003
эта хуита, на серьезных щах задвигается как документация к либе: https://github.com/tonyqus/npoi/wiki/Getting-Started-with-NPOI
как, блять, так можно? юзинги? та пошли вы нахуй, я вам не доверяю. и вообще, присвоение нуля тоже хуйня. нельзя доверять никому. НИКОМУ!!
Я не навижу индусов. Это пиздец. Это уже не первый раз, я натыкаюсь на статейку, которую, вот так читаешь, и понимаешь, что какая-то откровенная поибота и с мыслью "наверное опять эти ебаные индусы" скролишь вниз? чтобы увидеть рожу или хотябы имя автора. и там, СУКА, ИНДУС!!! они говорят, будь толерантным, а я им говорю, пошли НА ХУЙ!!!
−3
http://avg1.ru/upload/iblock/60a/60aa3c633e7f885cabd311cf3b6f6792.jpg
Она сама сделала ярлычки, на которых было написано, кто именно подарил ей украшение.
−106
Скрипаль заебал. Просто взял, блять, - и заебал... А в анус путина похоже кто-то сильно дунул, он аж совещание собрал.
Бандера приде, импичмент принесе.
−2
Кто как произносит слово "PHP"?
"PHP", "PHP", "PHP" - это "P", это "H", это "P"
+1
public GlobalSetting ReadGlobalSettingById(string id)
{
int totalItems;
var globalSettings = ReadGlobalSettings(PageSetting.All, out totalItems);
return globalSettings.FirstOrDefault(e => e.GlobalSettingID == id);
}
Инновационный алгоритм считывания сущности по ID:
1) считываем ВСЕ записи из базы в память;
2) в памяти находим сущность с нужным ID;
3) все остальное пусть Garbage Collector подберет;
4) удобно же, не правда ли?)
−9
Как называется свод правил, к примеру таких, как заключение необязательных параметров программы\функции в квадратные скобки.
Есть ли документ или стандарт на их применение?
Такое часто встречается и в python help, и в man pages, например.
+2
#include <bits/stdc++.h>
using namespace std;
int main(){
int x1,y1,x2,y2;
string xy1,xy2;
cin>>xy1>>xy2;
if (xy1[0]=='A')x1=1;
if (xy1[0]=='B')x1=2;
if (xy1[0]=='C')x1=3;
if (xy1[0]=='D')x1=4;
if (xy1[0]=='E')x1=5;
if (xy1[0]=='F')x1=6;
if (xy1[0]=='G')x1=7;
if (xy1[0]=='H')x1=8;
if (xy1[1]=='1')y1=1;
if (xy1[1]=='2')y1=2;
if (xy1[1]=='3')y1=3;
if (xy1[1]=='4')y1=4;
if (xy1[1]=='5')y1=5;
if (xy1[1]=='6')y1=6;
if (xy1[1]=='7')y1=7;
if (xy1[1]=='8')y1=8;
if (xy2[0]=='A')x2=1;
if (xy2[0]=='B')x2=2;
if (xy2[0]=='C')x2=3;
if (xy2[0]=='D')x2=4;
if (xy2[0]=='E')x2=5;
if (xy2[0]=='F')x2=6;
if (xy2[0]=='G')x2=7;
if (xy2[0]=='H')x2=8;
if (xy2[1]=='1')y2=1;
if (xy2[1]=='2')y2=2;
if (xy2[1]=='3')y2=3;
if (xy2[1]=='4')y2=4;
if (xy2[1]=='5')y2=5;
if (xy2[1]=='6')y2=6;
if (xy2[1]=='7')y2=7;
if (xy2[1]=='8')y2=8;
if ((abs(x1-x2)==1&&abs(y1-y2)==0)||
(abs(x1-x2)==0&&abs(y1-y2)==1)||
(abs(x1-x2)==1&&abs(y1-y2)==1)||
(y1==y2||x1==x2||abs(x1-x2)==abs(y2-y1))||
(y1==y2||x1==x2)||
(abs(x1-x2)==abs(y2-y1))||
(abs(x1-x2)==1&&abs(y1-y2)==2)||
(abs(x1-x2)==2&&abs(y1-y2)==1)||
(x1==x2&&((y1==2&&y2==y1+2)||(y1>=2&&y2==y1+1))))
{
//king
if(abs(x1-x2)==1&&abs(y1-y2)==0)
cout<<"King\n";
else if(abs(x1-x2)==0&&abs(y1-y2)==1)
cout<<"King\n";
else if(abs(x1-x2)==1&&abs(y1-y2)==1)
cout<<"King\n";
//queen
if(y1==y2||x1==x2||abs(x1-x2)==abs(y2-y1))
cout<<"Queen\n";
//rook
if(y1==y2||x1==x2)
cout<<"Rook\n";
//bishop
if (abs(x1-x2)==abs(y2-y1))
cout<<"Bishop\n";
//knight
if(abs(x1-x2)==1&&abs(y1-y2)==2)
cout<<"Knight\n";
else if(abs(x1-x2)==2&&abs(y1-y2)==1)
cout<<"Knight\n";
//pawn
if(x1==x2&&((y1==2&&y2==y1+2)||(y1>=2&&y2==y1+1)))
cout<<"Pawn\n";
}
else cout<<"Nobody";
}
Нашел его в старом добром ACMP и он работает
−6
class Foo {
// ...
private:
std::vector<int> v1_;
std::vector<int> v2_;
void bar( const std::vector<int>& v );
public:
void doAction( int choice ) {
if ( choice == 1 )
bar( v1_ );
else
bar( v2_ );
}
};
Почему передавать поля класса в свои же методы по ссылке\указателю -- это говнокод?
Как этого избегать, чтобы получилось универсальней?
−1
#ifdef DEBUG
static int (*printfn)(FILE *stream, const char *format, ...) = fprintf;
#else
static void (*printfn)(int priority, const char *format, ...) = syslog;
#endif
/* somewhere in getopt() options */
#ifdef DEBUG
printfn = noprintf;
#else
printfn = nosyslog;
#endif
/* elsewhere in a common header file */
#ifdef DEBUG
#undef LOG_ERR
#undef LOG_WARNING
#undef LOG_INFO
#define LOG_ERR stderr
#define LOG_WARNING stderr
#define LOG_INFO stderr
#endif
void nosyslog(int priority, const char *format, ...)
{
(void)priority;
(void)format;
}
int noprintf(FILE *stream, const char *format, ...)
{
(void)stream;
(void)format;
return 0;
}
А попроще способа для --quiet / -DDEBUG нету?