"Шедевры" программированя
От: Uzzy Россия  
Дата: 08.08.06 05:23
Оценка: 3 (1) :))) :))) :))) :))) :))) :))
Есть у нас один проектик, так вот прогеры оставили богатое духовное наследие.
public static bool IsInteger(object value)
{
   try
   {
      if (value == null)
      {
         return false;
      }
      else
      {
         string mynumber = value.ToString();
         mynumber = mynumber.Replace("0","").Replace("1","").Replace("2","").Replace("3","").Replace("4","").Replace("5","").Replace("6","").Replace("7","").Replace("8","").Replace("9","");
         if (mynumber.Length == 0)
         {
            return true;
         }
         else
         {
            return false;
         }
      }
   }
   catch
   {
      return false;
   }
}



Да кстати, недавно была темка, мол платить стали за строчки кода. В общем изящество решения одной задачки оставляю на ваш суд:
switch (eachchar)
{
   case 'a':
   case 'b':
   case 'c':
   case 'd':
   case 'e':
   case 'f':
   case 'g':
   case 'h':
   case 'i':
   case 'j':
   case 'k':
   case 'l':
   case 'm':
   case 'n':
   case 'o':
   case 'p':
   case 'q':
   case 'r':
   case 's':
   case 't':
   case 'u':
   case 'v':
   case 'w':
   case 'x':
   case 'y':
   case 'z':
   case '0':
   case '1':
   case '2':
   case '3':
   case '4':
   case '5':
   case '6':
   case '7':
   case '8':
   case '9':
   case '.':
      newname = newname + eachchar.ToString();
      break;
}
Re: "Шедевры" программированя
От: Alexey_ch Швейцария  
Дата: 08.08.06 07:50
Оценка:
Здравствуйте, Uzzy, Вы писали:

U>Да кстати, недавно была темка, мол платить стали за строчки кода. В общем изящество решения одной задачки оставляю на ваш суд:

Ну и правильно. Плятят же за строчки кода, а не за результат.
... << RSDN@Home 1.1.4 beta 7 rev. 0>>
Re: "Шедевры" программированя
От: kon_v_palto  
Дата: 08.08.06 09:00
Оценка: :)
Здравствуйте, Uzzy, Вы писали:

Так будет лудше:
switch (eachchar)
{
   case 'a':
      newname = newname + eachchar.ToString();
      break;
   case 'b':
      newname = newname + eachchar.ToString();
      break;
   case 'c':
      newname = newname + eachchar.ToString();
      break;
   case 'd':
      newname = newname + eachchar.ToString();
      break;
   case 'e':
      newname = newname + eachchar.ToString();
      break;
   case 'f':
      newname = newname + eachchar.ToString();
      break;
   case 'g':
      newname = newname + eachchar.ToString();
      break;
   case 'h':
      newname = newname + eachchar.ToString();
      break;
   case 'i':
      newname = newname + eachchar.ToString();
      break;
   case 'j':
      newname = newname + eachchar.ToString();
      break;
   case 'k':
      newname = newname + eachchar.ToString();
      break;
   case 'l':
      newname = newname + eachchar.ToString();
      break;
   case 'm':
      newname = newname + eachchar.ToString();
      break;
   case 'n':
      newname = newname + eachchar.ToString();
      break;
   case 'o':
      newname = newname + eachchar.ToString();
      break;
   case 'p':
      newname = newname + eachchar.ToString();
      break;
   case 'q':
      newname = newname + eachchar.ToString();
      break;
   case 'r':
      newname = newname + eachchar.ToString();
      break;
   case 's':
      newname = newname + eachchar.ToString();
      break;
   case 't':
      newname = newname + eachchar.ToString();
      break;
   case 'u':
      newname = newname + eachchar.ToString();
      break;
   case 'v':
      newname = newname + eachchar.ToString();
      break;
   case 'w':
      newname = newname + eachchar.ToString();
      break;
   case 'x':
      newname = newname + eachchar.ToString();
      break;
   case 'y':
      newname = newname + eachchar.ToString();
      break;
   case 'z':
      newname = newname + eachchar.ToString();
      break;
   case '0':
      newname = newname + eachchar.ToString();
      break;
   case '1':
      newname = newname + eachchar.ToString();
      break;
   case '2':
      newname = newname + eachchar.ToString();
      break;
   case '3':
      newname = newname + eachchar.ToString();
      break;
   case '4':
      newname = newname + eachchar.ToString();
      break;
   case '5':
      newname = newname + eachchar.ToString();
      break;
   case '6':
      newname = newname + eachchar.ToString();
      break;
   case '7':
      newname = newname + eachchar.ToString();
      break;
   case '8':
      newname = newname + eachchar.ToString();
      break;
   case '9':
      newname = newname + eachchar.ToString();
      break;
   case '.':
      newname = newname + eachchar.ToString();
      break;
}

