1. C++ / Говнокод #7904

    +162

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    for (DWORD CurItem=0; CurItem<dwNumItems; CurItem++)
    	{
    		switch (CurItem) 
    
    		{
    		case 0:
    			description.LoadString(IDS_OPC_PROP_CDT);	
    			pPropertyIDs[CurItem]	=	OPC_PROP_CDT;
    			pDescriptions[CurItem]	=	OpcStrDup(description);
    			pDataTypes[CurItem]		=	VT_I2;
    			break;
    		case 1:
    			description.LoadString(IDS_OPC_PROP_VALUE);	
    			pPropertyIDs[CurItem]	=	OPC_PROP_VALUE;
    			pDescriptions[CurItem]	=	OpcStrDup(description);
    			pDataTypes[CurItem]		=	pDATag->m_value.vt;
    			break;
    		case 2:
    			description.LoadString(IDS_OPC_PROP_QUALITY);	//Item Quality
    			pPropertyIDs[CurItem]	=	OPC_PROP_QUALITY;
    			pDescriptions[CurItem]	=	OpcStrDup(description);
    			pDataTypes[CurItem]		=	VT_I2;
    			break;
    		case 3:
    			description.LoadString(IDS_OPC_PROP_TIME);		//Item Timestamp
    			pPropertyIDs[CurItem]	=	OPC_PROP_TIME;
    			pDescriptions[CurItem]	=	OpcStrDup(description);
    			pDataTypes[CurItem]		=	VT_DATE;
    			break;
    		case 4:
    			description.LoadString(IDS_OPC_PROP_RIGHTS);	//Item Access Rights
    			pPropertyIDs[CurItem]	=	OPC_PROP_RIGHTS;
    			pDescriptions[CurItem]	=	OpcStrDup (description);
    			pDataTypes[CurItem]		=	VT_I4;
    			break;
    		case 5:
    			description.LoadString(IDS_OPC_PROP_DESC);		//Item Description
    			pPropertyIDs[CurItem]	=	OPC_PROP_DESC;
    			pDescriptions[CurItem]	=	OpcStrDup(description);
    			pDataTypes[CurItem]		=	VT_BSTR;
    			break;
    		case 6:
    			description.LoadString(IDS_OPC_PROP_SCANRATE);		//Item ScanRate
    			pPropertyIDs[CurItem]	=	OPC_PROP_SCANRATE;
    			pDescriptions[CurItem]	=	OpcStrDup(description);
    			pDataTypes[CurItem]		=	VT_R4;
    			break;
    		/////////////////////////////////////////////////////////////////////////
    		
    		}
    	}

    Запостил: azote, 20 Сентября 2011

    Комментарии (6) RSS

    • видимо, инициализировать массивы по-другому не умеют:(
      и если не умеют, имхо даже написать
      description.LoadString(IDS_OPC_PROP_CDT) ;
      pPropertyIDs[0] = OPC_PROP_CDT;
      pDescriptions[0] = OpcStrDup(description);
      pDataTypes[0] = VT_I2;
      description.LoadString(IDS_OPC_PROP_VALU E);
      pPropertyIDs[1] = OPC_PROP_VALUE;
      ...
      будет лучше, ибо это нагляднее.
      Ответить
      • лучше каждый элемент из этих трех массивов засунуть в одну структуру и для этой структуры объявить если уж не конструктор, то хотя бы метод init, куда передавать три параметра
        получится
        mydata[0].init(IDS_OPC_PROP_CDT, OPC_PROP_CDT, VT_I2);
        mydata[1].init(IDS_OPC_PROP_VALUE, OPC_PROP_VALUE, pDATag->m_value.vt);
        //....
        Ответить
        • конечно лучше:)
          но ведь не умеют!
          Ответить
    • OPC это как в "Open Process Control" и "OPS Server"? заранее выражаю свои соболезнования.
      Ответить
    • показать все, что скрытоvanished
      Ответить
    • - Японский бог! 11 утра! Работа! Вот, бля, молодец... - это я уже метался по квартире в поисках мобильного.
      Ответить

    Добавить комментарий