+76
- 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
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
static final String MIN_INTEGER = String.valueOf(Integer.MIN_VALUE);
static final String MAX_INTEGER = String.valueOf(Integer.MAX_VALUE);
static final String MIN_LONG = String.valueOf(Long.MIN_VALUE);
static final String MAX_LONG = String.valueOf(Long.MAX_VALUE);
static final int NS_INTEGER = 1;
static final int NS_LONG = 2;
/**
* Проверяет, является ли передаваемая строка строковым представлением числа типа int (long)
* @param s строка для проверки
* @return <code>true</code>, если строка может быть распарсена как int (ling).
* @see Integer#parseInt
* @see Long#parseLong
*/
private static boolean isNumber(String s, int NUMBER_SIZE) {
String MIN_NUMBER = "", MAX_NUMBER = "";
switch (NUMBER_SIZE) {
case (NS_INTEGER):
MIN_NUMBER = MIN_INTEGER;
MAX_NUMBER = MAX_INTEGER;
break;
case (NS_LONG):
MIN_NUMBER = MIN_LONG;
MAX_NUMBER = MAX_LONG;
break;
}
if (s == null) return false;
final int len = s.length();
boolean negative = false;
int pos = len > 0 && (negative = s.charAt(0) == '-') ? 1 : 0;
if (pos == len) return false;
while (pos < len && s.charAt(pos) == '0') pos++; //пропустим 0
if (pos == len) return true; // там 0
// если длина заведомо больше, то и значение по-любому выходит за пределы
if (negative && len - pos > MIN_NUMBER.length() - 1 || len - pos > MAX_NUMBER.length()) return false;
// нужно проверять предельные значения
boolean needCheckRange = negative && len - pos == MIN_NUMBER.length() - 1 || len - pos == MAX_NUMBER.length();
if (needCheckRange) {
final String rangeString = negative ? MIN_NUMBER : MAX_NUMBER;
for (int i = negative? 1:0; pos<len; pos++,i++) {
final char c = s.charAt(pos);
char r = 0;
if (c < '0' || c > '9' ||
(needCheckRange && c > (r = rangeString.charAt(i))) ||
((needCheckRange &= c == r) && false))
return false;
}
} else {
for (;pos<len;pos++) {
final char c = s.charAt(pos);
if (c < '0' || c > '9')
return false;
}
}
return true;
}
glprizes,
24 Сентября 2014
+80
- 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
/**
* Форматирует double, c arround кол-вом знаков после запятой
* @param d double
* @param arround int
* @return String
*/
public static String formatDouble(double d, int arround) {
if (arround > 6) {
throwIllegalFormat();
}
StringBuffer sb = new StringBuffer(10);
boolean minus = d < 0;
if (minus) {
d = -d;
}
for (int i = 0; i < arround; i++) {
d *= 10;
}
long l = (long) (d + 0.000000001);
do {
char digit = (char) ('0' + (l % 10));
l = l / 10;
sb.append(digit);
if (--arround == 0) {
sb.append('.');
}
} while (l != 0 || arround >= 0);
if (minus) {
sb.append('-');
}
return sb.reverse().toString();
}
glprizes,
02 Октября 2013
+83
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
private static boolean getIsDeclinedByRules(boolean oldIsSatisfy, boolean oldIsDeclined, boolean newIsSatisfy) {
if (!oldIsSatisfy && oldIsDeclined && !newIsSatisfy) return true;
if (!oldIsSatisfy && oldIsDeclined && newIsSatisfy) return false;
if (!oldIsSatisfy && !oldIsDeclined && !newIsSatisfy) return true;
if (!oldIsSatisfy && !oldIsDeclined && newIsSatisfy) return false;
if ( oldIsSatisfy && oldIsDeclined && !newIsSatisfy) return true;
if ( oldIsSatisfy && oldIsDeclined && newIsSatisfy) return true;
if ( oldIsSatisfy && !oldIsDeclined && !newIsSatisfy) return true;
if ( oldIsSatisfy && !oldIsDeclined && newIsSatisfy) return false;
return true;
}
glprizes,
25 Марта 2013
+154
- 1
- 2
- 3
function isEmptyStr(val) {
return val == null || val === "";
}
glprizes,
01 Августа 2012
+69
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
String sXLTName = template;
String[] fileNames = new File(templatePath).list();
try {
if (fileNames != null) {
for (String fileName : fileNames) {
if (fileName.equalsIgnoreCase(template)) {
sXLTName = fileName;
break;
}
}
}
} finally {
tmpBook = POIHelper.openRepBook(templatePath + sXLTName);
}
Вместо tmpBook = POIHelper.openRepBook(templatePath + template);
glprizes,
15 Июня 2012
+160
- 1
- 2
- 3
- 4
- 5
function changeFilter(event) {
if (parseInt(event.newValue) < 1000) {
api.Msg.showErr("Укажите год!");
}
}
Обработчик onchange поля "Год"
glprizes,
07 Июня 2012
−131
- 1
- 2
alter table EqualityCodes add constraint chk_EqualityCodes_Code
check (Code not in ('', ' ', ' ', ' ', ' ', ' ', ' ', ' '));
glprizes,
28 Мая 2012
+172
- 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
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
//уничтожение буфера
void delbuf(void* &bf, char ntype)
{
if (ntype=='C')
{
if (bf!=(char*) NULL)
{
delete[] bf;
bf=NULL;
}
return;
}
if (ntype=='B')
{
if (bf!=(BYTE*) NULL)
{
delete[] bf;
bf=NULL;
}
return;
}
if (ntype=='I')
{
if (bf!=(int*) NULL)
{
delete[] bf;
bf=NULL;
}
return;
}
if (ntype=='F')
{
if (bf!=(double*) NULL)
{
delete[] bf;
bf=NULL;
}
return;
}
if (ntype=='D')
{
if (bf!=(double*) NULL)
{
delete[] bf;
bf=NULL;
}
return;
}
if (ntype=='W')
{
if (bf!=(WORD*) NULL)
{
delete[] bf;
bf=NULL;
}
return;
}
if (ntype=='L')
{
if (bf!=(long*) NULL)
{
delete[] bf;
bf=NULL;
}
return;
}
if (ntype=='S')
{
if (bf!=(short*) NULL)
{
delete[] bf;
bf=NULL;
}
return;
}
if (ntype=='R')
{
if (bf!=(DWORD*) NULL)
{
delete[] bf;
bf=NULL;
}
return;
}
return;
}
86 строк вместо простого delete [] bf
glprizes,
02 Февраля 2011
+160
- 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
- 39
- 40
- 41
- 42
- 43
//перевод целого числа в строку
//num-число
//nn-длина поля
char* num10toc(int num, int nn=4)
{
int i;
int sgmin=0;
int xnum=num;
char* p=lnum;
if (xnum<0)
{
sgmin=1;
xnum=-xnum;
}
memset(lnum,0,WMAX+1);
memset(lnum,0x20,WMAX);
i=lenint(xnum);
int j=i;
int mm=nn-i-sgmin;
if (mm>0)
{
p+=mm;
}
if (sgmin!=0)
{
*p='-';
p++;
}
if (xnum==0)
{
*p='0';
return &lnum[0];
}
while (xnum>0)
{
*(p+i-1)=(char)(xnum%10+0x30);
xnum/=10;
i--;
}
*(p+j)=0;
return &lnum[0];
}
Загадка: что выведется в следующих случаях?
printf("%s\n", num10toc(0, 5));
printf("%s\n", num10toc(1, 5));
printf("%s\n", num10toc(12, 5));
printf("%s\n", num10toc(123, 5));
printf("%s\n", num10toc(1234, 5));
printf("%s\n", num10toc(12345, 5));
printf("%s\n", num10toc(123456, 5));
glprizes,
01 Февраля 2011
+163
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
#define nCyrLang 40
char CyrNumLang[nCyrLang];
memset(&CyrNumLang[0],0,nCyrLang);
CyrNumLang[1]=7;
CyrNumLang[2]=9;
CyrNumLang[3]=11;
CyrNumLang[4]=83;
CyrNumLang[5]=84;
CyrNumLang[6]=85;
CyrNumLang[7]=86;
CyrNumLang[8]=44;
CyrNumLang[9]=87;
CyrNumLang[10]=48;
CyrNumLang[11]=88;
CyrNumLang[12]=89;
CyrNumLang[13]=53;
CyrNumLang[14]=56;
CyrNumLang[15]=6;
Труъ способ инициализации массивов.
glprizes,
01 Февраля 2011