Re[2]: "Шедевры" программированя
От: Oyster Украина https://github.com/devoyster
Дата: 08.08.06 09:16
Оценка: 1 (1) :))) :)
Здравствуйте, kon_v_palto, Вы писали:

__>Так будет лудше:


Ха!

char[] origChars;
char[] newChars;

switch (eachchar)
{
   case 'a':
      origChars = newname.ToCharArray();
      newChars = new char[origChars.Length + 1];
      origChars.CopyTo(newChars, 0);
      newChars[origChars.Length] = eachchar;
      newname = new string(newChars);
      break;
   case 'b':
      origChars = newname.ToCharArray();
      newChars = new char[origChars.Length + 1];
      origChars.CopyTo(newChars, 0);
      newChars[origChars.Length] = eachchar;
      newname = new string(newChars);
      break;
   case 'c':
      origChars = newname.ToCharArray();
      newChars = new char[origChars.Length + 1];
      origChars.CopyTo(newChars, 0);
      newChars[origChars.Length] = eachchar;
      newname = new string(newChars);
      break;
   case 'd':
      origChars = newname.ToCharArray();
      newChars = new char[origChars.Length + 1];
      origChars.CopyTo(newChars, 0);
      newChars[origChars.Length] = eachchar;
      newname = new string(newChars);
      break;
   case 'e':
      origChars = newname.ToCharArray();
      newChars = new char[origChars.Length + 1];
      origChars.CopyTo(newChars, 0);
      newChars[origChars.Length] = eachchar;
      newname = new string(newChars);
      break;
   case 'f':
      origChars = newname.ToCharArray();
      newChars = new char[origChars.Length + 1];
      origChars.CopyTo(newChars, 0);
      newChars[origChars.Length] = eachchar;
      newname = new string(newChars);
      break;
   case 'g':
      origChars = newname.ToCharArray();
      newChars = new char[origChars.Length + 1];
      origChars.CopyTo(newChars, 0);
      newChars[origChars.Length] = eachchar;
      newname = new string(newChars);
      break;
   case 'h':
      origChars = newname.ToCharArray();
      newChars = new char[origChars.Length + 1];
      origChars.CopyTo(newChars, 0);
      newChars[origChars.Length] = eachchar;
      newname = new string(newChars);
      break;
   case 'i':
      origChars = newname.ToCharArray();
      newChars = new char[origChars.Length + 1];
      origChars.CopyTo(newChars, 0);
      newChars[origChars.Length] = eachchar;
      newname = new string(newChars);
      break;
   case 'j':
      origChars = newname.ToCharArray();
      newChars = new char[origChars.Length + 1];
      origChars.CopyTo(newChars, 0);
      newChars[origChars.Length] = eachchar;
      newname = new string(newChars);
      break;
   case 'k':
      origChars = newname.ToCharArray();
      newChars = new char[origChars.Length + 1];
      origChars.CopyTo(newChars, 0);
      newChars[origChars.Length] = eachchar;
      newname = new string(newChars);
      break;
   case 'l':
      origChars = newname.ToCharArray();
      newChars = new char[origChars.Length + 1];
      origChars.CopyTo(newChars, 0);
      newChars[origChars.Length] = eachchar;
      newname = new string(newChars);
      break;
   case 'm':
      origChars = newname.ToCharArray();
      newChars = new char[origChars.Length + 1];
      origChars.CopyTo(newChars, 0);
      newChars[origChars.Length] = eachchar;
      newname = new string(newChars);
      break;
   case 'n':
      origChars = newname.ToCharArray();
      newChars = new char[origChars.Length + 1];
      origChars.CopyTo(newChars, 0);
      newChars[origChars.Length] = eachchar;
      newname = new string(newChars);
      break;
   case 'o':
      origChars = newname.ToCharArray();
      newChars = new char[origChars.Length + 1];
      origChars.CopyTo(newChars, 0);
      newChars[origChars.Length] = eachchar;
      newname = new string(newChars);
      break;
   case 'p':
      origChars = newname.ToCharArray();
      newChars = new char[origChars.Length + 1];
      origChars.CopyTo(newChars, 0);
      newChars[origChars.Length] = eachchar;
      newname = new string(newChars);
      break;
   case 'q':
      origChars = newname.ToCharArray();
      newChars = new char[origChars.Length + 1];
      origChars.CopyTo(newChars, 0);
      newChars[origChars.Length] = eachchar;
      newname = new string(newChars);
      break;
   case 'r':
      origChars = newname.ToCharArray();
      newChars = new char[origChars.Length + 1];
      origChars.CopyTo(newChars, 0);
      newChars[origChars.Length] = eachchar;
      newname = new string(newChars);
      break;
   case 's':
      origChars = newname.ToCharArray();
      newChars = new char[origChars.Length + 1];
      origChars.CopyTo(newChars, 0);
      newChars[origChars.Length] = eachchar;
      newname = new string(newChars);
      break;
   case 't':
      origChars = newname.ToCharArray();
      newChars = new char[origChars.Length + 1];
      origChars.CopyTo(newChars, 0);
      newChars[origChars.Length] = eachchar;
      newname = new string(newChars);
      break;
   case 'u':
      origChars = newname.ToCharArray();
      newChars = new char[origChars.Length + 1];
      origChars.CopyTo(newChars, 0);
      newChars[origChars.Length] = eachchar;
      newname = new string(newChars);
      break;
   case 'v':
      origChars = newname.ToCharArray();
      newChars = new char[origChars.Length + 1];
      origChars.CopyTo(newChars, 0);
      newChars[origChars.Length] = eachchar;
      newname = new string(newChars);
      break;
   case 'w':
      origChars = newname.ToCharArray();
      newChars = new char[origChars.Length + 1];
      origChars.CopyTo(newChars, 0);
      newChars[origChars.Length] = eachchar;
      newname = new string(newChars);
      break;
   case 'x':
      origChars = newname.ToCharArray();
      newChars = new char[origChars.Length + 1];
      origChars.CopyTo(newChars, 0);
      newChars[origChars.Length] = eachchar;
      newname = new string(newChars);
      break;
   case 'y':
      origChars = newname.ToCharArray();
      newChars = new char[origChars.Length + 1];
      origChars.CopyTo(newChars, 0);
      newChars[origChars.Length] = eachchar;
      newname = new string(newChars);
      break;
   case 'z':
      origChars = newname.ToCharArray();
      newChars = new char[origChars.Length + 1];
      origChars.CopyTo(newChars, 0);
      newChars[origChars.Length] = eachchar;
      newname = new string(newChars);
      break;
   case '0':
      origChars = newname.ToCharArray();
      newChars = new char[origChars.Length + 1];
      origChars.CopyTo(newChars, 0);
      newChars[origChars.Length] = eachchar;
      newname = new string(newChars);
      break;
   case '1':
      origChars = newname.ToCharArray();
      newChars = new char[origChars.Length + 1];
      origChars.CopyTo(newChars, 0);
      newChars[origChars.Length] = eachchar;
      newname = new string(newChars);
      break;
   case '2':
      origChars = newname.ToCharArray();
      newChars = new char[origChars.Length + 1];
      origChars.CopyTo(newChars, 0);
      newChars[origChars.Length] = eachchar;
      newname = new string(newChars);
      break;
   case '3':
      origChars = newname.ToCharArray();
      newChars = new char[origChars.Length + 1];
      origChars.CopyTo(newChars, 0);
      newChars[origChars.Length] = eachchar;
      newname = new string(newChars);
      break;
   case '4':
      origChars = newname.ToCharArray();
      newChars = new char[origChars.Length + 1];
      origChars.CopyTo(newChars, 0);
      newChars[origChars.Length] = eachchar;
      newname = new string(newChars);
      break;
   case '5':
      origChars = newname.ToCharArray();
      newChars = new char[origChars.Length + 1];
      origChars.CopyTo(newChars, 0);
      newChars[origChars.Length] = eachchar;
      newname = new string(newChars);
      break;
   case '6':
      origChars = newname.ToCharArray();
      newChars = new char[origChars.Length + 1];
      origChars.CopyTo(newChars, 0);
      newChars[origChars.Length] = eachchar;
      newname = new string(newChars);
      break;
   case '7':
      origChars = newname.ToCharArray();
      newChars = new char[origChars.Length + 1];
      origChars.CopyTo(newChars, 0);
      newChars[origChars.Length] = eachchar;
      newname = new string(newChars);
      break;
   case '8':
      origChars = newname.ToCharArray();
      newChars = new char[origChars.Length + 1];
      origChars.CopyTo(newChars, 0);
      newChars[origChars.Length] = eachchar;
      newname = new string(newChars);
      break;
   case '9':
      origChars = newname.ToCharArray();
      newChars = new char[origChars.Length + 1];
      origChars.CopyTo(newChars, 0);
      newChars[origChars.Length] = eachchar;
      newname = new string(newChars);
      break;
   case '.':
      origChars = newname.ToCharArray();
      newChars = new char[origChars.Length + 1];
      origChars.CopyTo(newChars, 0);
      newChars[origChars.Length] = eachchar;
      newname = new string(newChars);
      break;
}

