- 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
public static string ResultToString(long Result)
{
switch (Result)
{
case TRANS2QUIK_SUCCESS: //0
return "TRANS2QUIK_SUCCESS";
break;
case TRANS2QUIK_FAILED: //1
return "TRANS2QUIK_FAILED";
break;
case TRANS2QUIK_QUIK_TERMINAL_NOT_FOUND: //2
return "TRANS2QUIK_QUIK_TERMINAL_NOT_FOUND";
break;
case TRANS2QUIK_DLL_VERSION_NOT_SUPPORTED: //3
return "TRANS2QUIK_DLL_VERSION_NOT_SUPPORTED";
break;
case TRANS2QUIK_ALREADY_CONNECTED_TO_QUIK: //4
return "TRANS2QUIK_ALREADY_CONNECTED_TO_QUIK";
break;
case TRANS2QUIK_WRONG_SYNTAX: //5
return "TRANS2QUIK_WRONG_SYNTAX";
break;
case TRANS2QUIK_QUIK_NOT_CONNECTED: //6
return "TRANS2QUIK_QUIK_NOT_CONNECTED";
break;
case TRANS2QUIK_DLL_NOT_CONNECTED: //7
return "TRANS2QUIK_DLL_NOT_CONNECTED";
break;
case TRANS2QUIK_QUIK_CONNECTED: //8
return "TRANS2QUIK_QUIK_CONNECTED";
break;
case TRANS2QUIK_QUIK_DISCONNECTED: //9
return "TRANS2QUIK_QUIK_DISCONNECTED";
break;
case TRANS2QUIK_DLL_CONNECTED: //10
return "TRANS2QUIK_DLL_CONNECTED";
break;
case TRANS2QUIK_DLL_DISCONNECTED: //11
return "TRANS2QUIK_DLL_DISCONNECTED";
break;
case TRANS2QUIK_MEMORY_ALLOCATION_ERROR: //12
return "TRANS2QUIK_MEMORY_ALLOCATION_ERROR";
break;
case TRANS2QUIK_WRONG_CONNECTION_HANDLE: //13
return "TRANS2QUIK_WRONG_CONNECTION_HANDLE";
break;
case TRANS2QUIK_WRONG_INPUT_PARAMS: //14
return "TRANS2QUIK_WRONG_INPUT_PARAMS";
break;
default:
return "UNKNOWN_VALUE";
break;
}
}
public static string ByteToString(byte[] Str)
{
string s="";
for (int i = 0; i < Str.Length; i++)
{
s = s + Str[i].ToString();
}
return s;
}
Лежит в качестве примера на одном из сайтов.
Ну автору всё равно спасибо, пример и правда полезный (да и код прикольный :)).
mosk 23.10.2009 11:54 # 0
greeny 23.10.2009 12:03 # 0
greeny 23.10.2009 12:08 # 0
guest 23.10.2009 14:52 # 0
Barmaglot 23.10.2009 15:53 # 0
Практически все вызовы switch в языках программирования высокого уровня от лени или неумения. Заменять их следует вызовом метода объекта или извлечением поля из структуры.
guest 24.10.2009 12:12 # +1
Barmaglot 24.10.2009 16:48 # 0
struct TNamedConstsnt
{
const long Value;
const char* const Name;
TNamedConstsnt(const long value, const char* const name) :
Value(value), Name(name)
{}
};
Затем создаем константы и запихиваем их в контейнер, например так
new TNamedConstsnt(5, "TRANS2QUIK_DLL_VERSION_NOT_SUPPORTE D");
Функция, описанная автором, вырождается в проход по контейнеру в поисках соответствия.
Это если изобретать велосипед. А вообще есть реализованные контейнеры для пар ключ-значение, которые ко всему прочему еще проверяют уникальность ключа.
guest 16.12.2009 16:42 # 0
Да ну?
К твоему сведению switch в .Net, например, при компиляции сразу преобразуется в методы и в очень многих случаях предоставляет возможность писать простой, очевидный и очень быстрый код.
guest 23.10.2009 17:05 # +3
Там вообще-то еще операторы break не выполняются. :)
guest 24.10.2009 21:32 # 0
guest 23.10.2009 16:34 # +1
Tonnelll 18.11.2009 21:20 # 0
там по строке вызываеться функции, можно конечно отправлять функцию в своюже программу, но это медлее будет
external <адрес dll(exe )> name <насвание процедуры>