Re[2]: "Шедевры" программированя
От: Uzzy Россия  
Дата: 08.08.06 09:16
Оценка:
Здравствуйте, kon_v_palto, Вы писали:

Здравствуйте, Uzzy, Вы писали:

__>Так будет лудше:

__>..
__>

Нет уж... если делать, то делать все до конца:

string tmp = null;
switch (eachchar)
{
   case 'a':
      tmp = eachchar.ToString();
      newname = newname + tmp;
      break;
   case 'b':
      tmp = eachchar.ToString();
      newname = newname + tmp;
      break;
   case 'c':
      tmp = eachchar.ToString();
      newname = newname + tmp;
      break;
   case 'd':
      tmp = eachchar.ToString();
      newname = newname + tmp;
      break;
   case 'e':
      tmp = eachchar.ToString();
      newname = newname + tmp;
      break;
   case 'f':
      tmp = eachchar.ToString();
      newname = newname + tmp;
      break;
   case 'g':
      tmp = eachchar.ToString();
      newname = newname + tmp;
      break;
   case 'h':
      tmp = eachchar.ToString();
      newname = newname + tmp;
      break;
   case 'i':
      tmp = eachchar.ToString();
      newname = newname + tmp;
      break;
   case 'j':
      tmp = eachchar.ToString();
      newname = newname + tmp;
      break;
   case 'k':
      tmp = eachchar.ToString();
      newname = newname + tmp;
      break;
   case 'l':
      tmp = eachchar.ToString();
      newname = newname + tmp;
      break;
   case 'm':
      tmp = eachchar.ToString();
      newname = newname + tmp;
      break;
   case 'n':
      tmp = eachchar.ToString();
      newname = newname + tmp;
      break;
   case 'o':
      tmp = eachchar.ToString();
      newname = newname + tmp;
      break;
   case 'p':
      tmp = eachchar.ToString();
      newname = newname + tmp;
      break;
   case 'q':
      tmp = eachchar.ToString();
      newname = newname + tmp;
      break;
   case 'r':
      tmp = eachchar.ToString();
      newname = newname + tmp;
      break;
   case 's':
      tmp = eachchar.ToString();
      newname = newname + tmp;
      break;
   case 't':
      tmp = eachchar.ToString();
      newname = newname + tmp;
      break;
   case 'u':
      tmp = eachchar.ToString();
      newname = newname + tmp;
      break;
   case 'v':
      tmp = eachchar.ToString();
      newname = newname + tmp;
      break;
   case 'w':
      tmp = eachchar.ToString();
      newname = newname + tmp;
      break;
   case 'x':
      tmp = eachchar.ToString();
      newname = newname + tmp;
      break;
   case 'y':
      tmp = eachchar.ToString();
      newname = newname + tmp;
      break;
   case 'z':
      tmp = eachchar.ToString();
      newname = newname + tmp;
      break;
   case '0':
      tmp = eachchar.ToString();
      newname = newname + tmp;
      break;
   case '1':
      tmp = eachchar.ToString();
      newname = newname + tmp;
      break;
   case '2':
      tmp = eachchar.ToString();
      newname = newname + tmp;
      break;
   case '3':
      tmp = eachchar.ToString();
      newname = newname + tmp;
      break;
   case '4':
      tmp = eachchar.ToString();
      newname = newname + tmp;
      break;
   case '5':
      tmp = eachchar.ToString();
      newname = newname + tmp;
      break;
   case '6':
      tmp = eachchar.ToString();
      newname = newname + tmp;
      break;
   case '7':
      tmp = eachchar.ToString();
      newname = newname + tmp;
      break;
   case '8':
      tmp = eachchar.ToString();
      newname = newname + tmp;
      break;
   case '9':
      tmp = eachchar.ToString();
      newname = newname + tmp;
      break;
   case '.':
      tmp = eachchar.ToString();
      newname = newname + tmp;
      break;
   default:
      tmp = string.Empty;
      newname = newname + tmp;
      break;
}
Re[3]: "Шедевры" программированя
От: Cypress  
Дата: 08.08.06 09:41
Оценка:
Здравствуйте, Oyster, Вы писали:

O>Здравствуйте, kon_v_palto, Вы писали:


__>>Так будет лудше:


O>Ха!


O>[skipped]


Синтаксический оверхед, панимаешь!
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re: "Шедевры" программированя
От: Silent_Sky Россия http://www.rsdn.ru/tools/member.aspx?id=
Дата: 08.08.06 09:48
Оценка: 1 (1) :)
Здравствуйте, Uzzy, Вы писали:

U>Есть у нас один проектик, так вот прогеры оставили богатое духовное наследие.

U>
U>public static bool IsInteger(object value)
U>{
U>}
U>



т.е. отрицательное число — это не Integer а пустая строка — Integer?
Когда-нибудь и я буду много знать, но пока это не грозит...
ICQ #134433
Re[2]: "Шедевры" программированя
От: Ael США  
Дата: 08.08.06 10:02
Оценка:
Здравствуйте, Silent_Sky, Вы писали:

S_S>Здравствуйте, Uzzy, Вы писали:


U>>Есть у нас один проектик, так вот прогеры оставили богатое духовное наследие.

U>>
U>>public static bool IsInteger(object value)
U>>{
U>>}
U>>



S_S>т.е. отрицательное число — это не Integer а пустая строка — Integer?


А отрицательные числа и возможность разбора пустых срок будут enhancements-ами следующей версии, не все ж сразу заказчику давать
Re[2]: "Шедевры" программированя
От: KBH  
Дата: 08.08.06 10:27
Оценка:
Здравствуйте, Silent_Sky, Вы писали:

S_S>т.е. отрицательное число — это не Integer а пустая строка — Integer?


Не пустая, а "-".
Re: "Шедевры" программированя
От: Аноним  
Дата: 08.08.06 11:07
Оценка: :)
Здравствуйте, Uzzy, Вы писали:

U>Есть у нас один проектик, так вот прогеры оставили богатое духовное наследие.




Да уж, круто

У нас тоже есть примеры чудо прогаммерской мысли (тихий ужас )

public bool IsInputStringValide(string input)
{
   if (input == null)
       return false;
         
   Regex validateRegex = RegularsTable[RegularExps.InputStringValidate];

   if (validateRegex.IsMatch(input).ToString().ToUpper() == "TRUE")
       return true;
   else
     return false;
}
Re[2]: "Шедевры" программированя
От: Uzzy Россия  
Дата: 08.08.06 11:09
Оценка:
Здравствуйте, Silent_Sky, Вы писали:

S_S>т.е. отрицательное число — это не Integer а пустая строка — Integer?

мало того:
public class MuLine
{
   private int _length = -1;
   public MyLine(int length)
   {
      _length = length;
   }
   public override string ToString()
   {
      return _length.ToString();
   }
}


докажи, что не инт
Re[2]: "Шедевры" программированя
От: Аноним  
Дата: 08.08.06 11:30
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, Uzzy, Вы писали:


U>>Есть у нас один проектик, так вот прогеры оставили богатое духовное наследие.


А>


А>Да уж, круто


А>У нас тоже есть примеры чудо прогаммерской мысли (тихий ужас )


А>
А>public bool IsInputStringValide(string input)
А>{
А>   if (input == null)
А>       return false;
         
А>   Regex validateRegex = RegularsTable[RegularExps.InputStringValidate];

А>   if (validateRegex.IsMatch(input).ToString().ToUpper() == "TRUE")
А>       return true;
А>   else
А>     return false;
А>}
А>


Вот повозился здесь немного с поиском http://rsdn.ru/search/?q=%22ToLower%28%29+%3D%3D+true%22&amp;mode=rank&amp;group=N

и нашел, что писавший такой код не одинок в мире

http://rsdn.ru/Forum/?mid=459148

        protected override object LoadPageStateFromPersistenceMedium() {
            if (Enable.ToLower()=="true") return LoadViewState();
            else return base.LoadPageStateFromPersistenceMedium();
        }

        protected override void SavePageStateToPersistenceMedium(object viewState) {
            if (Enable.ToLower()=="true") SaveViewState(viewState);
            else base.SavePageStateToPersistenceMedium(viewState);
        }


Второй с таким же примером
http://rsdn.ru/Forum/?mid=1787264
Re[3]: "Шедевры" программированя
От: Аноним  
Дата: 08.08.06 12:41
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Вот повозился здесь немного с поиском http://rsdn.ru/search/?q=%22ToLower%28%29+%3D%3D+true%22&amp;mode=rank&amp;group=N


А>и нашел, что писавший такой код не одинок в мире


А>http://rsdn.ru/Forum/?mid=459148


А>
А>        protected override object LoadPageStateFromPersistenceMedium() {
А>            if (Enable.ToLower()=="true") return LoadViewState();
А>            else return base.LoadPageStateFromPersistenceMedium();
А>        }

А>        protected override void SavePageStateToPersistenceMedium(object viewState) {
А>            if (Enable.ToLower()=="true") SaveViewState(viewState);
А>            else base.SavePageStateToPersistenceMedium(viewState);
А>        }
А>


А>Второй с таким же примером

А>http://rsdn.ru/Forum/?mid=1787264

А что тут смешного? Может человеку больше импонирует как подсвечивается строковые константы чем булевы %)
Re[4]: "Шедевры" программированя
От: Аноним  
Дата: 08.08.06 13:00
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, Аноним, Вы писали:


А>А что тут смешного? Может человеку больше импонирует как подсвечивается строковые константы чем булевы %)


В первом примере, достаточно было вернуть результат работы выражения, а не старательно замусоривать код лишними проверками, да еще и с переводом в литерал


public bool IsInputStringValide(string input)
{
   if (input == null)
       return false;
         
   Regex validateRegex = RegularsTable[RegularExps.InputStringValidate];
   
   return validateRegex.IsMatch(input);

//   if (validateRegex.IsMatch(input).ToString().ToUpper() == "TRUE")
//       return true;
//   else
//     return false;
}


Во втором примере без всего этого мусора тоже можно обойтись

protected override object LoadPageStateFromPersistenceMedium() {
  
    if (Enabled)
        LoadViewState();

    base.LoadPageStateFromPersistenceMedium();
}


А вообще, ну их нафиг
Re: "Шедевры" программированя
От: trophim Россия  
Дата: 09.08.06 20:35
Оценка:
Рекомендую всем покурить http://www.thedailywtf.com/rss.aspx
На ентом сайте такого добра — завались просто. Бывает просто забавно, а бывает из под стула еле вылезаю. Так что поосторожней.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Let it be! — Давайте есть пчелу!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.