X1 Referenzhandbuch XOn Software GmbH 2002 X1 Referenzhandbuch Beschreibung der CX1- Laufzeitbibliothek Das Handbuch beschreibt alle Funktionen und Klassen der CX1Laufzeitbibliothek Inhaltsverzeichnis I Inhaltsverzeichnis Kapitel I Programmierreferenz 1 1 Laufzeitbibliothek ................................................................................................................................... 1 Datei-Funktionen ......................................................................................................................................................... _filelength .................................................................................................................................................. _fileno .................................................................................................................................................. _fullpath .................................................................................................................................................. _getw .................................................................................................................................................. _makepath.................................................................................................................................................. _splitpath .................................................................................................................................................. fclose .................................................................................................................................................. fdopen .................................................................................................................................................. feof .................................................................................................................................................. ferror .................................................................................................................................................. fflush .................................................................................................................................................. fgetc .................................................................................................................................................. fgetpos .................................................................................................................................................. fgets .................................................................................................................................................. fopen .................................................................................................................................................. fprintf .................................................................................................................................................. fputc .................................................................................................................................................. fputs .................................................................................................................................................. fread .................................................................................................................................................. fscanf .................................................................................................................................................. fseek .................................................................................................................................................. ftell .................................................................................................................................................. getc .................................................................................................................................................. putc .................................................................................................................................................. rewind .................................................................................................................................................. Mathematische ......................................................................................................................................................... funktionen Mathematifunktionen .................................................................................................................................................. acos ........................................................................................................................................... asin ........................................................................................................................................... atan ........................................................................................................................................... atan2 ........................................................................................................................................... ceil ........................................................................................................................................... cos ........................................................................................................................................... cosh ........................................................................................................................................... exp ........................................................................................................................................... fabs ........................................................................................................................................... floor ........................................................................................................................................... log ........................................................................................................................................... log10 ........................................................................................................................................... pow ........................................................................................................................................... ran1 ........................................................................................................................................... rand ........................................................................................................................................... sin ........................................................................................................................................... sinh ........................................................................................................................................... sqrt ........................................................................................................................................... © XOn Siftware GmbH, 2008 1 1 2 2 2 3 3 4 4 5 5 5 6 6 6 6 7 7 8 8 8 9 10 10 10 11 11 11 11 12 12 12 12 12 13 13 13 13 13 14 14 14 14 14 15 15 II Referenzhandbuch srand ........................................................................................................................................... tan ........................................................................................................................................... tanh ........................................................................................................................................... Erweiterte.................................................................................................................................................. Mathematikfunktionen _cabs ........................................................................................................................................... _hypot ........................................................................................................................................... _logb ........................................................................................................................................... Bessel-Funktionen ........................................................................................................................................... beta ........................................................................................................................................... betai ........................................................................................................................................... binom ........................................................................................................................................... chi2_p ........................................................................................................................................... chi2_q ........................................................................................................................................... erf ........................................................................................................................................... erfc ........................................................................................................................................... f_distr ........................................................................................................................................... frexp ........................................................................................................................................... gammp ........................................................................................................................................... gammq ........................................................................................................................................... gasdev ........................................................................................................................................... modf ........................................................................................................................................... poisson ........................................................................................................................................... student ........................................................................................................................................... String-Manipulation ......................................................................................................................................................... _strnicmp.................................................................................................................................................. _strnset .................................................................................................................................................. _strrev .................................................................................................................................................. _strset .................................................................................................................................................. _strupr .................................................................................................................................................. atoi .................................................................................................................................................. atol .................................................................................................................................................. atof .................................................................................................................................................. sprintf .................................................................................................................................................. sscanf .................................................................................................................................................. strcat .................................................................................................................................................. strchr .................................................................................................................................................. strcmp .................................................................................................................................................. strcoll .................................................................................................................................................. strcpy .................................................................................................................................................. strcspn .................................................................................................................................................. strerror .................................................................................................................................................. stricmp .................................................................................................................................................. strlen .................................................................................................................................................. strlwr .................................................................................................................................................. strncat .................................................................................................................................................. strncmp .................................................................................................................................................. strncpy .................................................................................................................................................. strpbrk .................................................................................................................................................. strrchr .................................................................................................................................................. strspn .................................................................................................................................................. strstr .................................................................................................................................................. strtok .................................................................................................................................................. strtol .................................................................................................................................................. strxfrm .................................................................................................................................................. Datenpoolfunktionen ......................................................................................................................................................... © XOn Siftware GmbH, 2008 15 15 15 16 16 17 17 17 18 18 19 19 19 19 20 20 20 20 21 21 21 21 22 22 23 23 23 23 24 24 24 25 25 29 31 31 32 32 32 33 33 33 33 34 34 34 34 35 35 35 36 36 36 37 37 Inhaltsverzeichnis CopyToPool .................................................................................................................................................. GetPoolDia .................................................................................................................................................. GetPoolIndex .................................................................................................................................................. GetPoolMDT .................................................................................................................................................. GetPoolMF8 .................................................................................................................................................. GetPoolMI4 .................................................................................................................................................. GetPoolMSTR .................................................................................................................................................. GetPoolName .................................................................................................................................................. GetPoolODBC .................................................................................................................................................. GetPoolSize .................................................................................................................................................. GetPoolText .................................................................................................................................................. GetPoolType .................................................................................................................................................. GetPoolVDT .................................................................................................................................................. GetPoolVF8 .................................................................................................................................................. GetPoolVI4 .................................................................................................................................................. GetPoolVSTR .................................................................................................................................................. RemoveFromPool .................................................................................................................................................. SetPoolName .................................................................................................................................................. Speichermanagement ......................................................................................................................................................... GlobalAlloc .................................................................................................................................................. GlobalFree .................................................................................................................................................. GlobalLock .................................................................................................................................................. GlobalUnlock .................................................................................................................................................. malloc .................................................................................................................................................. free .................................................................................................................................................. Datum und ......................................................................................................................................................... Uhrzeit _strdate .................................................................................................................................................. _strtime .................................................................................................................................................. difftime .................................................................................................................................................. KillTimer .................................................................................................................................................. mktime .................................................................................................................................................. SetTime .................................................................................................................................................. strftime .................................................................................................................................................. time .................................................................................................................................................. Sonstige ......................................................................................................................................................... Funktionen FileDialog.................................................................................................................................................. Invalidate.................................................................................................................................................. MessageBox .................................................................................................................................................. Print .................................................................................................................................................. SetFH .................................................................................................................................................. GetRValue .................................................................................................................................................. GetGValue .................................................................................................................................................. GetBValue .................................................................................................................................................. RGB .................................................................................................................................................. Verzeichnisfunktionen ......................................................................................................................................................... _chdir .................................................................................................................................................. _getcwd .................................................................................................................................................. _getdcwd.................................................................................................................................................. _mkdir .................................................................................................................................................. _rmdir .................................................................................................................................................. _searchenv .................................................................................................................................................. III 38 38 39 39 40 40 41 42 42 42 43 43 44 44 45 46 46 46 47 47 48 48 48 49 49 49 49 50 50 50 50 51 51 52 52 52 53 53 54 54 54 55 55 55 55 56 56 56 57 57 57 2 Klassenebibliothek ................................................................................................................................... 58 Klassenhierarchie ......................................................................................................................................................... Allgemeine ......................................................................................................................................................... Klassen CObject .................................................................................................................................................. © XOn Siftware GmbH, 2008 58 59 59 IV Referenzhandbuch CObject::GetClassName ........................................................................................................................................... CNamedObj .................................................................................................................................................. CNamedObj::Copy ........................................................................................................................................... CNamedObj::Edit ........................................................................................................................................... CNamedObj::GetName ........................................................................................................................................... CNamedObj::SetName ........................................................................................................................................... CColorMap .................................................................................................................................................. CColorMap::Add ........................................................................................................................................... CColorMap::CColorMap ........................................................................................................................................... CColorMap::GetColor ........................................................................................................................................... CColorMap::GetNr ........................................................................................................................................... CColorMap::GetVal ........................................................................................................................................... CColorMap::Reset ........................................................................................................................................... CColorMap::Sort ........................................................................................................................................... CGLMaterial .................................................................................................................................................. CGLMaterial::Reset ........................................................................................................................................... CGLMaterial::SetAmbient ........................................................................................................................................... CGLMaterial::SetDiffuse ........................................................................................................................................... CGLMaterial::SetSpecular ........................................................................................................................................... CGLMaterial::SetEmission ........................................................................................................................................... CGLMaterial::SetShininess ........................................................................................................................................... CGLMaterial::SetAlpha ........................................................................................................................................... CGrafDoc.................................................................................................................................................. CGrafDoc::AddPage ........................................................................................................................................... CGrafDoc::DelPage ........................................................................................................................................... CGrafDoc::EmptyTrash ........................................................................................................................................... CGrafDoc::GetDocAtt ........................................................................................................................................... CGrafDoc::GetNrPages ........................................................................................................................................... CGrafDoc::GetPage ........................................................................................................................................... CGrafDoc::GetPageNr ........................................................................................................................................... CGrafDoc::GetRoot ........................................................................................................................................... CGrafDoc::Invalidate ........................................................................................................................................... CGrafDoc::MoveFirst ........................................................................................................................................... CGrafDoc::MoveLast ........................................................................................................................................... CGrafDoc::MovePage ........................................................................................................................................... CGrafDoc::Print ........................................................................................................................................... CGrafDoc::SetDocAtt ........................................................................................................................................... CGrafDoc::SetFH ........................................................................................................................................... CDBVariant .................................................................................................................................................. CDBVariant ........................................................................................................................................... class members Member Functions ........................................................................................................................................... CDBVariant::CDBVariant ...................................................................................................................................... CDBVariant::Clear ...................................................................................................................................... CDBVariant::GetBinaryData ...................................................................................................................................... CDBVariant::GetBinarySize ...................................................................................................................................... CDBVariant::GetString ...................................................................................................................................... Data Members ........................................................................................................................................... CDBVariant::m_boolVal ...................................................................................................................................... CDBVariant::m_chVal ...................................................................................................................................... CDBVariant::m_dblVal ...................................................................................................................................... CDBVariant::m_dwType ...................................................................................................................................... CDBVariant::m_fltVal ...................................................................................................................................... CDBVariant::m_iVal ...................................................................................................................................... CDBVariant::m_lVal ...................................................................................................................................... CDBVariant::m_pbinary ...................................................................................................................................... © XOn Siftware GmbH, 2008 59 59 59 60 60 60 60 60 61 61 61 61 62 62 62 62 62 63 63 63 63 63 64 64 64 65 65 66 66 66 66 67 67 67 68 68 68 69 70 70 70 70 71 71 71 72 72 72 72 73 73 73 74 74 74 Inhaltsverzeichnis CDBVariant::m_pdate ...................................................................................................................................... CDBVariant::m_pstring ...................................................................................................................................... CDatabase .................................................................................................................................................. CDatabase ........................................................................................................................................... Class Members Member Functions ........................................................................................................................................... CDatabase::BeginTrans ...................................................................................................................................... CDatabase::Cancel ...................................................................................................................................... CDatabase::CanTransact ...................................................................................................................................... CDatabase::CanUpdate ...................................................................................................................................... CDatabase::CDatabase ...................................................................................................................................... CDatabase::Close ...................................................................................................................................... CDatabase::CommitTrans ...................................................................................................................................... CDatabase::ExecuteSQL ...................................................................................................................................... CDatabase::GetBookmarkPersistence ...................................................................................................................................... CDatabase::GetConnect ...................................................................................................................................... CDatabase::GetCursorCommitBehavior ...................................................................................................................................... CDatabase::GetCursorRollbackBehavior ...................................................................................................................................... CDatabase::GetDatabaseName ...................................................................................................................................... CDatabase::IsOpen ...................................................................................................................................... CDatabase::OnSetOptions ...................................................................................................................................... CDatabase::Open ...................................................................................................................................... CDatabase::OpenEx ...................................................................................................................................... CDatabase::Rollback ...................................................................................................................................... CDatabase::SetLoginTimeout ...................................................................................................................................... CDatabase::SetQueryTimeout ...................................................................................................................................... Data Members ........................................................................................................................................... CDatabase::m_hdbc ...................................................................................................................................... CRecordset .................................................................................................................................................. CRecordset ........................................................................................................................................... Class Members Member Functions ........................................................................................................................................... CRecordset::CanBookmark ...................................................................................................................................... CRecordset::Cancel ...................................................................................................................................... CRecordset::CanRestart ...................................................................................................................................... CRecordset::CanScroll ...................................................................................................................................... CRecordset::CanTransact ...................................................................................................................................... CRecordset::Check ...................................................................................................................................... CRecordset::CheckRowsetError ...................................................................................................................................... CRecordset::Close ...................................................................................................................................... CRecordset::CRecordset ...................................................................................................................................... CRecordset::FlushResultSet ...................................................................................................................................... CRecordset::GetBookmark ...................................................................................................................................... CRecordset::GetDefaultConnect ...................................................................................................................................... CRecordset::GetDefaultSQL ...................................................................................................................................... CRecordset::GetFieldValue ...................................................................................................................................... CRecordset::GetODBCFieldCount ...................................................................................................................................... CRecordset::GetODBCFieldInfo ...................................................................................................................................... CRecordset::GetRecordCount ...................................................................................................................................... CRecordset::GetRowsetSize ...................................................................................................................................... CRecordset::GetRowsFetched ...................................................................................................................................... CRecordset::GetRowStatus ...................................................................................................................................... CRecordset::GetStatus ...................................................................................................................................... CRecordset::GetSQL ...................................................................................................................................... CRecordset::GetTableName ...................................................................................................................................... CRecordset::IsBOF ...................................................................................................................................... CRecordset::IsDeleted ...................................................................................................................................... © XOn Siftware GmbH, 2008 V 74 75 75 75 76 76 77 77 77 78 78 79 79 79 80 80 80 81 81 82 82 83 84 85 85 85 85 86 86 89 89 89 90 90 90 90 91 92 92 93 93 94 94 95 97 97 97 98 98 99 99 100 100 101 101 VI Referenzhandbuch CRecordset::IsEOF ...................................................................................................................................... CRecordset::IsFieldDirty ...................................................................................................................................... CRecordset::IsFieldNull ...................................................................................................................................... CRecordset::IsOpen ...................................................................................................................................... CRecordset::Move ...................................................................................................................................... CRecordset::MoveFirst ...................................................................................................................................... CRecordset::MoveLast ...................................................................................................................................... CRecordset::MoveNext ...................................................................................................................................... CRecordset::MovePrev ...................................................................................................................................... CRecordset::OnSetOptions ...................................................................................................................................... CRecordset::Open ...................................................................................................................................... CRecordset::RefreshRowset ...................................................................................................................................... CRecordset::Requery ...................................................................................................................................... CRecordset::SetAbsolutePosition ...................................................................................................................................... CRecordset::SetBookmark ...................................................................................................................................... CRecordset::SetLockingMode ...................................................................................................................................... CRecordset::SetRowsetCursorPosition ...................................................................................................................................... Data Members ........................................................................................................................................... CRecordset::m_hstmt ...................................................................................................................................... CRecordset::m_nFields ...................................................................................................................................... CRecordset::m_nParams ...................................................................................................................................... CRecordset::m_pDatabase ...................................................................................................................................... Grafkelemente ......................................................................................................................................................... CAxisNode .................................................................................................................................................. CAxisNode::AddTick ........................................................................................................................................... CAxisNode::EmptyTicks ........................................................................................................................................... CAxisNode::GetNodeAtt ........................................................................................................................................... CAxisNode::SetNodeAtt ........................................................................................................................................... CBar2DNode .................................................................................................................................................. CBar2DNode::AddBar ........................................................................................................................................... CBar2DNode::AddLayer ........................................................................................................................................... CBar2DNode::GetNodeAtt ........................................................................................................................................... CBar2DNode::SetData ........................................................................................................................................... CBar2DNode::SetNodeAtt ........................................................................................................................................... CContourNode .................................................................................................................................................. CContourNode::GetNodeAtt ........................................................................................................................................... CContourNode::SetData ........................................................................................................................................... CContourNode::SetNodeAtt ........................................................................................................................................... CContourNode::SetNodeData ........................................................................................................................................... CDibNode .................................................................................................................................................. CGraf2DNode .................................................................................................................................................. CGraf2DNode::AddTrace ........................................................................................................................................... CGraf2DNode::DelTrace ........................................................................................................................................... CGraf2DNode::GetNodeAtt ........................................................................................................................................... CGraf2DNode::GetTrace ........................................................................................................................................... CGraf2DNode::GetTraceIndex ........................................................................................................................................... CGraf2DNode::SetNodeAtt ........................................................................................................................................... CGraf2DNode::SetTraceData ........................................................................................................................................... CGraf3DNode .................................................................................................................................................. CGraf3DNode::GetNodeAtt ........................................................................................................................................... CGraf3DNode::SetData ........................................................................................................................................... CGraf3DNode::SetNodeAtt ........................................................................................................................................... CGraf3DNode::SetNodeData ........................................................................................................................................... CGrafNode .................................................................................................................................................. CGrafNode::AddNode ........................................................................................................................................... © XOn Siftware GmbH, 2008 102 102 103 103 104 105 105 106 106 106 107 110 110 111 112 112 113 114 114 114 114 115 115 116 117 117 118 118 121 121 122 123 123 124 126 126 127 128 130 132 132 133 134 134 135 135 136 137 140 140 141 142 144 146 147 Inhaltsverzeichnis CGrafNode::Clear ........................................................................................................................................... CGrafNode::DelNode ........................................................................................................................................... CGrafNode::GetDocument ........................................................................................................................................... CGrafNode::GetNodeAtt ........................................................................................................................................... CGrafNode::GetPos ........................................................................................................................................... CGrafNode::GetSize ........................................................................................................................................... CGrafNode::GetSubAxis ........................................................................................................................................... CGrafNode::GetSubLeg ........................................................................................................................................... CGrafNode::GetSubNode ........................................................................................................................................... CGrafNode::GetSubPie ........................................................................................................................................... CGrafNode::GetSubPlane ........................................................................................................................................... CGrafNode::GetSubSzene ........................................................................................................................................... CGrafNode::GetSubText ........................................................................................................................................... CGrafNode::GetSubTransform1D ........................................................................................................................................... CGrafNode::GetSubTransform2D ........................................................................................................................................... CGrafNode::OnEditBackground ........................................................................................................................................... CGrafNode::OnEditColor ........................................................................................................................................... CGrafNode::OnEditData ........................................................................................................................................... CGrafNode::OnEditFont ........................................................................................................................................... CGrafNode::OnEditName ........................................................................................................................................... CGrafNode::OnEditPen ........................................................................................................................................... CGrafNode::SetAbsPos ........................................................................................................................................... CGrafNode::SetNodeAtt ........................................................................................................................................... CGrafNode::SetPos ........................................................................................................................................... CGrafNode::SetSize ........................................................................................................................................... CPie2DNode .................................................................................................................................................. CPie2DNode::AddPie ........................................................................................................................................... CPie2DNode::DelPie ........................................................................................................................................... CPie2DNode::GetNodeAtt ........................................................................................................................................... CPie2DNode::SetData ........................................................................................................................................... CPie2DNode::SetNodeAtt ........................................................................................................................................... CPlaneNode .................................................................................................................................................. CPlaneNode::GetNodeAtt ........................................................................................................................................... CPlaneNode::SetNodeAtt ........................................................................................................................................... CRectNode .................................................................................................................................................. CRectNode::GetNodeAtt ........................................................................................................................................... CRectNode::SetNodeAtt ........................................................................................................................................... CSzene.................................................................................................................................................. CSzene::GetNodeAtt ........................................................................................................................................... CSzene::SetNodeAtt ........................................................................................................................................... CTabNode .................................................................................................................................................. CTabNode::GetData ........................................................................................................................................... CTabNode::GetNodeAtt ........................................................................................................................................... CTabNode::SetData ........................................................................................................................................... CTabNode::SetNodeAtt ........................................................................................................................................... CTextNode .................................................................................................................................................. CTextNode::Add ........................................................................................................................................... CTextNode::AddTime ........................................................................................................................................... CTextNode::AddDate ........................................................................................................................................... CTextNode::GetNodeAtt ........................................................................................................................................... CTextNode::SetNodeAtt ........................................................................................................................................... CTextNode::SetText ........................................................................................................................................... CTransform1D .................................................................................................................................................. CTransform1D::GetNodeAtt ........................................................................................................................................... CTransform1D::GetPhys ........................................................................................................................................... © XOn Siftware GmbH, 2008 VII 148 148 148 148 151 151 151 152 152 153 153 154 154 154 155 155 156 156 156 156 156 157 157 162 162 162 163 163 164 164 165 166 167 168 169 170 170 172 172 173 175 176 176 177 177 180 181 181 181 181 182 183 184 184 185 VIII Referenzhandbuch CTransform1D::PUtoLU ........................................................................................................................................... CTransform1D::SetMapMode ........................................................................................................................................... CTransform1D::SetNodeAtt ........................................................................................................................................... CTransform1D::SetPhys ........................................................................................................................................... CTransform2D .................................................................................................................................................. CTransform2D::GetNodeAtt ........................................................................................................................................... CTransform2D::GetPhys ........................................................................................................................................... CTransform2D::GetTyp ........................................................................................................................................... CTransform2D::PUtoLU ........................................................................................................................................... CTransform2D::SetNodeAtt ........................................................................................................................................... CTransform2D::SetPhys ........................................................................................................................................... CTransform2D::SetTyp ........................................................................................................................................... Kurvenelemente ......................................................................................................................................................... CBar2DTrace .................................................................................................................................................. CBar2DTrace::AddLayer ........................................................................................................................................... CBar2DTrace::GetTraceAtt ........................................................................................................................................... CBar2DTrace::RemoveLayer ........................................................................................................................................... CBar2DTrace::SetTraceAtt ........................................................................................................................................... CBar3DTrace .................................................................................................................................................. CBar3DTrace::AddLayer ........................................................................................................................................... CBar3DTrace::GetTraceAtt ........................................................................................................................................... CBar3DTrace::RemoveLayer ........................................................................................................................................... CBar3DTrace::SetTraceAtt ........................................................................................................................................... CGraf3DTrace .................................................................................................................................................. CGraf3DTrace::GetTraceAtt ........................................................................................................................................... CGraf3DTrace::SetTraceAtt ........................................................................................................................................... CKurve2DTrace .................................................................................................................................................. CKurve2DTrace::GetTraceAtt ........................................................................................................................................... CKurve2DTrace::SetTraceAtt ........................................................................................................................................... CKurve3DTrace .................................................................................................................................................. CKurve3DTrace::GetTraceAtt ........................................................................................................................................... CKurve3DTrace::SetTraceAtt ........................................................................................................................................... CPaintObj .................................................................................................................................................. CPaintObj::GetTraceAtt ........................................................................................................................................... CPaintObj::SetTraceAtt ........................................................................................................................................... Attribute ........................................................................................................................................... Attribute ...................................................................................................................................... Farben ...................................................................................................................................... Float ...................................................................................................................................... Font ...................................................................................................................................... Füllmuster ...................................................................................................................................... Integer ...................................................................................................................................... Long ...................................................................................................................................... Matrix ...................................................................................................................................... Stift ...................................................................................................................................... String ...................................................................................................................................... Symbol...................................................................................................................................... Vector ...................................................................................................................................... CPPolyTrace .................................................................................................................................................. CPPolyTrace::GetTraceAtt ........................................................................................................................................... CPPolyTrace::SetTraceAtt ........................................................................................................................................... CVect2DTrace .................................................................................................................................................. CVect2DTrace::GetTraceAtt ........................................................................................................................................... CVect2DTrace::SetTraceAtt ........................................................................................................................................... CWhiskTrace .................................................................................................................................................. © XOn Siftware GmbH, 2008 185 185 186 188 188 188 189 189 190 190 191 192 193 193 194 194 194 194 197 197 197 197 198 200 200 200 203 203 203 205 205 205 207 208 209 211 211 212 213 213 213 214 214 214 215 215 216 216 216 217 217 218 218 218 220 Inhaltsverzeichnis CWhiskTrace::GetTraceAtt ........................................................................................................................................... CWhiskTrace::SetTraceAtt ........................................................................................................................................... Datenelemente ......................................................................................................................................................... CText .................................................................................................................................................. CText::GetData ........................................................................................................................................... CText::GetLen ........................................................................................................................................... CText::SetData ........................................................................................................................................... CDia .................................................................................................................................................. CDia::GetData ........................................................................................................................................... CDia::GetItem ........................................................................................................................................... CDia::GoFirst ........................................................................................................................................... CDia::GoNext ........................................................................................................................................... CDia::GoTo ........................................................................................................................................... CDia::Read ........................................................................................................................................... CDia::SetItem ........................................................................................................................................... CODBC.................................................................................................................................................. CODBC::Close ........................................................................................................................................... CODBC::GetColumnName ........................................................................................................................................... CODBC::GetColumnType ........................................................................................................................................... CODBC::GetDSN ........................................................................................................................................... CODBC::GetNrCols ........................................................................................................................................... CODBC::GetTableName ........................................................................................................................................... CODBC::GoFirstTable ........................................................................................................................................... CODBC::GoNextTable ........................................................................................................................................... CODBC::LoadColumn ........................................................................................................................................... CODBC::Open ........................................................................................................................................... CODBC::SetDSN ........................................................................................................................................... CI4Vector .................................................................................................................................................. CI4Vector::Append ........................................................................................................................................... CI4Vector::CI4Vector ........................................................................................................................................... CI4Vector::Copy ........................................................................................................................................... CI4Vector::Edit ........................................................................................................................................... CI4Vector::FreeExtra ........................................................................................................................................... CI4Vector::GetAt ........................................................................................................................................... CI4Vector::GetSize ........................................................................................................................................... CI4Vector::GetUpperBound ........................................................................................................................................... CI4Vector::InsertAt ........................................................................................................................................... CI4Vector::Min ........................................................................................................................................... CI4Vector::Max ........................................................................................................................................... CI4Vector::RemoveAll ........................................................................................................................................... CI4Vector::RemoveAt ........................................................................................................................................... CI4Vector::SetAt ........................................................................................................................................... CI4Vector::SetAtGrow ........................................................................................................................................... CI4Vector::SetSize ........................................................................................................................................... CI4Vector::GetData ........................................................................................................................................... CI4Vector::SetData ........................................................................................................................................... CI4Vector::MinMax ........................................................................................................................................... CI4Vector::Sort ........................................................................................................................................... CF4Vector .................................................................................................................................................. CF4Vector::Append ........................................................................................................................................... CF4Vector::CF4Vector ........................................................................................................................................... CF4Vector::Copy ........................................................................................................................................... CF4Vector::Edit ........................................................................................................................................... CF4Vector::FreeExtra ........................................................................................................................................... CF4Vector::GetAt ........................................................................................................................................... © XOn Siftware GmbH, 2008 IX 220 220 224 224 224 225 225 225 227 228 228 229 229 229 229 230 230 230 231 231 231 232 232 232 232 233 233 233 234 234 234 234 235 235 235 236 236 237 237 238 238 239 239 240 240 241 241 242 242 243 243 243 244 244 244 X Referenzhandbuch CF4Vector::GetData ........................................................................................................................................... CF4Vector::GetSize ........................................................................................................................................... CF4Vector::GetUpperBound ........................................................................................................................................... CF4Vector::InsertAt ........................................................................................................................................... CF4Vector::Max ........................................................................................................................................... CF4Vector::Min ........................................................................................................................................... CF4Vector::MinMax ........................................................................................................................................... CF4Vector::RemoveAll ........................................................................................................................................... CF4Vector::RemoveAt ........................................................................................................................................... CF4Vector::SetAt ........................................................................................................................................... CF4Vector::SetAtGrow ........................................................................................................................................... CF4Vector::SetData ........................................................................................................................................... CF4Vector::SetSize ........................................................................................................................................... CF4Vector::Sort ........................................................................................................................................... CDTVector .................................................................................................................................................. CDTVector::Append ........................................................................................................................................... CDTVector::CDTVector ........................................................................................................................................... CDTVector::Copy ........................................................................................................................................... CDTVector::Edit ........................................................................................................................................... CDTVector::FreeExtra ........................................................................................................................................... CDTVector::GetAt ........................................................................................................................................... CDTVector::GetData ........................................................................................................................................... CDTVector::GetSize ........................................................................................................................................... CDTVector::GetUpperBound ........................................................................................................................................... CDTVector::InsertAt ........................................................................................................................................... CDTVector::Max ........................................................................................................................................... CDTVector::Min ........................................................................................................................................... CDTVector::MinMax ........................................................................................................................................... CDTVector::RemoveAll ........................................................................................................................................... CDTVector::RemoveAt ........................................................................................................................................... CDTVector::SetAt ........................................................................................................................................... CDTVector::SetAtGrow ........................................................................................................................................... CDTVector::SetData ........................................................................................................................................... CDTVector::SetSize ........................................................................................................................................... CDTVector::Sort ........................................................................................................................................... CF8Vector .................................................................................................................................................. CF8Vector::Add ........................................................................................................................................... CF8Vector::Append ........................................................................................................................................... CF8Vector::AsExp ........................................................................................................................................... CF8Vector::AsLin ........................................................................................................................................... CF8Vector::AsPoly ........................................................................................................................................... CF8Vector::Blackman ........................................................................................................................................... CF8Vector::BlackmanHarries ........................................................................................................................................... CF8Vector::CF8Vector ........................................................................................................................................... CF8Vector::Convolve ........................................................................................................................................... CF8Vector::Copy ........................................................................................................................................... CF8Vector::CosineTapered ........................................................................................................................................... CF8Vector::CrossPower ........................................................................................................................................... CF8Vector::Derivative ........................................................................................................................................... CF8Vector::Div ........................................................................................................................................... CF8Vector::Edit ........................................................................................................................................... CF8Vector::ExactBlackman ........................................................................................................................................... CF8Vector::ExpFit ........................................................................................................................................... CF8Vector::Exponential ........................................................................................................................................... CF8Vector::FFT ........................................................................................................................................... © XOn Siftware GmbH, 2008 244 245 245 246 247 247 248 248 248 249 249 250 250 251 251 252 252 253 253 253 253 254 254 255 255 256 256 257 257 258 258 259 259 260 260 260 262 262 263 263 263 264 264 265 265 265 265 266 266 267 267 267 268 268 269 Inhaltsverzeichnis CF8Vector::FHT ........................................................................................................................................... CF8Vector::FIR ........................................................................................................................................... CF8Vector::FIRPara ........................................................................................................................................... CF8Vector::FlatTop ........................................................................................................................................... CF8Vector::Force ........................................................................................................................................... CF8Vector::FreeExtra ........................................................................................................................................... CF8Vector::GaussWhiteNoise ........................................................................................................................................... CF8Vector::GeneralCosine ........................................................................................................................................... CF8Vector::GetAt ........................................................................................................................................... CF8Vector::GetData ........................................................................................................................................... CF8Vector::GetDim ........................................................................................................................................... CF8Vector::GetSize ........................................................................................................................................... CF8Vector::GetUpperBound ........................................................................................................................................... CF8Vector::Hamming ........................................................................................................................................... CF8Vector::Hanning ........................................................................................................................................... CF8Vector::Histogram ........................................................................................................................................... CF8Vector::IFFT ........................................................................................................................................... CF8Vector::IIR ........................................................................................................................................... CF8Vector::InsertAt ........................................................................................................................................... CF8Vector::Integral ........................................................................................................................................... CF8Vector::KaiserBessel ........................................................................................................................................... CF8Vector::Let ........................................................................................................................................... CF8Vector::LinFit ........................................................................................................................................... CF8Vector::Max ........................................................................................................................................... CF8Vector::Mean ........................................................................................................................................... CF8Vector::Median ........................................................................................................................................... CF8Vector::Min ........................................................................................................................................... CF8Vector::Moment ........................................................................................................................................... CF8Vector::MrqFit ........................................................................................................................................... CF8Vector::Mult ........................................................................................................................................... CF8Vector::PolyFit ........................................................................................................................................... CF8Vector::Power ........................................................................................................................................... CF8Vector::RemoveAll ........................................................................................................................................... CF8Vector::RemoveAt ........................................................................................................................................... CF8Vector::Scalarproduct ........................................................................................................................................... CF8Vector::SetAt ........................................................................................................................................... CF8Vector::SetAtGrow ........................................................................................................................................... CF8Vector::SetData ........................................................................................................................................... CF8Vector::SetDim ........................................................................................................................................... CF8Vector::SetSize ........................................................................................................................................... CF8Vector::Sinus ........................................................................................................................................... CF8Vector::Sort ........................................................................................................................................... CF8Vector::Square ........................................................................................................................................... CF8Vector::Sub ........................................................................................................................................... CF8Vector::Triangle ........................................................................................................................................... CF8Vector::TrianglePattern ........................................................................................................................................... CF8Vector::Variance ........................................................................................................................................... CSTRVector .................................................................................................................................................. CSTRVector::Append ........................................................................................................................................... CSTRVector::Copy ........................................................................................................................................... CSTRVector::CSTRVector ........................................................................................................................................... CSTRVector::Edit ........................................................................................................................................... CSTRVector::FreeExtra ........................................................................................................................................... CSTRVector::GetAt ........................................................................................................................................... CSTRVector::GetSize ........................................................................................................................................... © XOn Siftware GmbH, 2008 XI 269 270 271 272 272 273 273 273 274 274 274 275 275 276 276 277 277 278 278 279 279 280 280 281 281 281 282 282 282 284 284 285 285 285 286 286 286 287 288 288 288 289 289 290 290 291 291 291 292 292 293 293 293 293 294 XII Referenzhandbuch CSTRVector::GetUpperBound ........................................................................................................................................... CSTRVector::InsertAt ........................................................................................................................................... CSTRVector::Max ........................................................................................................................................... CSTRVector::Min ........................................................................................................................................... CSTRVector::RemoveAt ........................................................................................................................................... CSTRVector::RemoveAll ........................................................................................................................................... CSTRVector::SetAt ........................................................................................................................................... CSTRVector::SetAtGrow ........................................................................................................................................... CSTRVector::SetSize ........................................................................................................................................... CSTRVector::Sort ........................................................................................................................................... CF8Matrix .................................................................................................................................................. CF8Matrix::Add ........................................................................................................................................... CF8Matrix::CompDiv ........................................................................................................................................... CF8Matrix::CompMult ........................................................................................................................................... CF8Matrix::Copy ........................................................................................................................................... CF8Matrix::CF8Matrix ........................................................................................................................................... CF8Matrix::Edit ........................................................................................................................................... CF8Matrix::GetAt ........................................................................................................................................... CF8Matrix::GetData ........................................................................................................................................... CF8Matrix::GetDim ........................................................................................................................................... CF8Matrix::GetDims ........................................................................................................................................... CF8Matrix::GetRows ........................................................................................................................................... CF8Matrix::GetCols ........................................................................................................................................... CF8Matrix::Invert ........................................................................................................................................... CF8Matrix::Max ........................................................................................................................................... CF8Matrix::Min ........................................................................................................................................... CF8Matrix::MinMax ........................................................................................................................................... CF8Matrix::Mult ........................................................................................................................................... CF8Matrix::SetAt ........................................................................................................................................... CF8Matrix::SetData ........................................................................................................................................... CF8Matrix::SetDims ........................................................................................................................................... CF8Matrix::Sub ........................................................................................................................................... CF8Matrix::Transpose ........................................................................................................................................... CI4Matrix .................................................................................................................................................. CI4Matrix::Copy ........................................................................................................................................... CI4Matrix::CI4Matrix ........................................................................................................................................... CI4Matrix::Edit ........................................................................................................................................... CI4Matrix::GetAt ........................................................................................................................................... CI4Matrix::GetCols ........................................................................................................................................... CI4Matrix::GetData ........................................................................................................................................... CI4Matrix::GetDim ........................................................................................................................................... CI4Matrix::GetDims ........................................................................................................................................... CI4Matrix::GetRows ........................................................................................................................................... CI4Matrix::Max ........................................................................................................................................... CI4Matrix::Min ........................................................................................................................................... CI4Matrix::MinMax ........................................................................................................................................... CI4Matrix::SetAt ........................................................................................................................................... CI4Matrix::SetDims ........................................................................................................................................... CF4Matrix .................................................................................................................................................. CF4Matrix::Copy ........................................................................................................................................... CF4Matrix::CF4Matrix ........................................................................................................................................... CF4Matrix::Edit ........................................................................................................................................... CF4Matrix::GetAt ........................................................................................................................................... CF4Matrix::GetCols ........................................................................................................................................... CF4Matrix::GetData ........................................................................................................................................... © XOn Siftware GmbH, 2008 294 294 295 296 296 297 297 297 298 298 299 299 300 300 300 300 301 301 301 301 302 302 302 303 303 304 304 304 305 305 306 306 306 306 307 307 307 308 308 309 309 309 310 310 310 311 311 312 312 312 313 313 313 314 314 Inhaltsverzeichnis CF4Matrix::GetDim ........................................................................................................................................... CF4Matrix::GetDims ........................................................................................................................................... CF4Matrix::GetRows ........................................................................................................................................... CF4Matrix::Max ........................................................................................................................................... CF4Matrix::Min ........................................................................................................................................... CF4Matrix::MinMax ........................................................................................................................................... CF4Matrix::SetAt ........................................................................................................................................... CF4Matrix::SetDims ........................................................................................................................................... CDTMatrix .................................................................................................................................................. CDTMatrix::Copy ........................................................................................................................................... CDTMatrix::CDTMatrix ........................................................................................................................................... CDTMatrix::Edit ........................................................................................................................................... CDTMatrix::GetAt ........................................................................................................................................... CDTMatrix::GetCols ........................................................................................................................................... CDTMatrix::GetData ........................................................................................................................................... CDTMatrix::GetDim ........................................................................................................................................... CDTMatrix::GetDims ........................................................................................................................................... CDTMatrix::GetRows ........................................................................................................................................... CDTMatrix::Max ........................................................................................................................................... CDTMatrix::Min ........................................................................................................................................... CDTMatrix::MinMax ........................................................................................................................................... CDTMatrix::SetAt ........................................................................................................................................... CDTMatrix::SetDims ........................................................................................................................................... CSTRMatrix .................................................................................................................................................. CSTRMatrix::Copy ........................................................................................................................................... CSTRMatrix::CSTRMatrix ........................................................................................................................................... CSTRMatrix::Edit ........................................................................................................................................... CSTRMatrix::GetAt ........................................................................................................................................... CSTRMatrix::GetCols ........................................................................................................................................... CSTRMatrix::GetDim ........................................................................................................................................... CSTRMatrix::GetDims ........................................................................................................................................... CSTRMatrix::GetRows ........................................................................................................................................... CSTRMatrix::Max ........................................................................................................................................... CSTRMatrix::Min ........................................................................................................................................... CSTRMatrix::SetAt ........................................................................................................................................... CSTRMatrix::SetDims ........................................................................................................................................... Obsolet ......................................................................................................................................................... CTimeVect .................................................................................................................................................. CTimeVect::GetData ........................................................................................................................................... CTimeVect::GetLen ........................................................................................................................................... CTimeVect::SetData ........................................................................................................................................... CVector.................................................................................................................................................. CMatrix .................................................................................................................................................. GetPoolTimeVect .................................................................................................................................................. GetPoolVector .................................................................................................................................................. GetPoolMatrix .................................................................................................................................................. Index © XOn Siftware GmbH, 2008 XIII 314 315 315 315 316 316 317 317 317 318 318 318 319 319 319 319 320 320 320 321 321 321 321 322 322 322 323 323 323 324 324 324 325 325 326 326 327 327 327 327 327 328 328 328 329 329 331 1 Referenzhandbuch 1 Programmierreferenz In dieser Dokumentation finden sie die Beschreibung der Laufzeitbibliothek und der Klassenbibliothek. 1.1 Laufzeitbibliothek Die Laufzeitbibliothek gliedert sich in thematische Untergruppen Dateifunktionen Verzeichnisfunktionen Mathematische Funktionen Stringfunktionen Datenpoolfunktionen Speichermanagement Datum und Uhrzeit Sonstige 1.1.1 Datei-Funktionen Dateifunktionen Die hier behandelten Funktionen ermöglichen den Zugriff auf Dateien. Funktionen: · fdopen · fopen · fclose · fseek · feof · ferror · fprintf · fscanf · fread · fflush · ftell · fgetc · fgetpos · fgets · _filelength · _fileno · fputc · fputs · putc · rewind · _splitpath · _makepath · _fullpath · _getw 1.1.1.1 _filelength Syntax: long _filelength(int handle); Beschreibung: © XOn Siftware GmbH, 2008 1.1 Programmierreferenz 2 Ermittelt die Länge einer Datei in Bytes. _filelength liefert die Länge der über handle angegebenen Datei in Bytes zurück. Rückgabewert: Bei fehlerfreier Ausführung liefert _filelength die Dateigröße in Bytes als long-Wert. Im Fehlerfall liefert filelength -1 zurück. 1.1.1.2 _fileno Syntax: int _fileno(FILE *stream); Beschreibung: Liefert das zu einem Stream gehörende Datei-Handle. _fileno liefert das Handle des über den Parameter stream angegebenen Stream zurück. Wenn stream mehr als ein Handle zugeordnet ist, wird das beim ersten Öffnen des Stream vergebene Handle zurückgeliefert. Rückgabewert: _fileno liefert das zu stream gehörende Datei-Handle als Integer zurück. 1.1.1.3 _fullpath Header: char* _fullpath(char* buffer,char* path,int buflen) Beschreibung: Konvertiert einen relativen Pfadnamen in einen absoluten. _fullpath konvertiert den relativen Pfadnamen in path in einen absoluten Pfadnamen. Dieser wird in dem Zeichen-Array gespeichert, auf das buffer zeigt. buflen gibt an, wieviele Zeichen in buffer gespeichert werden können. _fullpath liefert NULL zurück, wenn der Puffer nicht groß genug für den absoluten Pfadnamen ist oder der Pfad eine ungültige Laufwerksangabe enthält. Wenn buffer NULL ist, reserviert _fullpath einen Puffer mit bis zu _MAX_PATH Zeichen. Dieser Puffer sollte durch einen Aufruf von free freigegeben werden, wenn er nicht mehr benötigt wird. Die Konstante _MAX_PATH ist in stdlib.h definiert. Rückgabewert: Bei fehlerfreier Ausführung liefert _fullpath einen Zeiger auf den Puffer zurück, der den absoluten Pfadnamen enthält. Andernfalls ist das Ergebnis NULL. 1.1.1.4 _getw Header: int _getw(FILE* stream) Beschreibung: Liest einen Integerwert aus einem Stream. _getw liest den nächsten Integer aus dem durch stream bezeichneten Eingabe-Stream. Eine spezielle Anordnung des Dateiinhalts wird nicht vorausgesetzt. _getw sollte nicht benutzt werden, wenn der Stream im Textmodus geöffnet wurde. Rückgabewert: _getw liefert die nächste Zahl vom Typ integer auf dem Eingabe-Stream zurück. Bei Überschreitung des Dateiendes oder einem Fehler ist der Rückgabewert EOF. Hinweis: Da EOF aber auch einen gültigen Wert darstellen kann, sollte ein expliziter Test mit feof oder ferror folgen, um auf Dateiende oder Fehler zu prüfen. © XOn Siftware GmbH, 2008 3 Referenzhandbuch 1.1.1.5 _makepath Header: void _makepath(char* path,char* drive,char* dir,char* name,char* ext) Beschreibung: Erzeugt einen Pfadnamen aus einzelnen Komponenten. _makepath erzeugt einen Pfadnamen aus Einzelkomponenten. Der neue Pfadname heißt X:\DIR\SUBDIR\NAME.EXT Dabei gilt: drive = X: dir = \DIR\SUBDIR\ name = NAME ext = . EXT Ist drive leer oder NULL, wird keine Laufwerksbezeichnung in den Pfadnamen eingefügt. Fehlt nach drive der abschließende Doppelpunkt (:), wird er automatisch in den Pfadnamen eingefügt. Ist dir leer oder NULL, wird kein Verzeichnis in den Pfadnamen eingefügt. Fehlt nach dir der abschließende Schrägstrich (\ oder /), wird automatisch ein umgekehrter Schrägstrich (Backslash) in den Pfadnamen eingefügt. Ist name leer oder NULL, wird kein Dateiname in den Pfadnamen eingefügt. Ist ext leer oder NULL, wird keine Namenserweiterung in den Pfadnamen eingefügt. Fehlt der Punkt (.) zu Beginn der Namenserweiterung, wird er automatisch in den Pfadnamen eingefügt. _makepath setzt voraus, daß der mit path übergebene String eine ausreichende Größe für den konstruierten Pfadnamen hat. Die Maximalgröße ist _MAX_PATH, wobei _MAX_PATH in stdlib.h definiert ist. _makepath und _splitpath verhalten sich invers zueinander. Die Anwendung von _makepath auf die durch _splitpath ermittelten Elemente eines vollständigen Pfadnamens ergeben wieder das Original. 1.1.1.6 _splitpath Header: void _splitpath(char* path,char* drive,char* dir,char* name,char* ext); Beschreibung: Zerlegt einen vollständigen Pfadnamen in seine Einzelkomponenten. _splitpath übernimmt im Parameter path einen vollständigen Dateinamen als String der Form X:\DIR\SUBDIR\NAME.EXT und zerlegt ihn in seine vier Einzelkomponenten. Diese werden in den durch drive, dir, name und ext bezeichneten Strings gespeichert. (Alle fünf Parameter müssen übergeben werden, einzelne davon dürfen aber NULL sein, was zur Folge hat, daß die zugehörige Komponente zwar analysiert, aber nicht gespeichert wird.) Für Maximalgrößen aller beteiligen Strings sind in stdlib.h die Konstanten _MAX_DRIVE, _MAX_DIR, _MAX_PATH, _MAX_FNAME und _MAX_EXT definiert. Dabei muß das abschließende Nullzeichen jeweils mitgezählt werden. © XOn Siftware GmbH, 2008 1.1 Programmierreferenz 4 Konstante String _MAX_PATH path _MAX_DRIVE drive; inklusive Doppelpunkt (:) _MAX_DIR dir; inklusive führendem und abschließendem umgekehrten Schrägstrich (\) _MAX_FNAME name _MAX_EXT ext; inklusive führendem Punkt (.) _splitpath unterstellt, daß die durch drive, dir, name und ext bezeichneten Strings eine ausreichende Größe haben, um jede nicht leere Komponente zu speichern. _splitpath behandelt die Interpunktionszeichen aus path in folgender Weise: · drive enthält den Laufwerksbezeichner mit einem Doppelpunkt (C:, A: usw.). · dir enthält einen führenden und abschließenden umgekehrten Schrägstrich (\BC \INCLUDE\, \SOURCE\ usw.). · name enthält den Dateinamen. · ext enthält den Punkt, der die Namenserweiterung einleitet (.C, .EXE usw.). _makepath und _splitpath verhalten sich invers zueinander. Die Anwendung von _makepath auf die durch _splitpath ermittelten Elemente eines vollständigen Pfadnamens ergeben wieder das Original. 1.1.1.7 fclose Syntax: int fclose(FILE* stream); Beschreibung: Schließt einen Stream. fclose schließt den durch stream angegebenen Stream, wobei alle zum Stream gehörenden Puffer zuvor auf Diskette bzw. Platte geschrieben werden. Durch das System reservierte Puffer werden durch fclose freigegeben. Puffer, die mit setbuf oder setvbuf zugeordnet wurden, werden nicht automatisch freigegeben (es sei denn, beim Aufruf von setvbuf wurde als Pufferzeiger der Wert NULL übergeben). Rückgabewert: fclose liefert bei fehlerfreier Ausführung den Wert 0, im Fehlerfall den Wert EOF (-1) zurück 1.1.1.8 fdopen Syntax: FILE *fdopen(int handle, char *type); Beschreibung: Ordnet einem Datei-Handle einen Stream zu. fdopen ordnet dem offenen Datei-Handle handle, das über einen Aufruf creat, dup, dup2, oder open. erhalten wurde, einen Stream zu. Der Typ des Stream muß zum Modus des Datei-Handle passen. Der Parameter type kann einen der folgenden Werte annehmen: r Öffnen nur für Leseoperationen w Erzeugen für Schreiboperationen a Öffnen bzw. Erzeugen für Schreiboperationen (anhängend) r+ Öffnen für Lese- und Schreiboperationen. (Nur existierende Dateien) w+ Erzeugen einer neuen Datei für Lese- und Schreiboperationen. a+ Öffnen bzw. Erzeugen zum Lesen und für Schreiboperationen (anhängend) Bei der Öffnung kann zusätzlich explizit angegeben werden, ob die Datei im Text- (t) oder © XOn Siftware GmbH, 2008 5 Referenzhandbuch Binärmodus (b) bearbeitet werden soll. Die Angabe geschieht durch ein einfaches Anhängen des jeweiligen Buchstabens (also wb, w+b, rt, a+t etc.). Mit r+ und w+ erzeugte Dateien können sowohl gelesen als auch beschrieben werden: Zwischen einem Wechsel von "Schreiben" nach "Lesen" muß allerdings ein Aufruf von fseek oder rewind stattfinden. Zwischen einem Wechsel von "Lesen" nach "Schreiben" muß ebenfalls ein Aufruf von fseek oder rewind stattfinden, es sei denn, die Leseoperation hat das Dateiende erreicht. Rückgabewert: fdopen liefert bei fehlerfreier Ausführung einen Zeiger auf den neu geöffneten Stream zurück, im Fehlerfall den Wert NULL. 1.1.1.9 feof Syntax: int feof(FILE *stream); Beschreibung: Prüft, ob das Ende eines Stream erreicht ist. feof prüft das Dateiende-Flag des über stream angegebenen Stream. Dieses Flag wird beim Erreichen des Dateiendes automatisch gesetzt. Leseoperationen liefern dann solange dieses Flag, bis rewind aufgerufen oder die Datei geschlossen wird. Vor jeder Schreiboperation in diese Datei wird das Flag gelöscht. Rückgabewert: feof liefert einen Wert ungleich 0 zurück, wenn das Dateiende-Flag des angegebenen Stream gesetzt ist, ansonsten ist der Rückgabewert 0. 1.1.1.10 ferror Syntax: int ferror(FILE *stream); Beschreibung: Prüft Fehlerbedingungen bei Streams. ferror ist eine Funktion, die den über stream angegebenen Stream auf Schreib- und Lesefehler prüft. Das Fehler-Flag eines Stream bleibt nach einem Fehler solange gesetzt, bis entweder clearerr oder rewind aufgerufen oder der Stream geschlossen wird. Rückgabewert: ferror liefert einen Wert ungleich null zurück, wenn das Fehler-Flag des angegebenen stream gesetzt ist, sonst den Wert 0. 1.1.1.11 fflush Syntax: int fflush(FILE *stream); Beschreibung: Schreibt den Ausgabepuffer eines Stream in die zugeordnete Datei. fflush erzwingt bei gepufferten Ausgabe-Streams ein Schreiben eventueller Pufferinhalte, sorgt also dafür, daß ausgegebene Daten in die zugehörige Datei geschrieben werden. Der durch stream bezeichnete Stream bleibt offen. Auf ungepufferte Streams hat fflush keine Auswirkung. Rückgabewert: Bei fehlerfreier Ausführung liefert fflush den Wert 0, im Fehlerfall den Wert -1 (EOF) zurück. © XOn Siftware GmbH, 2008 1.1 Programmierreferenz 6 1.1.1.12 fgetc Syntax: int fgetc(FILE *stream); Beschreibung: Liest ein Zeichen aus einem Stream. fgetc liest das jeweils nächste Zeichen aus dem Eingabe-Stream stream. Rückgabewert: fgetc konvertiert bei fehlerfreier Ausführung das gelesene Zeichen in einen int-Wert ohne Vorzeichenerweiterung und liefert diesen zurück. Bei Erreichen des Dateiendes oder im Fehlerfall wird der Wert -1 (EOF) zurückgeliefert. 1.1.1.13 fgetpos Syntax: int fgetpos(FILE *stream, long *pos); Beschreibung: Ermittelt die aktuelle Position des Dateizeigers einer Datei. fgetpos speichert die Position des zu stream gehörigen Dateizeigers in *pos. Der Wert wird speziell codiert gespeichert und ist nur als Parameter für einen folgenden Aufruf von fsetpos sinnvoll. Rückgabewert: fgetpos liefert bei fehlerfreier Ausführung 0 zurück. Im Fehlerfall liefert fgetpos einen Wert ungleich null und setzt die globale Variable errno auf: 9 (EBADF) Ungültiges Handle 22 (EINVAL) Ungültiges Argument 1.1.1.14 fgets Syntax: char *fgets(char *s, int n, FILE *stream); Beschreibung: Liest einen String aus einem Stream. fgets liest einen String aus stream in den durch s angegebenen String und bricht ab, wenn entweder ein Zeilenvorschub (\n) gelesen wird oder n-1 Zeichen gelesen wurden. Der Zeilenvorschub wird am Ende von s gespeichert. Anschließend hängt fgets automatisch ein Nullzeichen (\0) an, um das Ende des Strings zu markieren. Rückgabewert: fgets liefert bei fehlerfreier Ausführung den durch s bezeichneten String zurück. Bei Erreichen des Dateiendes oder im Fehlerfall ist der Rückgabewert NULL. 1.1.1.15 fopen Syntax: FILE *fopen(const char *filename, const char *mode); Beschreibung: Öffnet einen Stream. fopen öffnet die durch filename bezeichnete Datei und ordnet ihr einen Stream zu. Zurückgeliefert wird ein Zeiger auf diesen Stream, über den weitere Operationen mit diesem Stream ausgeführt werden können. Der Parameter mode kann einen der folgenden Werte annehmen: © XOn Siftware GmbH, 2008 7 Referenzhandbuch r Öffnen nur für Leseoperationen w Erzeugen bzw. Überschreiben für Schreiboperationen a Öffnen bzw. Erzeugen für Schreiboperationen (anhängend) r+ Öffnen für Lese- und Schreiboperationen. w+ Erzeugen bzw. Überschreiben für Lese- und Schreiboperationen a+ Öffnen bzw. Erzeugen für Lese- und Schreiboperationen (anhängend) Bei der Öffnung kann zusätzlich explizit angegeben werden, ob die Datei im Modus text (t) oder binary (b) bearbeitet werden soll. Die Angabe geschieht durch ein einfaches Anhängen des jeweiligen Buchstabens (also wb, w+b, rt, a+t etc.). Im Parameter mode kann bei fopen das Zeichen t bzw. b auch zwischen den Buchstaben und dem Pluszeichen eingefügt werden. So ist beispielsweise rt+ identisch mit r+t. Mit r+ und w+ erzeugte Dateien können sowohl gelesen als auch beschrieben werden: Zwischen einem Wechsel von "Schreiben" nach "Lesen" muß allerdings ein Aufruf von fseek oder rewind stattfinden. Zwischen einem Wechsel von "Lesen" nach "Schreiben" muß ebenfalls fseek oder rewind stattfinden, es sei denn, die Leseoperation hat das Dateiende erreicht. Rückgabewert: fopen liefert bei fehlerfreier Ausführung einen Zeiger auf den neu geöffneten Stream, im Falle eines Fehlers den Wert NULL zurück. 1.1.1.16 fprintf Syntax: int fprintf(FILE *stream, const char *format[, argument, ...]); Beschreibung: Schreibt formatiert in einen Stream. Hinweis Weitere Details über Formatierungsanweisungen finden Sie unter sprintf. fprintf übernimmt eine Folge von Argumenten, wendet auf jedes die im Formatstring (Parameter format) festgelegte Formatierungsanweisung an und schreibt die formatierten Daten in einen Stream. Die Anzahl der Formatierungsanweisungen und der Argumente muß übereinstimmen. Rückgabewert: fprintf liefert bei fehlerfreier Ausführung die Anzahl der ausgegebenen Bytes, im Fehlerfall den Wert -1 (EOF) zurück. 1.1.1.17 fputc Syntax: int fputc(int c, FILE *stream); Beschreibung: Schreibt ein Zeichen in einen Stream. fputc schreibt das Zeichen c in den durch stream angegebenen Stream. Rückgabewert: fputc liefert das übergebene Zeichen c, im Fehlerfall den Wert -1 (EOF) zurück. © XOn Siftware GmbH, 2008 1.1 Programmierreferenz 8 1.1.1.18 fputs Syntax: int fputs(const char *s, FILE *stream); Beschreibung: Schreibt einen String in einen Stream. fputs schreibt den nullterminierten String s in den angegebenen Ausgabe-Stream. Diese Funktion erzeugt keinen automatischen Zeilenvorschub am Ende der Ausgabe und das abschließende Nullzeichen (\0) wird nicht ausgegeben. Rückgabewert: Bei fehlerfreier Ausführung liefert fputs das zuletzt geschriebene Zeichen (einen positiven Wert), im Falle eines Fehlers den Wert -1 (EOF) zurück. 1.1.1.19 fread Syntax: int fread(void *ptr, int size, int n, FILE *stream); Beschreibung: Liest Daten aus einem Stream. fread liest n Datenelemente, die jeweils die Größe size Bytes haben, aus dem angegebenen Stream in den Speicherbereich, auf den ptr zeigt. Es werden insgesamt (n * size) Bytes gelesen. Rückgabewert: fread liefert bei fehlerfreier Ausführung die Anzahl der gelesenen Datenelemente (nicht Bytes) zurück. Im Falle eines Fehlers oder am Dateiende wird die Anzahl von Elementen (möglicherweise 0) zurückgeliefert, die noch fehlerfrei gelesen werden konnten. 1.1.1.20 fscanf Syntax: int fscanf(FILE *stream, const char *format,...); Beschreibung: Liest und formatiert Eingaben aus einem Stream. fscanf liest eine Reihe von Eingabefeldern zeichenweise aus einem Stream. Entsprechend den Formatierungsanweisungen, die fscanf im Formatstring format übergeben wurden, wird jedes Feld gelesen, formatiert und an einer Adresse gespeichert, die nach format übergeben wurde. Die Anzahl der Formatierungsanweisungen, der übergebenen Adressen und der Eingabefelder müssen übereinstimmen. Hinweis: Unter der Funktion sscanf finden Sie eine ausführliche Beschreibung der Formatierungsanweisungen. fscanf kann das Lesen eines bestimmten Eingabefeldes abbrechen, bevor das normale Feldende (ein Whitespace-Zeichen) erreicht ist. fsanf kann auch aus verschiedenen Gründen den Lesevorgang vollständig abbrechen. Die möglichen Ursachen hierfür werden unter sscanf erläutert. Rückgabewert: fscanf liefert die Anzahl der fehlerfrei gelesenen und gespeicherten Felder zurück. Gelesene, aber nicht gespeicherte Felder werden nicht mitgezählt. Der Versuch, über das Ende einer Datei hinauszulesen, ergibt den Wert -1 (EOF). Wenn überhaupt keine Felder gespeichert wurden, wird 0 zurückgeliefert. © XOn Siftware GmbH, 2008 9 Referenzhandbuch Beispiel: /* * Dieses Program schreibt formatierte * Daten auf eine Datei. Danach liest es mit * Hilfe von fscanf die Datein wieder aus * der Datei zurück. */ int method::OnRun() { FILE *stream; int l; double fp; char s[81]; char c; stream = fopen( "fscanf.out", "w+" ); if( stream == NULL ) printf( "The file fscanf.out was not opened\n" ); else { fprintf( stream, "%s %ld %f%c", "a-string", 65000, 3.14159, 'x' ); /* Set pointer to beginning of file: */ fseek( stream, 0L, SEEK_SET ); /* Read data back from file: */ fscanf( stream, "%s", s ); fscanf( stream, "%ld", &l ); fscanf( stream, "%f", &fp ); fscanf( stream, "%c", &c ); fclose( stream ); } return 1; } 1.1.1.21 fseek Syntax: int fseek(FILE *stream, long offset, int whence); Beschreibung: Setzt den Dateizeiger eines Streams auf eine neue Position. fseek setzt den zu stream gehörenden Dateizeiger auf die neue Position, die offset Bytes von der durch whence angegebenen Dateiposition entfernt ist. Für Streams im Textmodus sollte offset 0 sein oder ein Wert, der von ftell geliefert wurde. Die Art der Positionierung wird über drei Werte für whence festgelegt: Kürzel SEEK_SET SEEK_CUR SEEK_END Wert (Wert 0) (Wert 1) (Wert 2) Dateiposition Relativ zum Dateianfang Relativ zur aktuellen Position Relativ zum Dateiende Mit ungetc zurückgestellte Zeichen sind nach fseek nicht mehr erreichbar. Benutzen Sie fseek für Stream-Ein-/Ausgabe und lseek für Datei-Handle-Ein-/Ausgabe. In Dateien, die für Lese- und Schreiboperationen geöffnet worden sind, kann nach fseek zwischen "Lesen" und "Schreiben" gewechselt werden. Rückgabewert: fseek liefert bei fehlerfreier Ausführung den Wert 0 zurück, ansonsten einen Wert ungleich null. © XOn Siftware GmbH, 2008 1.1 Programmierreferenz 10 Es ist möglich, daß fseek 0 zurückliefert, obwohl bei der Ausführung der Funktion ein Fehler aufgetreten ist. Dies liegt daran, daß der Zeiger letztendlich von DOS gesetzt und das Ergebnis der Positionierung nicht überprüft wird. fseek gibt nur für ungeöffnete Dateien oder Geräte einen Fehlercode zurück. Im Fehlerfall wird die globale Variable errno auf einen der folgenden Werte gesetzt: EBADF (9) EINVAL (22) ESPIPE (29) Ungültiger Dateizeiger Ungültiges Argument Suche auf diesem Gerät nicht möglich 1.1.1.22 ftell Header int ftell(FILE* stream); Beschreibung Liefert den aktuellen Dateizeiger. ftell liefert den aktuellen Dateizeiger von stream zurück. Die Position wird relativ zum Dateianfang in Bytes gemessen (falls es sich um eine Binärdatei handelt). Der von ftell zurückgelieferte Wert kann bei einem nachfolgenden Aufruf von fseek verwendet werden. Rückgabewert ftell liefert bei fehlerfreier Ausführung die aktuelle Position des Dateizeigers zurück. Im Fehlerfall ist der Rückgabewert -1L, und die globale Variable errno wird auf einen der beiden folgenden Werte gesetzt: · EBADF Ungültiger Dateizeiger · ESPIPE Illegale Suche auf Gerät 1.1.1.23 getc Header: int getc(FILE* stream); Beschreibung: Liest ein Zeichen aus einem Stream. getc gibt das nächste Zeichen aus dem gegebenen Eingabe-Stream zurück und erhöht den Dateizeiger des Streams entsprechend, daß dieser auf das nächste Zeichen zeigt. Hinweis: In Win32 oder Win32 GUI-Anwendungen muß stdin umgelenkt werden. Rückgabewert: getc liefert bei fehlerfreier Ausführung das gelesene Zeichen als int ohne Vorzeichenerweiterung zurück. Am Dateiende oder im Fehlerfall liefert die Funktion EOF zurück. 1.1.1.24 putc Header int putc(int c,FILE* stream); Beschreibung Schreibt ein Zeichen in einen Stream. Das Makro putc schreibt das Zeichen c in den durch stream angegebenen Stream. Rückgabewert putc liefert bei fehlerfreier Ausführung das übergebene Zeichen c zurück. © XOn Siftware GmbH, 2008 11 Referenzhandbuch Im Fehlerfall wird der Wert EOF zurückgeliefert. Im Fehlerfall wird der Wert EOF zurückgeliefert. 1.1.1.25 rewind Header: void rewind(FILE* stream); Beschreibung: Setzt einen Dateizeiger auf den Stream-Anfang. rewind ist äquivalent zu fseek(stream, 0L, SEEK_SET), löscht aber nicht nur das Dateiende-Flag (wie rewind), sondern auch eventuell gesetzte Fehler-Flags. In Dateien, die für Lese- und Schreibzugriffe geöffnet worden sind, kann nach rewind zwischen "Lesen" und "Schreiben" gewechselt werden. 1.1.2 Mathematische funktionen 1.1.2.1 Mathematifunktionen Mathematifunktionen Die hier behandelten Funktionen stellen grundlegende Mathematik zur Verfügung. Funktionen : · sin · cos · tan · asin · acos · atan · atan2 · sinh · cosh · tanh · sqrt · pow · log · log10 · exp · floor · ceil · fabs · rand · srand 1.1.2.1.1 acos Syntax: double acos(double x); Beschreibung: Berechnet den Arcuscosinus. acos liefert den Arcuscosinus des Eingabewerts. Das Argument von acos muß sich im Bereich von -1 bis 1 befinden. Rückgabewert: Bei einem Argument zwischen -1 und +1 liefert acos einen Werte im Bereich von 0 bis p zurück. © XOn Siftware GmbH, 2008 1.1 Programmierreferenz 12 1.1.2.1.2 asin Syntax: double asin(double x); Beschreibung: Berechnet den Arcussinus. asin liefert für ein reelles Argument den Arcussinus des eingegebenen Werts zurück. asin erwartet ein reelles Argument im Bereich von -1 bis +1. Rückgabewert: Der Rückgabewert von asin liegt für reelle Argumente im Bereich von - p/2 bis p/2. 1.1.2.1.3 atan Syntax: double atan(double x); Beschreibung: atan berechnet den Arcustangens des übergebenen Arguments. Rückgabewert: atan liefert einen Wert im Bereich von -p/2 bis p/2. 1.1.2.1.4 atan2 Syntax: double atan2(double y, double x); Beschreibung: atan2 liefert den Arcustangens von y/x und erzeugt auch dann noch korrekte Resultate, wenn sich der ergebende Winkel p/2 oder -p/2 nähert (den Polstellen der Tangensfunktion, für Werte von x nahe Null). Rückgabewert: atan2 liefert einen Wert im Bereich von -p bis p. 1.1.2.1.5 ceil Syntax: double ceil(double x); Beschreibung: Rundet auf zum nächsten ganzzahligen Wert. ceil ermittelt den kleinsten Integerwert größer oder gleich x. Rückgabewert: Die Funktion ceil liefert ihr ganzzahliges Ergebnis als Wert vom Typ double zurück. 1.1.2.1.6 cos Syntax: double cos(double x); Beschreibung: Berechnet den Cosinus des Arguments. cos erwartet einen Winkel in der Einheit rad als Argument und liefert den dazugehörigen Cosinus zurück. Rückgabewert: © XOn Siftware GmbH, 2008 13 Referenzhandbuch cos liefert Werte im Bereich von -1 bis +1 zurück. 1.1.2.1.7 cosh Syntax: double cosh(double x); Beschreibung: cosh Berechnet den Cosinus hyperbolicus des Arguments. Rückgabewert: Bei fehlerfreier Ausführung liefert cosh den Cosinus hyperbolicus des Arguments. 1.1.2.1.8 exp Syntax: double exp(double x); Beschreibung: Berechnet die Exponentialfunktion des Argumentes x. Rückgabewert: liefert den Wert ex zurück. 1.1.2.1.9 fabs Syntax: double fabs(double x); Beschreibung: Berechnet den absoluten Wert einer Gleitkommazahl. fabs berechnet den absoluten Betrag des double-Arguments x. Rückgabewert: fabs liefert den absoluten Betrag von x zurück. 1.1.2.1.10 floor Syntax: double floor(double x); Beschreibung: Rundet ab. floor rundet auf den größten ganzzahligen Wert ab, der nicht größer als x ist. Rückgabewert: floor liefert den Integer als double-Wert zurück. 1.1.2.1.11 log Syntax: double log(double x); Beschreibung: log Berechnet den natürlichen Logarithmus des Arguments x. Rückgabewert: log liefert den natürlichen Logarithmus des Argumentes x zurück, falls x>0 ist. © XOn Siftware GmbH, 2008 1.1 Programmierreferenz 14 1.1.2.1.12 log10 Syntax: double log10(double x); Beschreibung: log10 Berechnet den Logarithmus zur Basis 10 des Arguments x. Rückgabewert: log10 liefert den Logarithmus zur Basis 10 des Argumentes x zurück, falls x>0 ist. 1.1.2.1.13 pow Syntax: double pow(double x, double y); Beschreibung: pow liefert das Ergebnis der Berechnung xy zurück. Rückgabewert: Bei fehlerfreier Ausführung liefert pow das Ergebnis der Berechnung xy zurück. Falls sich die Argumente nicht innerhalb der zulässigen Grenzen halten, so wird ein Überlauf erzeugt oder das Ergebnis ist nicht berechenbar. 1.1.2.1.14 ran1 Syntax: double ran1(int *idum); Beschreibung: liefert eine gleichverteilte Zufallszahl. Rückgabewert: Zufallszahl. 1.1.2.1.15 rand Syntax: int rand(void); Beschreibung: Erzeugt eine Zufallszahl. rand verwendet ein multiplikatives Kongruenzverfahren (Multiplikation mit anschließender ModuloOperation), um Pseudo-Zufallszahlen im Bereich von 0 bis 0x7FFF (RAND_MAX) zu erzeugen. Die Periode des Zufallszahlengenerators beträgt 232. Rückgabewert: rand liefert die erzeugte Pseudo-Zufallszahl zurück. 1.1.2.1.16 sin Syntax: double sin(double x); Beschreibung: Liefert den Sinus des Arguments zurück. sin erwartet einen Winkel in der Einheit rad als Argument und liefert den dazugehörigen Sinus zurück. © XOn Siftware GmbH, 2008 15 Referenzhandbuch Rückgabewert: sin liefert den Sinus des Eingabewertes. 1.1.2.1.17 sinh Syntax: double sinh(double x); Beschreibung: sinh berechnet den Sinus hyperbolicus. Rückgabewert: sinh liefert den Sinus hyperbolicus von x zurück. 1.1.2.1.18 sqrt Syntax: double sqrt(double x); Beschreibung: sqrt Berechnet die positive Quadratwurzel des Arguments . Rückgabewert: sqrt liefert die positive Quadratwurzel des Arguments, wenn x eine positive Zahl ist. 1.1.2.1.19 srand Syntax: void srand(int seed); Beschreibung: Initialisiert den Zufallszahlengenerator. Der Zufallszahlengenerator wird beim Aufruf von srand mit dem seed == 1 neu initialisiert. Durch den Aufruf von srand mit einem bestimmten Parameter seed kann er auf einen neuen Startwert gesetzt werden. Rückgabewert: Keiner. 1.1.2.1.20 tan Syntax: double tan(double x); Beschreibung: Liefert den Tangens des Arguments. tan erwartet einen Winkel in der Einheit rad als Argument und liefert den dazugehörigen Tangens sin(x)/cos(x) zurück. Rückgabewert: tan liefert den Tangens von x zurück. 1.1.2.1.21 tanh Syntax: double tanh(double x); Beschreibung: © XOn Siftware GmbH, 2008 1.1 Programmierreferenz 16 tanh berechnet den Tangens hyperbolicus sinh(x)/cosh(x). Rückgabewert: tanh liefert den Tangens hyperbolicus von x. 1.1.2.2 Erweiterte Mathematikfunktionen Erweiterte Mathematikfunktionen Diese Funktionen ermöglichen den Zugriff auf eine erweiterte Mathematikbibliothek. Funktionen : · Bessel-Funktionen · beta · betai · binom · cabs · chi2_p · chi2_q · erf · erfc · f_distr · frexp · gammp · gammq · gasdev · poisson · student · modf · _hypot · _logb · ran1 1.1.2.2.1 _cabs Header: double cabs(struct complex z); Beschreibung: Berechnet den Absolutwert einer komplexen Zahl. cabs ist ein Makro, das den Absolutwert von z, einer Struktur des Typs complex, berechnet. Dieser Strukturtyp ist in math.h folgendermaßen definiert: struct complex { double x, y; }; wobei x den reellen und y den Imaginärteil der komplexen Zahl aufnimmt. Der Aufruf von cabs entspricht einem Aufruf von sqrt mit den Quadraten der reellen und imaginären Bestandteile von z, also sqrt(z.x * z.x + z.y * z.y) Rückgabewert: cabs liefert den Absolutwert von z als double. Bei einem Überlauf liefert cabs HUGE_VAL und setzt die globale Variable errno auf ERANGE Ergebnis außerhalb des Rechenbereichs © XOn Siftware GmbH, 2008 17 Referenzhandbuch Die Fehlerbehandlung für diese Funktion kann über _matherr modifiziert werden. 1.1.2.2.2 _hypot Header: double hypot(double x,double y); Beschreibung: Berechnet die Hypotenuse eines rechtwinkligen Dreiecks. hypot berechnet den Wert z, wobei gilt: z2 = x2 + y2 und z >= 0. Dies entspricht der Länge der Hypotenuse eines rechtwinkligen Dreiecks, dessen Kathete und Ankathete die Längen x bzw. y haben. Rückgabewert: Bei fehlerfreier Ausführung wird z als double (hypot) zurückgeliefert. Im Falle eines Fehlers (zum Beispiel bei einem Überlauf) liefert hypot HUGE_VAL zurück, und die globale Variable errno wird auf folgenden Wert gesetzt: ERANGE Ergebnis außerhalb des gültigen Bereichs Die Fehlerbehandlung für hypot kann über die Funktion _matherr modifiziert werden. 1.1.2.2.3 _logb Header: double _logb(double d); Beschreibung: Extrahiert den Exponentialwert eines Gleitkommaarguments. Wenn das Argument nicht normalisiert ist, wird es behandelt, als ob es normalisiert wäre. Rückgabewert: Der Rückgabewert ist der Exponent des übergebenen Wertes. 1.1.2.2.4 Bessel-Funktionen Syntax: double double double double double double double double double double double double _j0(double _j1(double _jn(int n, _y0(double _y1(double _yn(int n, _i0(double _i1(double _in(int n, _k0(double _k1(double _kn(int n, x); x); double x); x); double x); x); double x); x); double x); x); x); x); Beschreibung: Diese Funktionen berechnen die Bessel- Funktionen. Die Funktionen _j0, _j1 und _jn berechnen die Besselfunktionen der ersten Art mit Ordnung 0,1 oder n. Die Funktionen _y0, _y1 und _yn berechnen Besselfunktionen der zweiten Art mit Ordnung 0,1 oder n. Die zugrundeliegenden Funktionen lauten © XOn Siftware GmbH, 2008 1.1 Programmierreferenz 18 (Besselfunktion erster Art) (Besselfunktion zweiter Art) Die Funktionen _i0, _i1 und _in berechnen die modifizierten Besselfunktionen der ersten Art mit Ordnung 0,1 oder n. Die Funktionen _k0, _k1 und _kn berechnen die modifizierten Besselfunktionen der zweiten Art mit Ordnung 0,1 oder n. (modifizierte Besselfunktion erster Art) (modifizierte Besselfunktion zweiter Art) Das Argument x muß positiv sein. Eine detailierte Beschreibung der Besselfunktionen findet sich in mathematischen Formelsammlungen wie Taschenbuch der Mathematik (Bronstein/ Semendjajew; Verlag Harri Deutsch; Thun und Frankfurt/Main). Diese Funktionen finden allgemein Verwendung in der Theorie elektromagnetischer Wellen. Rückgabewert: Diese Funktionen liefern den Wert einer Besselfunktion an der Stelle x. 1.1.2.2.5 beta Syntax: double beta(double z,double w); Beschreibung: errechnet den Wert der Betafunktion nach der Formel Rückgabewert: Wert der Funktion. 1.1.2.2.6 betai Syntax: double betai(double a,double b,double x); Beschreibung: errechnet den Wert der unvollständigen Beta- Funktion nach der Formel Rückgabewert: Wert der Funktion. © XOn Siftware GmbH, 2008 19 Referenzhandbuch 1.1.2.2.7 binom Syntax: double binom(double p,int k,int n); Beschreibung: errechnet die kumulative Binomialverteilung mit der unvollständigen Beta- Funktion. Dieses Verfahren ist für großes n schneller als die direket Berechnung der Binomialsumme. Der Zusammenhang von Binomialsumme und Betafunktion lautet wie folgt: Rückgabewert: Wert der Funktion. 1.1.2.2.8 chi2_p Syntax: double chi2_p(double x2,double ny); Beschreibung: errechnet die Chi-Quadrat Wahrscheinlichkeitsfunktion nach der Formel Rückgabewert: Wert der Funktion. 1.1.2.2.9 chi2_q Syntax: double chi2_q(double x2,double ny); Beschreibung: errechnet die komplementäre Chi-Quadrat Wahrscheinlichkeitsfunktion nach der Formel Rückgabewert: Wert der Funktion. 1.1.2.2.10 erf Syntax: double erf(double x); Beschreibung: errechnet die Fehlerfunktion E nach der Formel Rückgabewert: © XOn Siftware GmbH, 2008 1.1 Programmierreferenz 20 Wert der Fehlerfunktion. 1.1.2.2.11 erfc Syntax: double erf(double x); Beschreibung: errechnet die komplementäre Fehlerfunktion E nach der Formel Rückgabewert: Wert der Fehlerfunktion. 1.1.2.2.12 f_distr Syntax: double f_distr(double t,double n1,double n2); Beschreibung: errechnet die Wahrscheinlichkeitsfunktion einer F- Verteilung nach der Formel Rückgabewert: Wert der Funktion. 1.1.2.2.13 frexp Header: double frexp(double x,int* exponent); Beschreibung: Ermittelt die Mantisse und den Exponenten einer Gleitkommazahl. frexp berechnet zu x die Mantisse m (ein double-Wert, dessen absoluter Betrag größer/gleich 0.5 und kleiner als 1.0 ist) und den Integerwert n so, daß die Gleichung x = m * 2n gilt. Der Exponent n wird in dem Integer gespeichert, auf den der Parameter exponent zeigt. Rückgabewert: frexp liefert die Mantisse m zurück. Die Fehlerbehandlung für frexp kann über die Funktion _matherr modifiziert werden. 1.1.2.2.14 gammp Syntax: double gammp(double a,double x); Beschreibung: errechnet die unvollständige Gammafunktion P nach der Formel © XOn Siftware GmbH, 2008 21 Referenzhandbuch Rückgabewert: Wert der Gammafunktion. 1.1.2.2.15 gammq Syntax: double gammq(double a,double x); Beschreibung: errechnet die komplementären unvollständige Gammafunktion Q nach der Formel Rückgabewert: Wert der Gammafunktion. 1.1.2.2.16 gasdev Synatx: double gasdev(int *idum); Beschreibung: liefert eine normalverteilte Zufallszahl; Nach dem Box- Muller- Verfahren werden normalverteilte Zufallszahlen erzeugt. Rückgabewert: Zufallszahl. 1.1.2.2.17 modf Header: double modf(double x,double* ipart); Beschreibung: Teilt einen double- Wert in Vor- und Nachkommaanteil auf. modf spaltet den double-Wert x in den ganzzahligen Vorkomma- und den Nachkomma-Anteil. modf speichert den ganzzahligen Vorkomma-Anteil in ipart und liefert den Nachkomma-Anteil zurück. Rückgabewert: modf liefert den Nachkomma-Anteil des Arguments x zurück. 1.1.2.2.18 poisson Syntax: double poisson(double x,double k); Beschreibung: errechnet die kumulative Poisson- Wahrscheinlichkeitsfunktion nach der Formel Rückgabewert: © XOn Siftware GmbH, 2008 1.1 Programmierreferenz Wert der Funktion. 1.1.2.2.19 student Syntax: double student(double t,double n1); Beschreibung: errechnet die Wahrscheinlichkeitsfunktion einer Student- Verteilung nach der Formel Rückgabewert: Wert der Funktion. 1.1.3 String-Manipulation Stringmanipulation Die hier behandelten Funktionen ermöglichen das bearbeiten von Strings. Funktionen : · atoi · atol · atof · strcat · strchr · strcmp · strcoll · strcpy · strcspn · strerror · stricmp · strlen · strlwr · strncat · strncmp · strncpy · _strnicmp · _strnset · strpbrk · strrchr · _strrev · _strset · strspn · strstr · strtok · strtol · _strupr · strxfrm · sprintf · sscanf © XOn Siftware GmbH, 2008 22 23 Referenzhandbuch 1.1.3.1 _strnicmp Syntax: int _strnicmp(const char *s1, const char *s2, int maxlen); Beschreibung: Vergleicht eine bestimmte Anzahl von Zeichen zweier Strings ohne Unterscheidung zwischen Groß- und Kleinschreibung. strnicmp vergleicht (in einem signed-Vergleich) maximal maxlen Zeichen von s1 und s2 miteinander. Es wird kein Unterschied zwischen Groß- und Kleinschreibung gemacht. Beginnend mit dem ersten Zeichen wird zeichenweise verglichen, bis die korrespondierenden Zeichen ungleich sind oder das Ende des Strings erreicht wird. Zurückgeliefert wird ein Wert (<0, 0 oder >0), der auf dem Vergleich von s1 (oder eines Teils davon) mit s2 (oder eines Teils davon) basiert. Rückgabewerte (Integer-Wert) <0 wenn s1 kleiner als s2 ist =0 wenn s1 gleich s2 ist >0 wenn s1 größer als s2 ist 1.1.3.2 _strnset Syntax: char *_strnset(char *s, int ch, int n); Beschreibung: Füllt eine angegebene Anzahl von Zeichen eines Strings mit einem bestimmten Zeichen. strnset überschreibt die ersten n Zeichen des durch s angegebenen Strings mit dem Zeichen ch. Wenn n > strlen(s) ist, dann wird n durch strlen(s) ersetzt. strnset beendet die Operation, wenn n Zeichen überschrieben wurden oder wenn das abschließende Nullzeichen erreicht wird. Rückgabewert: strnset liefert s zurück. 1.1.3.3 _strrev Syntax: char *_strrev(char *s); Beschreibung: Dreht die Reihenfolge der Zeichen eines String um. _strrev spiegelt die Reihenfolge sämtlicher Zeichen des über s angegebenen String (aus "Meier" wird "reieM"). Das abschließende Nullzeichen bleibt unverändert. Rückgabewert: strrev liefert einen Zeiger auf den gespiegelten String zurück. 1.1.3.4 _strset Syntax: char *_strset(char *s, int ch); Beschreibung: Überschreibt sämtliche Zeichen eines String mit einem bestimmten Zeichen. _strset überschreibt sämtliche Zeichen des durch s angegebenen String mit dem Zeichen ch und bricht erst beim abschließenden Nullzeichen ab. Rückgabewert: © XOn Siftware GmbH, 2008 1.1 Programmierreferenz 24 _strset liefert s zurück. 1.1.3.5 _strupr Syntax: char *_strupr(char *s); Beschreibung: _strupr konvertiert die Kleinbuchstaben des durch s angegebenen Strings in Großbuchstaben. Es werden also die Buchstaben a bis z in die Buchstaben A bis Z konvertiert und alle anderen Zeichen (insbesondere die deutschen Umlaute) bleiben unverändert. Rückgabewert: _strupr liefert s zurück. 1.1.3.6 atoi Header: int atoi(char* s); Beschreibung: Konvertiert einen String in eine Integerzahl. atoi konvertiert den durch s bezeichneten String in einen int-Wert. Die Funktion erkennt die folgenden Elemente (in der aufgeführten Reihenfolge): · optionale führende Leerzeichen und/oder Tabulatoren; · ein optionales Vorzeichen; · eine Ziffernfolge. Der String muß also folgendem generischen Format entsprechen: [whitespace][sign][ddd] Die Konvertierung endet beim ersten nicht interpretierbaren Zeichen. Eine Prüfung auf eventuelle Überläufe findet nicht statt (die Funktionsergebnisse sind dann undefiniert) Rückgabewert atoi liefert das Ergebnis der Konvertierung oder 0, wenn der zu interpretierende String nicht zu einem Integerwert konvertierbar ist. 1.1.3.7 atol Header: int atol(char* s); Beschreibung: Konvertiert einen String in einen long-Wert atol konvertiert den durch s bezeichneten String in einen long-Wert. atol erkennt die folgenden Elemente (in der aufgeführten Reihenfolge): · optionale führende Leerzeichen und/oder Tabulatoren; · ein (optionales) Vorzeichen; · eine Ziffernfolge. Der String muß also folgendem generischen Format entsprechen: [whitespace][sign][ddd] © XOn Siftware GmbH, 2008 25 Referenzhandbuch Die Konvertierung endet beim ersten nicht interpretierbaren Zeichen. Eine Prüfung auf eventuelle Überläufe findet nicht statt (die Funktionsergebnisse sind dann undefiniert). Rückgabewert atol liefert das Ergebnis der Konvertierung zurück. Wenn der zu interpretierende String nicht zu einem long-Wert konvertiert werden kann, liefert atol 0 zurück. 1.1.3.8 atof Header: double atof(char* s); Beschreibung: Konvertiert einen String in eine Gleitkommazahl. atof konvertiert den durch s bezeichneten String in eine Gleitkommazahl und liefert das Ergebnis als double. Die Funktion erkennt dabei folgende Elemente in der Zeichendarstellung der Gleitkommazahl: · eine optionale Folge von Leerzeichen und/oder Tabulatoren; · ein optionales Vorzeichen; · eine Folge von Ziffern und einen optionalen Dezimalpunkt (die Ziffern können vor oder hinter dem Dezimalpunkt stehen); · einen optionalen Exponenten e oder E, gefolgt von einem optional vorzeichenbehafteten Integerwert. Der String muß dem folgenden Format entsprechen: [whitespace][sign][ddd][.][ddd][e|E[sign]ddd] atof erkennt zus/auml;tzlich +INF und -INF als positiv bzw. negativ Unendlich sowie +NAN und NAN (für "Not a Number"). Die Konvertierung bricht beim ersten nicht interpretierbaren Zeichen ab. strtod und _strtold arbeiten ähnlich wie atof, erlauben aber eine bessere Fehlerbehandlung und werden daher in manchen Anwendungen bevorzugt. Rückgabewert Die Funktion liefern den konvertierten Wert des Eingabestrings zurück. Im Fall eines Überlaufs liefert atof den Wert +HUGE_VAL oder -HUGE_VAL (bzw. _LHUGE_VAL) zurück, und errno wird auf ERANGE gesetzt (Resultat außerhalb des zulässigen Bereichs). Die Routine _matherr (bzw. _matherrl) wird nicht aufgerufen. 1.1.3.9 sprintf Syntax: int sprintf(char *buffer, const char *format[, argument, ...]); Beschreibung: Schreibt formatierte Ausgabe in einen String. sprintf übernimmt eine Reihe von Argumenten, auf die jeweils eine Formatieranweisung angewendet wird. Die Formatieranweisungen sind in dem String enthalten, auf den format zeigt. Die so formatierten Daten werden in den durch buffer angegebenen String geschrieben. sprintf wendet die erste Formatieranweisung auf das erste Argument an, die zweite auf das zweite Argument usw. Die Anzahl der Formatieranweisungen und die der Argumente muß übereinstimmen. Rückgabewert: sprintf liefert die Anzahl der ausgegebenen Zeichen zurück, wobei das abschließende Nullzeichen nicht mitgezählt wird. Im Fehlerfall ist das Funktionsergebnis -1 (EOF). Formatieranweisungen: Die Formatieranweisungen für sprintf haben die folgende Syntax: © XOn Siftware GmbH, 2008 1.1 Programmierreferenz 26 % [flags] [width] [.prec] [F|N|h|l|L] type_char Jede Anweisung beginnt mit einem Prozentzeichen (%). Auf dieses Zeichen folgen (in der angegebenen Reihenfolge) optionale Bestandteile des Format-Strings. In der folgenden Tabelle sind die optionalen Bestandteile einer Formatieranweisung und ihre Bedeutung aufgelistet: [flags] Nutzung: optional Wirkung: Flag-Zeichen Ausrichtung der Ausgabe, Vorzeichen, Dezimalpunkt, folgende Nullen, oktale und hexadezimale Präfixe [width] Nutzung: optional Wirkung: Width specifier Minimalzahl der ausgegebenen Zeichen, notfalls mit Leerzeichen oder Nullen aufgefüllt [prec] Nutzung: optional Wirkung: Präzisionsangabe Maximalzahl der ausgegebenen Zeichen. Bei Integerwerten die Minimalzahl der ausgegenbenen Ziffern [F|N|h|l|L] Nutzung: optional Wirkung: Größenmodifizieres Verändern der Standardgröße des Arguments: N F h l near- Zeiger far-Zeiger short int long type_char Nutzung: optional Wirkung: Konvertierungstyp-Zeichen Flags: Sie können in jeder beliebigen Reihenfolge und Kombination auftreten: Wirkung: Stellt das Ergebnis linksbündig dar und füllt von rechts mit Nullen auf. Wenn dieses Flag nicht gesetzt ist, wird das Ergebnis linksbündig dargestellt und von rechts mit Nullen oder Leerzeichen aufgefüllt. + Wirkung: Die Ergebnisse von vorzeichenbehafteten Konvertierungen beginnen immer mit einem Plus- oder Minuszeichen (+ oder -). Leerzeichen Wirkung: Bei nicht-negativen Werten beginnt die Ausgabe immer mit einem Leerzeichen und nicht mit einem Pluszeichen. negative Werte beginnen weiterhin mit einem Minuszeichen. # Wirkung: Legt fest, daß arg konvertiert wirt, wobei das Format alternative Form verwendet wird. Hinweis: Die Option (+) hat vor der Option Leerzeichen() Vorrang, wenn beide zusammen gesetzt sind. Breitenangaben width Die Breitenangabe legt die minimale Zahl auszugebender Zeichen fest. Die Breite kann auf zwei Arten festgelegt werden: direkt, innerhalb des Format-Strings indirekt, über ein Sternchen (*). Bei der Verwendung von * erwartet sprintf ein zusätzliches Argument, das in der Liste direkt vor dem auszugebenden Wert stehen und den Typ int haben muß. Wenn eine Ausgabe weniger Zeichen erzeugt als durch die Breitenangabe festgelegt ist, dann fügt sprintf (abhängig von den © XOn Siftware GmbH, 2008 27 Referenzhandbuch Flags) führende bzw. abschließende Leerzeichen ein; erzeugt die Ausgabe dagegen mehr Zeichen, als durch die Breitenangabe festgelegt ist, dann wird diese einfach ignoriert. Ausgaben werden durch die Breitenangabe in keinem Fall begrenzt oder abgeschnitten. n Wirkung: sprintf gibt mindestens n Zeichen aus und stellt nötigenfalls Leerzeichen voran (Standard) bzw. fügt abschließende Leerzeichen an (Flag -). 0n Wirkung: sprintf gibt mindestens n Zeichen aus und stellt nötigenfalls eine entsprechende Anzahl führender Nullen voran. * Wirkung: Die Breitenangabe steht in der Parameterliste direkt vor dem auszugebenden Wert. Präzisionsangaben Die sprintf -Präzisionsangaben setzen die maximale Anzahl der zu druckenden Zeichen (oder die miminale Anzahl von Integer-Ziffern). Eine sprintf-Präzisionsangabe wird immer mit einem Dezimalpunkt (.) eingeleitet und so von einer eventuell vorangestellten Breitenangabe getrennt. Dann wird wie bei [width] die Präzision auf eine von zwei Arten angegeben: direkt, innerhalb des Format-Strings indirekt, über ein Sternchen (*). Wenn Sie ein * für die Präzisionsangabe verwenden, gibt das nächste Argument im Aufruf (als int behandelt) die Präzision an. Wenn Sie Sternchen für die Breite, für die Präzision oder für beides verwenden, muß das Breitenargument unmittelbar hinter den Angaben folgen, danach das Präzisionsargument und schließlich das Argument für die zu konvertierenden Daten. [.prec] Wirkung auf die Ausgabe (none) Wirkung: Die Standardwerte werden verwendet: =1 für d,i,o,u,x und X =6 für e,E und f =alle signifikanten Stellen für g und G =Ausgabe bis zum ersten Nullzeichen für s =keine Auswirkungen auf c .0 Wirkung: Standardwerte für d,i,o,u und x, keine Ausgabe des Dezimalpunkts für e,E und f. .n Wirkung: Ausgabe von n Zeichen bzw. n signifikanten Dezimalstellen. Falls der Ausgabewert mehr als n Zeichen umfaßt, wird die Ausgabe unter Umständen abgeschnitten oder gerundet. .* Wirkung: Die Präzisionsangabe ist in der Parameterliste enthalten und muß dort als int vor dem auszugebenden Wert stehen. Für ein Feld wird kein numerisches Zeichen ausgegeben (d.h., das Feld ist leer), wenn die folgenden Bedingungen zutreffen: wenn eine Präzision explizit mit 0 angegeben wird wenn es sich um ein Integerformat handelt (d, i, o, u, oder x) wenn der auszugebende Wert 0 ist Wirkung von [.prec] auf die Konvertierung: Typzeichen d i o u x,X Wirkung von [.prec] (.n) auf die Konvertierung Mindestens n Ziffern werden ausgegeben. Nötigenfalls stellt sprintf führende Nullen voran. Falls der auszugebende Wert mehr Stellen umfaßt. als durch n angeggeben, wird der angegebene Wert nicht abgeschnitten. © XOn Siftware GmbH, 2008 1.1 Programmierreferenz e,E E 28 n legt die Mindestanzahl der Stellen nach dem Komma fest. Die letze Stelle wird gerundet. n legt die Mindestanzahl signifikanter Dezimalstellen fest (inklusive der Stellen vor dem Komma). Die Ausgabe von n hat keine Wirkung. Es werden höchstens n Zeichen ausgegeben. f,g,G c s Größenmodifizierer Die folgenden Modifizierer legen fest, wie printf-Funktionen das nächste Argument arg[f] interpretieren. Modifizierer F N h l L Typ von arg Zeiger (p, s,und n) " diouxX diouxX eEfgG Wirkung auf die Interpretation von arg Ein far-Zeiger Ein near-Zeiger Ein short int Ein long int Ein long double Hinweis: N kann mit keiner Konvertierung im Speichermodell Huge verwendet werden. Diese Modifizierer legen fest, wie alle printf-Funktionen den Datentyp des korrespondierenden Eingabearguments arg interpretieren. Sowohl F als auch N reinterpretieren die Eingabevariable arg. Normalerweise ist arg für eine %p-, %s- oder %n-Konvertierung ein Zeiger der für das Speichermodell voreingestellten Größe.h, l und L überschreiben die Standardgröße der numerischen Dateneingabeargumente. Weder h noch l beeinflussen Zeichen- (c,s) oder Zeigertypen (p,n). Typ-Konvertierungszeichen: Die Information in dieser Tabelle basiert auf der Annahme, daß in der Formatieranweisungkeine Flag-Zeichen, Breitenangaben, Präzisionsangaben, oder Größenmodifizierer enthalten waren. Hinweis: Bestimmte Konventionen begleiten einige dieser Formatieranweisungen. Numerische Werte: Typzeichen d i o u x X Erwartete Eingabe Integer Integer Integer Integer Integer Integer f Gleitkomma e Gleitkomma g Gleitkomma E Gleitkomma G Gleitkomma Ausgabeformat signed int (dezimal) signed int (dezimal) unsigned int (oktal) unsigned int (dezimal) unsigned int (hexadezimal), Buchstaben a bis f unsigned int (hexadezimal), Buchstaben A bis F vorzeichenbehafteter Wert der Form [-]dddd.dddd. vorzeichenbehafteter Wert der Form [-]d.dddde[+/-]ddd vorzeichenbehafteter Wert im e- oder f-Format. siehe e, aber mit dem Zeichen E vor dem Exponenten siehe e, aber mit dem Zeichen E vor dem Exponenten Hinweis zu g: Präzision gibt die Anzahl signifikanter Ziffern an. Abschließende Nullen und Dezimalpunkt werden nur ausgegeben, wenn es nötig ist. Zeichen: © XOn Siftware GmbH, 2008 29 Referenzhandbuch Typzeichen c Erwartete Eingabe Zeichen s String-Zeiger % (nichts) Zeiger: Typzeichen Erwartete Eingabe n *int p Zeiger Ausgabeformat einzelnes Zeichen Ausgabe bis NULL oder bis Zeichenzahl=[.prec] Ausgabe des Zeichens % Ausgabeformat Speichert an der Position, auf die das Eingabeargument zeigt, die Anzahl derbis jetzt ausgegebenen Zeichen. Gibt das Eingabeargument als Zeiger in hexadezimaler Form aus (nearZeiger als YYYY, far-Zeiger als XXXX:YYYY). 1.1.3.10 sscanf Syntax: int sscanf(const char *buffer, const char *format,...); Beschreibung: Liest und formatiert Eingaben aus einem String. sscanf liest eine Reihe von Eingabefeldern zeichenweise aus dem durch buffer angegebenen String. Auf jedes Feld wird dann die entsprechende Formatieranweisung angewendet, die im durch format angegebenen Format-String enthalten ist. Gelesene Eingaben werden an den Adressen gespeichert, die in den Parametern hinter format übergeben werden. Die Anzahl von Eingabefeldern muß mit der Anzahl von Formatieranweisungen und Adressen übereinstimmen. sscanf kann das Lesen eines bestimmten Eingabefeldes abbrechen, bevor das normale Feldende (ein Whitespace-Zeichen) erreicht ist. sscanf kann auch aus verschiedenen Gründen den Lesevorgang vollständig abbrechen. Rückgabewert: sscanf liefert die Anzahl der fehlerfrei gelesenen, konvertierten und gespeicherten Felder zurück. Gelesene, aber nicht gespeicherte Felder werden nicht mitgezählt. Der Versuch, über das Ende des Strings hinauszulesen, liefert den Wert EOF. Wurden keine Felder gespeichert, so wird 0 zurückgeliefert. sscanf-Formatieranweisungen: In ...scanf-Format-Strings, haben Formatieranweisungen die folgende Form: % [*] [width] [F|N] [h|l|L] type_char Jede Formatieranweisung beginnt mit dem Prozentzeichen (%). Nach dem Prozentzeichen % folgen in der unten stehenden Reihenfolge: [*] Nutzung: Optional Wirkung:Zeichen für Zuweisungsunterdrückung. Unterdrückt die Zuweisung des nächsten Eingabefeldes. [width] Nutzung: Optional Wirkung: Breitenangabe. Maximale Anzahl der zu lesenden Zeichen. Es können weniger Zeichen gelesen werden, wenn die ...scanf-Funktion auf ein Whitespace- Zeichen oder ein nichtauswertbares Zeichen trifft . [F|N] © XOn Siftware GmbH, 2008 1.1 Programmierreferenz 30 Nutzung: Optional Wirkung: Zeigergrößenmodifikation. Überschreibt die Standardgröße der Adresse: N = near-Zeiger F = far-Zeiger [h|l|L] Nutzung: Optional Wirkung: Argumenttypmodifikation : h short int long int, wenn type_char eine Integerl Konvertierung festlegt. double, wenn type_char eine l Gleitkommakonvertierung festlegt. long double, (nur mit L Gleitkommakonvertierung zulässig) type_char Nutzung: Obligatorisch Wirkung: Typzeichen Zeichen für Zuweisungsunterdrückung Das Zeichen für die Zuweisungsunterdrückung ist ein Sternchen (*), nicht zu verwechseln mit dem Zeiger-Operator * von C. Wenn in einer Formatieranweisung dem Stern ein Prozentzeichen (%) folgt, wird das nächste Eingabefeld gelesen, jedoch nicht dem nächsten Adressenargument zugewiesen. Es wird davon ausgegangen, daß die unterdrückten Eingabedaten von dem Typ sind, die das Typzeichen nach dem Stern angibt. Breitenangaben Die Breitenangabe (n), ein dezimaler Integer-Wert, gibt die maximale Anzahl von Zeichen an, die vom aktuellen Eingabefeld gelesen werden sollen. Es werden bis zu n Zeichen gelesen, konvertiert und im Argument der aktuellen Adresse gespeichert. Wenn das Eingabefeld weniger als n Zeichen enthält, liest die ...scanf-Funktion alle Zeichen im Feld und fährt dann mit dem nächsten Feld und der nächsten Formatieranweisung fort. Die Auswirkungen der Suche nach zeichenmäßiger Übereinstimmung und die Auswirkungen der unterdrückten Zuweisungen sind nicht exakt bestimmbar. Wenn die ...scanf-Funktion auf ein Whitespace-Zeichen oder ein nichtkonvertierbares Zeichen trifft, ehe sie "width" Zeichen gelesen hat, werden die bis dahin gelesenen Zeichen gelesen, konvertiert und gespeichert, woraufhin die nächste Formatieranweisung gesucht wird. Ein nicht-konvertierbares Zeichen ist eines, das nicht im angegebenen Format konvertiert werden kann (8 oder 9 im oktalen Format; J oder K im hexadezimalen oder dezimalen Format usw.). Typzeichen Die Information in der folgenden Tabelle basiert auf der Annahme, daß keine optionalen Zeichen, Anweisungen oder Modifikationen (*, Breite oder Größe) in der Formatieranweisung enthalten sind. Hinweis: Einige Formatieranweisungen erwarten bestimmte Konventionen. Zahlen Typ d D e,E f g,G o Erwartete Eingabe Dezimal Integer Dezimal Integer Gleitkomma Gleitkomma Gleitkomma Oktal Integer © XOn Siftware GmbH, 2008 Argumenttyp Zeiger auf int (int *arg) Zeiger auf long (long *arg) Zeiger auf float (float *arg) Zeiger auf float (float *arg) Zeiger auf float (float *arg) Zeiger auf int (int *arg) 31 Referenzhandbuch O I u Oktal Integer Dezimal, oktal oder hexadezimal Integer Dezimal, oktal, od. hexadezimal Integer Dezimal Integer vorzeichenlos U Dezimal Integer vorzeichenlos x X Hexadezimal Integer Hexadezimal Integer i Zeiger auf long (long *arg) Zeiger auf int (int *arg) Zeiger auf long (long *arg) Zeiger auf unsigned int (unsigned int *arg) Zeiger auf unsigned long (unsignedlong *arg) Zeiger auf int (int *arg) Zeiger auf int (int *arg) Zeichen Typ s Erwartete Eingabe Zeichen-String c Zeichen % %-Zeichen Argumenttyp Zeiger auf Array mit chars (char arg[]) Zeiger auf char (char *arg), wenn eine Feldbreite zusammen mit dem Zeichen c (z.B. %5c) gegeben ist. Zeiger auf Array mit W-Zeichen (char arg[W]) Keine Konvertierung; % wird gespeichert Zeiger Typ n p Erwartete Eingabe Argumenttye Zeiger auf int (int *arg): Die Anzahl der erfolgreich gelesenen Zeichen (bis zu %n) wird in int gespeichert. Zeiger auf ein Objekt (far* or near*)%p Hexadezimale Form : YYYY:ZZZZ oder Standardkonvertierung, Zeigergröße ZZZZ abhängig vom Speichermodell 1.1.3.11 strcat Syntax: char *strcat(char *dest, const char *src); Beschreibung: Hängt einen String an einen anderen. strcat hängt sämtliche Zeichen von src an die bereits in dest vorhandenen Zeichen an. Die Länge des resultierenden Strings ist strlen(dest) + strlen(src). Rückgabewert: Zurückgeliefert wird ein Zeiger auf den zusammengefügten String. 1.1.3.12 strchr Syntax: char *strchr(const char *s, int c); Beschreibung: Sucht einen String nach dem ersten Auftreten eines bestimmten Zeichens ab. strchr sucht den über s angegebenen String nach dem Zeichen c ab, wobei die Suche mit dem ersten Zeichen von s beginnt. strchr findet die erste Fundstelle des Zeichens c im String s. Das abschließende Nullzeichen wird zum Inhalt des String gezählt und als letztes verglichen, so daß © XOn Siftware GmbH, 2008 1.1 Programmierreferenz 32 ein Aufruf wie strchr(strs,0)einen Zeiger auf das abschließende Nullzeichen von strs liefert. Rückgabewert: strchr liefert einen Zeiger auf die erste Fundstelle des Zeichens c im String s zurück bzw. den Wert NULL, wenn der String dieses Zeichen nicht enthält. 1.1.3.13 strcmp Syntax: int strcmp(const char *s1, const char *s2); Beschreibung: Vergleicht zwei Strings miteinander. strcmp führt mit den Inhalten von s1 und s2 einen UnsignedVergleich durch. Beginnend mit dem ersten Zeichen werden die beiden Strings zeichenweise verglichen, bis zwei korrespondierende Zeichen ungleich sind oder das Ende der Strings erreicht wird. Rückgabewerte (Integer-Wert) <0 =0 >0 wenn s1 kleiner als s2 ist wenn s1 gleich s2 ist wenn s1 größer als s2 ist 1.1.3.14 strcoll Syntax: int strcoll(char *s1, char *s2); Beschreibung: Vergleicht zwei Strings. strcoll vergleicht den String, auf den s1 zeigt, mit dem String, auf den s2 zeigt. Dabei wird die in der Kategorie 1 (LC_COLLATE) der aktuellen Locale-Einstellung gesetzte Vergleichsreihenfolge verwendet. Rückgabewerte (Integer-Wert) <0 =0 >0 wenn s1 kleiner als s2 ist wenn s1 gleich s2 ist wenn s1 größer als s2 ist 1.1.3.15 strcpy Syntax: char *strcpy(char *dest, const char *src); Beschreibung: Kopiert einen String in einen anderen. strcpy kopiert den Inhalt des über src angegebenen Strings in den durch dest angegebenen Speicherbereich. Das abschließende Nullzeichen von src wird als letztes Zeichen kopiert. Rückgabewert: strcpy liefert dest zurück. © XOn Siftware GmbH, 2008 33 Referenzhandbuch 1.1.3.16 strcspn Syntax: int strcspn(const char *s1, const char *s2); Beschreibung: Liefert die Länge des Teilstrings zurück, der keines der Zeichen einer bestimmten Zeichenmenge enthält. strcspn liest den String s1 zeichenweise bis eines der in s2 enthaltenen Zeichen auftritt. Die Anzahl der in s1 gelesenen Zeichen bildet den Rückgabewert. Das abschließende Nullzeichen wird nicht mitgezählt. Beide Strings werden durch den Suchvorgang nicht verändert. Rückgabewert: strcspn liefert die Länge des Teilstrings von s1 zurück, der nur aus Zeichen besteht, die in s2 nicht vorkommen. 1.1.3.17 strerror Syntax: char *strerror(int errnum); Beschreibung: Liefert einen Zeiger auf einen String mit einer Fehlermeldung. strerror erwartet einen int-Wert im Parameter errnum und liefert einen Zeiger auf einen statischen String zurück, der die zum Wert von errnum gehörige Fehlermeldung enthält. Rückgabewert: strerror liefert einen Zeiger auf den generierten Fehlerstring. Der String wird in einem statischen Puffer erzeugt, der bei jedem Aufruf dieser Funktion überschrieben wird. 1.1.3.18 stricmp Syntax: int stricmp(const char *s1, const char *s2); Beschreibung: Vergleicht zwei Strings ohne Unterscheidung zwischen Groß- und Kleinschreibung. stricmp führt mit den Inhalten von s1 und s2 einen unsigned-Vergleich durch. Beginnend mit dem ersten Zeichen wird solange zeichenweise verglichen, bis die korrespondierenden Zeichen ungleich sind oder das Ende der Strings erreicht wird. Beim Vergleich werden Groß- und Kleinbuchstaben nicht unterschieden. Zurückgeliefert wird ein Wert(<0, 0 oder >0) der auf dem Vergleich von s1 (oder eines Teils davon) mit s2 (oder eines Teils davon) basiert. Rückgabewerte (Integer-Wert) <0 =0 >0 wenn s1 kleiner als s2 ist wenn s1 gleich s2 ist wenn s1 größer als s2 ist 1.1.3.19 strlen Syntax: int strlen(const char *s); Beschreibung: Berechnet die Länge eines Strings. strlen berechnet die Länge des durch s angegebenen Strings. © XOn Siftware GmbH, 2008 1.1 Programmierreferenz 34 Rückgabewert: strlen liefert die Anzahl der Zeichen des Strings s zurück. Das abschließende Nullzeichen wird dabei nicht mitgezählt. 1.1.3.20 strlwr Syntax: char* _strlwr(char* string); Beschreibung: Die Funktion _strlwr wandeln jeden Großbuchstaben im null- terminierten Eingabestring in einen Kleinbuchstaben. Andere Zeichen werden nicht verändert. Rückgabewert: Diese Funktion liefert einen Zeiger auf den konvertierten String. 1.1.3.21 strncat Syntax: char *strncat(char *dest, const char *src, int maxlen); Beschreibung: Hängt einen Teilstring an einen anderen an. strncat hängt die ersten maxlen Zeichen von src an die bereits in dest vorhandenen Zeichen an. Die Operation wird beendet, wenn entweder maxlen Zeichen kopiert wurden oder das Ende von src erreicht ist. Als letztes schreibt strncat grundsätzlich ein Nullzeichen in dest. Die maximale Länge des resultierenden Strings beträgst strlen(dest) + maxlen. Rückgabewert: strncat liefert dest zurück. 1.1.3.22 strncmp Syntax: int strncmp(const char *s1, const char *s2, int maxlen); Beschreibung: Vergleicht eine bestimmte Anzahl von Zeichen zweier Strings miteinander. strncmp führt den gleichen unsigned-Vergleich wie strcmp durch, vergleicht aber maximal die ersten maxlen Zeichen von s1 und s2 miteinander. Beginnend mit dem ersten Zeichen wird zeichenweise verglichen, bis die korrespondierenden Zeichen ungleich sind oder maxlen Zeichen untersucht worden sind. Rückgabewerte (Integer-Wert) <0 =0 >0 wenn s1 kleiner als s2 ist wenn s1 gleich s2 ist wenn s1 größer als s2 ist 1.1.3.23 strncpy Syntax: char *strncpy(char *dest, const char *src, int maxlen); Beschreibung: © XOn Siftware GmbH, 2008 35 Referenzhandbuch Kopiert eine bestimmte Anzahl von Bytes von einem String in einen anderen, wobei strncpy kopiert bis zu maxlen Zeichen des über src angegebenen Strings in den durch dest angegebenen Speicherbereich. strncpy schreibt immer genau maxlen Zeichen - wenn src weniger als maxlen Zeichen enthält, wird eine entsprechende zusätzliche Anzahl von Nullzeichen in dest angehängt. Wenn src mehr als maxlen Zeichen umfaßt, bleibt der nach dest kopierte String ohne ein abschließendes Nullzeichen. Rückgabewert: strncpy liefert dest zurück. 1.1.3.24 strpbrk Syntax: char *strpbrk(const char *s1, const char *s2); Beschreibung: Sucht einen String nach dem ersten Vorkommen bestimmter Zeichen ab. strpbrk sucht den über s1 angegebenen String nach dem ersten Vorkommen eines in s2 enthaltenen Zeichens ab. Rückgabewert: Die Funktion liefert einen Zeiger auf die erste Fundstelle eines Zeichens aus s2 zurück. Erscheint kein Zeichen aus s2 in s1, dann liefert strpbrk den Wert NULL zurück. 1.1.3.25 strrchr Syntax: char *strrchr(const char *s, int c); Beschreibung: Sucht einen String nach dem letzten Vorkommen eines bestimmten Zeichens ab. strrchr sucht den über s angegebenen String nach dem Zeichen c ab, wobei die Suche mit dem letzten Zeichen von s beginnt. Das abschließende Nullzeichen wird zum Stringinhalt gerechnet und als erstes verglichen. Rückgabewert: strrchr liefert einen Zeiger auf das letzte Vorkommen des Zeichens c in s zurück bzw. den Wert NULL, wenn der String dieses Zeichen nicht enthält. 1.1.3.26 strspn Syntax: int strspn(const char *s1, const char *s2); Beschreibung: Liefert die Länge des Teilstrings von s1 zurück, der ausschließlich aus den in s2 angegebenen Zeichen besteht. Beginnend mit dem ersten Zeichen überprüft die Funktion strspn, ob die Zeichen in s1 Bestandteil von s2 sind. Die Funktion stoppt beim ersten Zeichen von s1, das nicht in s2 enthalten ist. Rückgabewert: strspn liefert die Länge des Teilstrings von s1, der ausschließlich aus Zeichen besteht, die in s2 enthalten sind. © XOn Siftware GmbH, 2008 1.1 Programmierreferenz 36 1.1.3.27 strstr Syntax: char *strstr(const char *s1, const char *s2); Beschreibung: Sucht einen String nach dem Vorkommen eines bestimmten Teilstrings ab. strstr sucht den über s1 angegebenen String nach dem ersten Vorkommen des Teilstrings s2 ab. Rückgabewert: strstr liefert einen Zeiger auf den Beginn von s2 in s1 zurück bzw. den Zeigerwert NULL, wenn s2 in s1 überhaupt nicht vorkommt. 1.1.3.28 strtok Syntax: char *strtok(char *s1, const char *s2); Beschreibung: Sucht einen String nach einer von mehreren Zeichenfolgen ab, die in einem zweiten String definiert sind. strtok betrachtet den über s1 angegebenen String als Folge von null oder mehr Zeichenfolgen (Token), die voneinander durch eines oder mehrere der in s2 definierten Zeichen getrennt sind. Der erste Aufruf von strtok liefert einen Zeiger auf den Beginn der ersten gefundenen Zeichenfolge in s1 zurück und setzt ein Nullzeichen unmittelbar hinter das Ende der Zeichenfolge. Folgende Aufrufe von strtok mit dem Wert NULL anstelle des Arguments s1 liefern die restlichen Zeichenfolgen in s1. s2 kann bei jedem Aufruf von strtok beliebig geändert werden. Rückgabewert: strtok liefert einen Zeiger auf den Beginn der gefundenen Zeichenfolge in s1 zurück. Wenn keine weitere Zeichenfolge gefunden wird, ist der Rückgabewert NULL. 1.1.3.29 strtol Syntax: long strtol(const char *s, char **endptr, int radix); Beschreibung: Konvertiert einen String in einen long-Wert. strtol konvertiert den durch s angegebenen String in einen long-Wert. Der Stringinhalt muß daher als long-Wert interpretierbar sein und das folgende Format haben: [ws] [sn] [0] [x] [ddd] mit: [ws] optionales Whitespace-Zeichen [sn] optionales Vorzeichen (+ oder -) [0] optionale Null (0) [x] optionales x oder X [ddd] optionale Ziffern strtol bricht den Lesevorgang ab, wenn ein Zeichen nicht dem obigen Format entspricht. Liegt radix zwischen 2 und 36, so wird s im Zahlensystem zur Basis radix interpretiert. Ist radix 0, so legen die ersten Zeichen von s die verwendete Basis fest: 1. Zeichen 0 0 1 bis 9 © XOn Siftware GmbH, 2008 2. Zeichen 1 bis 7 x oder X Interpretation Oktalsystem Hexadezimalsystem Dezimalsystem 37 Referenzhandbuch Ist radix gleich 1, kleiner als 0 oder größer als 36, so wird der Parameter als ungültiger Wert interpretiert. Bei Ausgabe ungültiger Werte für radix liefert die Funktion Null zurück und setzt den Zeiger *endptr auf den Stringanfang. Falls der Wert in s als Oktalzahl interpretiert werden soll, werden nur die Zeichen zwischen 0 und 7 erkannt. Soll der Wert in s als Dezimalzahl interpretiert werden, werden nur die Zeichen 0 bis 9 erkannt. Falls der Wert in s als Zahl eines Zahlensystems zu einer anderen Basis interpretiert werden soll, werden nur die Zeichen, die zur Repräsentation von Zahlen dieses Zahlensystems verwendet werden, erkannt. (Beispielsweise nur die Zeichen 0 bis 4, wenn radix gleich 5 ist, ist radix gleich 20, werden nur die Zeichen 0 bis 9 und A bis J erkannt) Wenn endptr ungleich NULL ist, dann wird *endptr auf die Adresse des ersten nicht analysierbaren Zeichens in s gesetzt (*endptr = &abbruch_zeichen). Rückgabewert: strtol liefert das Ergebnis der Konvertierung als long-Wert, im Fehlerfall den Wert 0 zurück. 1.1.3.30 strxfrm Syntax: int strxfrm(char *target, const char *source, int n); Beschreibung: strxfrm transformiert maximal n Zeichen des durch source angegebenen Strings so in den String target, daß die Funktion strcmp, angewendet auf die Ergebnisstrings der Funktion, dieselben Werte zurückliefert wie die Funktion strcoll, angewendet auf die Ausgangsstrings. Einschließlich des abschließenden Nullzeichens werden maximal n Zeichen von source transformiert. Der Ergebnisstring richtet sich nach der Kategorie 1 (LC_COLLATE) der aktuellen Locale-Einstellung (siehe setlocale). Der generierte Spezial-String kann mit anderen Strings desselben Typs byteweise (beispielsweise per strcmp) verglichen werden. Die Vergleichsergebnisse entsprechen dann der aktuellen Locale- Einstellung für Vergleiche. Diese Spezial-Strings können als Schlüssel oder Symbol Strings ("tokenized strings") aufgefaßt werden und sind jeweils nur innerhalb einer Locale-Einstellung sinnvoll. Die in target enthaltenen Token werden anhand der von strcoll verwendeten Vergleichsgewichtungen aus den Vergleichstabellen der aktuellen Locale-Einstellung erzeugt. Die Funktion wird beendet, wenn alle Ebenen bearbeitet wurden oder wenn die Länge des SymbolString den Parameter n erreicht. Alle überflüssigen Token werden aus der Token-Menge jeder Ebene entfernt. Der Puffer für den Symbol- String muß groß genug sein. Seine Größe hängt von der Länge des String source, von der Anzahl der Vergleichsebenen, von den Regeln für jede Ebene sowie vom Auftreten von Sonderzeichen ab. Bestimmte Sonderzeichen verursachen zusätzliche Bearbeitungsschritte und damit erhöhten Platzbedarf. Das französische Zeichen "oe" benötigt beispielsweise den doppelten Platz, da es in einigen Locale-Einstellungen pro Ebene auf zwei Vergleichsgewichtungen erweitert wird. Teil-Strings mit Ersetzungen benötigen ebenfalls zusätzlichen Platz. Für die Berechnung des benötigten Speicherplatzes gibt es keine allgemeingültige Formel. Es sind jedoch mindestens (Ebenen * Stringlänge) Bytes erforderlich. Rückgabewert: strxfrm liefert die Anzahl der transformierten Zeichen zurück. Das abschließende Nullzeichen wird nicht mitgezählt. Ist der zurückgelieferte Wert gleich oder größer als n, dann ist der Inhalt von target unbestimmt. 1.1.4 Datenpoolfunktionen Datenpoolfunktionen Die hier behandelten Funktionen ermöglichen den Zugriff auf Datenpoolelemente. siehe auch: · GetPoolType · GetPoolSize · GetPoolIndex © XOn Siftware GmbH, 2008 1.1 Programmierreferenz · · · · · · · · · · · · · · · GetPoolName SetPoolName GetPoolText GetPoolVI4 GetPoolVF8 GetPoolVDT GetPoolVSTR GetPoolMI4 GetPoolMF8 GetPoolMDT GetPoolMSTR GetPoolODBC GetPoolDia RemoveFromPool CopyToPool Obsolet: · GetPoolVector · GetPoolMatrix · GetPoolTimeVect 1.1.4.1 CopyToPool Syntax: int CopyToPool(CNamedObj* pObj); Parameter: pObj: Zeiger auf ein neues Datenpoolelement Pool- Elementes Beschreibung: kopiert das Objekt pObj in den Datenpool. Das Objekt muss ein Datenobjekt sein. Rückgabewert: 0 -1 -2 -3 Element erfolgreich kopiert Elementname schon vergeben Element von unzulässigem Typ Element nicht initialisiert Beispiel:: int method::OnRun() { CF8Vector V; V.SetName("VECTOR1"); CopyToPool(&V); return 1; } 1.1.4.2 GetPoolDia Syntax: CDia* GetPoolDia(int idx); CDia* GetPoolDia(char *name); Parameter: © XOn Siftware GmbH, 2008 38 39 Referenzhandbuch · idx: Index des gewünschten Pool- Elementes · name: Name des gewünschten Pool- Elementes Beschreibung: Liefert einen Zeiger auf das Datenpoolelement mit Index idx oder dem Namen name. Falls ein entsprechendes Element im Datenpool existiert und vom Typ CDia ist, wird ein Zeiger darauf zurückgeliefert, andernfalls wird Null zurückgeliefert. Rückgabewert: Zeiger auf eine Datumskanal oder Null. 1.1.4.3 GetPoolIndex Syntax: int GetPoolIndex(char *name); Parameter: name: Bezeichnung des gewünschten Pool- Elementes Beschreibung: Liefert den Index des Poolelementes namens name oder -1, falls kein solches Element vorhanden ist. Rückgabewert: Index des Poolelementes. Beispiel: int method::OnRun() { int i; i=GetPoolIndex("Hansi"); if (i>=0) MessageBox(0,"Hansi gefunden"); return 1; } 1.1.4.4 GetPoolMDT Syntax: CDTMatrix* GetPoolMDT(const char* szPoolName); CDTMatrix* GetPoolMDT(int nPoolID); Parameter: nPoolID: Index des gewünschten Pool- Elementes szPoolName: Name des gewünschten Pool- Elementes Beschreibung: Liefert einen Zeiger auf das Datenpoolelement mit Index nPoolID oder dem Namen szPoolName. Falls ein entsprechendes Element im Datenpool existiert und vom Typ CSTRMatrix ist, wird ein Zeiger darauf zurückgeliefert, andernfalls wird Null zurückgeliefert. Rückgabewert: Zeiger auf einen Matrix mit Datum/Zeit- Werten (CDTMatrix) oder NULL, falls das entsprechende Element nicht existiert oder vom falschen Typ ist. Beispiel: int method::OnRun() { /* * Print the contents of a pool date/time matrix named "TestMatrix" * to the stdio window. © XOn Siftware GmbH, 2008 1.1 Programmierreferenz 40 */ CDTMatrix *pM=GetPoolMDT("TestMatrix"); if (pM) { int nRows,nCols; pM->GetDims(&nRows,&nCols); for (int r=0;r<nRows;r++) for (int c=0;c<nCols;c++) printf("%f\n",pM->GetAt(r,c)); } return 1; } 1.1.4.5 GetPoolMF8 Syntax: CF8Matrix* GetPoolMF8(const char* szPoolName); CF8Matrix* GetPoolMF8(int nPoolID); Parameter: nPoolID: Index des gewünschten Pool- Elementes szPoolName: Name des gewünschten Pool- Elementes Beschreibung: Liefert einen Zeiger auf das Datenpoolelement mit Index nPoolID oder dem Namen szPoolName. Falls ein entsprechendes Element im Datenpool existiert und vom Typ CF8Matrix ist, wird ein Zeiger darauf zurückgeliefert, andernfalls wird Null zurückgeliefert. Rückgabewert: Zeiger auf einen Matrix mit Gleitkommazahlen (CF8Matrix) oder NULL, falls das entsprechende Element nicht existiert oder vom falschen Typ ist. Beispiel: int method::OnRun() { /* * Print the contents of a pool double matrix named "TestMatrix" * to the stdio window. */ CF8Matrix *pM=GetPoolMF8("TestMatrix"); if (pM) { int nRows,nCols; pM->GetDims(&nRows,&nCols); for (int r=0;r<nRows;r++) for (int c=0;c<nCols;c++) printf("%f\n",pM->GetAt(r,c)); } return 1; } 1.1.4.6 GetPoolMI4 Syntax: CI4Matrix* GetPoolMI4(const char* szPoolName); CI4Matrix* GetPoolMI4(int nPoolID); Parameter: nPoolID: Index des gewünschten Pool- Elementes szPoolName: Name des gewünschten Pool- Elementes © XOn Siftware GmbH, 2008 41 Referenzhandbuch Beschreibung: Liefert einen Zeiger auf das Datenpoolelement mit Index nPoolID oder dem Namen szPoolName. Falls ein entsprechendes Element im Datenpool existiert und vom Typ CI4Matrix ist, wird ein Zeiger darauf zurückgeliefert, andernfalls wird Null zurückgeliefert. Rückgabewert: Zeiger auf einen Matrix mit Gleitkommazahlen (CI4Matrix) oder NULL, falls das entsprechende Element nicht existiert oder vom falschen Typ ist. Beispiel: int method::OnRun() { /* * Print the contents of a pool integer matrix named "TestMatrix" * to the stdio window. */ CI4Matrix *pM=GetPoolMI4("TestMatrix"); if (pM) { int nRows,nCols; pM->GetDims(&nRows,&nCols); for (int r=0;r<nRows;r++) for (int c=0;c<nCols;c++) printf("%i\n",pM->GetAt(r,c)); } return 1; } 1.1.4.7 GetPoolMSTR Syntax: CSTRMatrix* GetPoolMSTR(const char* szPoolName); CSTRMatrix* GetPoolMSTR(int nPoolID); Parameter: nPoolID: Index des gewünschten Pool- Elementes szPoolName: Name des gewünschten Pool- Elementes Beschreibung: Liefert einen Zeiger auf das Datenpoolelement mit Index nPoolID oder dem Namen szPoolName. Falls ein entsprechendes Element im Datenpool existiert und vom Typ CSTRMatrix ist, wird ein Zeiger darauf zurückgeliefert, andernfalls wird Null zurückgeliefert. Rückgabewert: Zeiger auf eine Matrix mit Strings (CSTRMatrix) oder NULL, falls das entsprechende Element nicht existiert oder vom falschen Typ ist. Beispiel: int method::OnRun() { /* * Print the contents of a pool string matrix named "TestMatrix" * to the stdio window. */ CSTRMatrix *pM=GetPoolMSTR("TestMatrix"); if (pM) { int nRows,nCols; pM->GetDims(&nRows,&nCols); for (int r=0;r<nRows;r++) © XOn Siftware GmbH, 2008 1.1 Programmierreferenz for (int c=0;c<nCols;c++) printf("%s\n",pM->GetAt(r,c)); } return 1; } 1.1.4.8 GetPoolName Syntax: char* GetPoolName(int idx); Parameter: idx: Index des gewünschten Pool- Elementes Beschreibung: Liefert den Namen des Pool- Elementes mit Index idx, oder NULL, falls der Index unzulässig ist. Der Index beginnt bei 0. Rückgabewert: String mit dem gewünschten Namen oder NULL- Zeiger. Beispiel: Siehe GetPoolSize. 1.1.4.9 GetPoolODBC Syntax: CODBC* GetPoolODBC(int idx); CODBC* GetPoolODBC(char *name); Parameter: idx: Index des gewünschten Pool- Elementes name: Name des gewünschten Pool- Elementes Beschreibung: Liefert einen Zeiger auf das Datenpoolelement mit Index idx oder dem Namen name. Falls ein entsprechendes Element im Datenpool existiert und vom Typ CODBC ist, wird ein Zeiger darauf zurückgeliefert, andernfalls wird Null zurückgeliefert. Rückgabewert: Zeiger auf eine Datumskanal oder Null. 1.1.4.10 GetPoolSize Syntax: int GetPoolSize(void); Beschreibung: Liefert die Anzahl der Einträge im Datenpool. Rückgabewert: Anzahl der Einträge im Datenpool. Beispiel: int method::OnRun() { /* * in diesem Beispiel wird eine Liste aller Pool* Elemente in das Textfeld Text eingetragen */ © XOn Siftware GmbH, 2008 42 43 Referenzhandbuch int i; Text.Clear(); for (i=0;i<GetPoolSize();i++) { Text.Add(GetPoolName(i)); Text.Add(" : "); Text.Add(GetPoolType(i)); Text.Add("\n"); } return 1; } 1.1.4.11 GetPoolText Syntax: CText* GetPoolText(int index); CText* GetPoolText(char* name); Parameter: idx: Index des gewünschten Pool- Elementes name: Name des gewünschten Pool- Elementes Beschreibung: Liefert einen Zeiger auf das Datenpoolelement mit Index idx oder dem Namen name. Falls ein entsprechendes Element im Datenpool existiert und vom Typ CText ist, wird ein Zeiger darauf zurückgeliefert, andernfalls wird Null zurückgeliefert. Rückgabewert: Zeiger auf einen Text oder Null. Beispiel: int method::OnRun() { int typ; CText *pT; typ=GetPoolType(0); if (typ==2) pT=GetPoolText(0); return 1; } 1.1.4.12 GetPoolType Syntax: int GetPoolType(int idx); int GetPoolType(char *name); Parameter: idx: Index des gewünschten Pool- Elementes name: Name des gewünschten Pool- Elementes Beschreibung: Liefert den Type des Eintrages im Datenpool mit Index idx oder Namen name. Der Index beginnt bei Null. Falls kein Element mit entsprechendem Index oder Namen vorhanden ist, wird 0 zurückgeliefert. Rückgabewert: 0 Fehler: Kein Element mit diesem Index oder Namen vorhanden. © XOn Siftware GmbH, 2008 1.1 Programmierreferenz 1 2 3 4 5 6 44 CODBC CDia CText CF8Vector CF8Matrix CDTVector Beispiel: int method::OnRun() { int i=GetPoolType(0); return 1; } 1.1.4.13 GetPoolVDT Syntax: CDTVector* GetPoolVDT(const char* szPoolName); CDTVector* GetPoolVDT(int nPoolID); Parameter: nPoolID: Index des gewünschten Pool- Elementes szPoolName: Name des gewünschten Pool- Elementes Beschreibung: Liefert einen Zeiger auf das Datenpoolelement mit Index nPoolID oder dem Namen szPoolName. Falls ein entsprechendes Element im Datenpool existiert und vom Typ CDTVector ist, wird ein Zeiger darauf zurückgeliefert, andernfalls wird Null zurückgeliefert. Rückgabewert: Zeiger auf einen Vektor mit Datum/Zeit- Werten (CDTVector) oder NULL, falls das entsprechende Element nicht existiert oder vom falschen Typ ist. Beispiel: int method::OnRun() { /* * Print the contents of a pool date/time vector named "TestVector" * to the stdio window. */ CDTVector *pV=GetPoolVDT("TestVector"); if (pV) for (int i=0;i<pV->GetSize();i++) printf("%f\n",pV->GetAt(i)); return 1; } 1.1.4.14 GetPoolVF8 Syntax: CF8Vector* GetPoolVF8(const char* szPoolName); CF8Vector* GetPoolVF8(int nPoolID); Parameter: nPoolID: Index des gewünschten Pool- Elementes szPoolName: Name des gewünschten Pool- Elementes Beschreibung: © XOn Siftware GmbH, 2008 45 Referenzhandbuch Liefert einen Zeiger auf das Datenpoolelement mit Index nPoolID oder dem Namen szPoolName. Falls ein entsprechendes Element im Datenpool existiert und vom Typ CF8Vector ist, wird ein Zeiger darauf zurückgeliefert, andernfalls wird Null zurückgeliefert. Rückgabewert: Zeiger auf einen Vektor mit Gleitkommazahlen (CF8Vector) oder NULL, falls das entsprechende Element nicht existiert oder vom falschen Typ ist. Beispiel: int method::OnRun() { /* * Print the contents of a pool double vector named "TestVector" * to the stdio window. */ CF8Vector *pV=GetPoolVF8("TestVector"); if (pV) for (int i=0;i<pV->GetSize();i++) printf("%f\n",pV->GetAt(i)); return 1; } 1.1.4.15 GetPoolVI4 Syntax: CI4Vector* GetPoolVI4(const char* szPoolName); CI4Vector* GetPoolVI4(int nPoolID); Parameter: nPoolID: Index des gewünschten Pool- Elementes szPoolName: Name des gewünschten Pool- Elementes Beschreibung: Liefert einen Zeiger auf das Datenpoolelement mit Index nPoolID oder dem Namen szPoolName. Falls ein entsprechendes Element im Datenpool existiert und vom Typ CI4Vector ist, wird ein Zeiger darauf zurückgeliefert, andernfalls wird Null zurückgeliefert. Rückgabewert: Zeiger auf einen Vektor mit ganzen Zahlen (CI4Vector) oder NULL, falls das entsprechende Element nicht existiert oder vom falschen Typ ist. Beispiel: int method::OnRun() { /* * Print the contents of a pool integer vector named "TestVector" * to the stdio window. */ CI4Vector *pV=GetPoolVI4("TestVector"); if (pV) for (int i=0;i<pV->GetSize();i++) printf("%i\n",pV->GetAt(i)); return 1; } © XOn Siftware GmbH, 2008 1.1 Programmierreferenz 46 1.1.4.16 GetPoolVSTR Syntax: CSTRVector* GetPoolVSTR(const char* szPoolName); CSTRVector* GetPoolVSTR(int nPoolID); Parameter: nPoolID: Index des gewünschten Pool- Elementes szPoolName: Name des gewünschten Pool- Elementes Beschreibung: Liefert einen Zeiger auf das Datenpoolelement mit Index nPoolID oder dem Namen szPoolName. Falls ein entsprechendes Element im Datenpool existiert und vom Typ CSTRVector ist, wird ein Zeiger darauf zurückgeliefert, andernfalls wird Null zurückgeliefert. Rückgabewert: Zeiger auf einen Vektor mit Strings (CSTRVector) oder NULL, falls das entsprechende Element nicht existiert oder vom falschen Typ ist. Beispiel: int method::OnRun() { /* * Print the contents of a pool string vector named "TestVector" * to the stdio window. */ CSTRVector *pV=GetPoolVSTR("TestVector"); if (pV) for (int i=0;i<pV->GetSize();i++) printf("%s\n",pV->GetAt(i)); return 1; } 1.1.4.17 RemoveFromPool Syntax: int RemoveFromPool(char* name); int RemoveFromPool(int idx); Parameter: idx: Index des gewünschten Pool- Elementes name: Name des gewünschten Pool- Elementes Beschreibung: Löscht das Datenpoolelement mit Index idx oder dem Namen name aus dem Datenpool, falls ein entsprechendes Element im Datenpool existiert. Rückgabewert: 0 1 Element nicht gefunden Element erfolgreich gelöscht 1.1.4.18 SetPoolName Syntax: int SetPoolName(int idx,char *name); Parameter: © XOn Siftware GmbH, 2008 47 Referenzhandbuch idx: Index des gewünschten Pool- Elementes name: neuer Name des Elementes Beschreibung: Setzt den Namen des Pool- Elementes mit Index idx.auf name Der Index beginnt bei 0. Rückgabewert: 0 -1 -2 -3 OK unzulässiger Index unzulässiger Name Name schon vergeben Beispiel: Der folgende Code ersetzt alle Namen durch 'X0','X1',... int method::OnRun() { int i; char buf[32]; for (i=0;i<GetPoolSize();i++) { sprintf(buf,"X%d",i); SetPoolName(i,buf); } return 1; } 1.1.5 Speichermanagement Speichermanagement Das Speichermanagement umfaßt Funktionen zum reservieren und freigeben von Speicher. siehe auch: · GlobalAlloc · GlobalFree · GlobalLock · GlobalUnlock · malloc · free 1.1.5.1 GlobalAlloc Syntax: int GlobalAlloc(int fuAlloc,long cbAlloc); Parameter: fuAlloc: legt fest, wie der Speicher zu reservieren ist 0x2000 0x0100 0x0000 0x0002 0x0010 belegt Speicher, der mit anderen Applikationen geteilt werden kann. Dieses Flag wird nur für DDE benutzt. belegt Speicher, der verworfen werden kann. Dieses Flag kann mit 0x0002 kombiniert werden belegt festen Speicher. belegt beweglichen Speicher. verhindert Komprimierung oder Verwerfung zur © XOn Siftware GmbH, 2008 1.1 Programmierreferenz 48 Speicherbeschaffung 0x0020 verhindert Verwerfung zur Speicherbeschaffung 0x0040 belegt den Speicher mit Nullen vor cbAlloc: Objektgröße Beschreibung: Die GlobalAlloc- Funktion reserviert die angegebene Zahl Bytes auf dem globalen Heap. Rückgabewert: Der Rückgabewert ist ein Speicherhandle oder NULL, falls kein Speicher reserviert werden konnte. 1.1.5.2 GlobalFree Syntax: int GlobalFree (int hdl); Parameter: hdl: Speicherhandle, initialisiert durch einen Aufruf von GlobalAlloc Beschreibung: gibt Speicher frei, der durch GlobalAlloc reserviert wurde. Rückgabewert: Null falls erfolgreich, sonst hdl. 1.1.5.3 GlobalLock Syntax: void* GlobalLock(int hdl); Parameter: hdl: Speicherhandle, initialisiert durch einen Aufruf von GlobalAlloc Beschreibung: liefert einen Zeiger auf den durch hdl beschriebenen globalen Speicher. Die Funktion erhöht den Sperrzähler um eins und sperrt den Speicher. Gesperrter Speicher kann nicht verworfen oder verschoben werden. Das Speicherobjekt bleibt gesperrt im Speicher, bis der Sperrzähler Null ist. Rückgabewert: ein Zeiger auf das erste Byte des globalen Speicherobjekts oder Null, falls dieser nicht ermittelt werden konnte. 1.1.5.4 GlobalUnlock Syntax: int GlobalUnlock(int hdl); Parameter: hdl: Handle des globalen Speicherobjekts Beschreibung: gibt den Speicher eines globalen Speicherobjekts frei. Die Funktion hat keinen Einfluß auf fest (0x0000) vereinbarte Speicherobjekte. Für bewegliche oder verwerfbare Speicherobjekte wird der Sperrzähler um eins erniedrigt. Erst wenn der Sperrzähler Null ist, ist das Speicherobjekt vollständig freigegeben. Rückgabewert: © XOn Siftware GmbH, 2008 49 Referenzhandbuch 0 1 1.1.5.5 Sperrzähler wurde auf Null gesetzt Sperrzähler ungleich Null malloc Syntax: void* malloc(int len); Parameter: len: Größe des anzulegenden Speichers Beschreibung: Reserviert einen Speicher der Größe len Bytes und liefert einen Zeiger auf diesen zurück. Konnte der Speicher nicht reserviert werden., dann wird Null zurückgeliefert. 1.1.5.6 free Syntax: void free(void *pV); Parameter: pV: Zeiger auf einen dynamisch reservierten Speicherbereich Beschreibung: Gibt Speicher frei, der zuvor mit malloc reserviert wurde. 1.1.6 Datum und Uhrzeit Datum und Uhrzeit Die hier behandelten Funktionen ermöglichen den Zugriff auf die Systemzeit. Funktionen : · mktime · time · difftime · _strdate · strftime · _strtime 1.1.6.1 _strdate Syntax: char *_strdate(char *buf); Beschreibung: Konvertiert das aktuelle Datum in einen String. _strdate konvertiert das aktuelle Datum in einen String und speichert diesen in dem durch buf angegebenen Puffer. buf muß mindestens 9 Zeichen lang sein. Der String ist durch ein Nullzeichen abgeschlossen und hat das Format MM/DD/YY. MM, DD und YY sind Zahlen mit jeweils zwei Ziffern und geben Monat, Tag und Jahr an. Rückgabewert: Der Rückgabewert von _strdate ist buf, die Adresse des Datum-Strings. © XOn Siftware GmbH, 2008 1.1 Programmierreferenz 1.1.6.2 50 _strtime Syntax: char *_strtime(char *buf); Beschreibung: Konvertiert die aktuelle Uhrzeit in einen String. _strtime konvertiert die aktuelle Uhrzeit in einen String und speichert diesen in dem durch buf angegebenen Puffer. buf muß mindestens 9 Zeichen lang sein. Der String wird durch ein Nullzeichen abgeschlossen und hat das folgende Format: HH:MM:SS HH, MM und SS sind jeweils Zahlen mit zwei Ziffern und geben Stunde, Minute und Sekunde an. Der String ist nullterminiert. Rückgabewert: Der Rückgabewert von _strtime ist buf, die Adresse des Uhrzeit-Strings 1.1.6.3 difftime Syntax: double difftime(long t1,long t2); Beschreibung: Berechnet die Differenz zwischen zwei Zeitangaben. difftime berechnet die zwischen t1 und t2 liegende Zeit in Sekunden. Rückgabewert: difftime liefert die Differenz zweier Zeiten als double-Wert zurück. 1.1.6.4 KillTimer Syntax: int KillTimer(int nIDEvent); Parameter: nIDEvent: ID- Nummer des Timerereignisses das sie bei SetTimer erwendet haben Beschreibung: löscht das Timerereignis nIDEvent. 1.1.6.5 mktime Syntax: long mktime(tm *t); Beschreibung: Konvertiert Uhrzeit in das Kalenderformat. mktime konvertiert die Uhrzeit in der Struktur, auf die t zeigt, in eine Kalenderzeit mit dem Format der Funktion time. Die ursprünglichen Werte der Felder tm_sec, tm_min, tm_hour, tm_mday und tm_mon sind nicht auf den durch die tm-Struktur festgelegten Bereich beschränkt. Befinden sich die Felder nicht im korrekten Bereich, werden sie angepaßt. Die Werte der Felder tm_wday und tm_yday werden nach der Anpassung der anderen Felder berechnet. Kann die Kalenderzeit nicht dargestellt werden, liefert mktime -1 zurück. Die zulässige Bereich für die Kalenderzeit liegt zwischen dem 1. Januar 1970 00:00:00 und dem 19. Januar 2038 03:14:07. Rückgabewert: Siehe Beschreibung. © XOn Siftware GmbH, 2008 51 Referenzhandbuch 1.1.6.6 SetTime Syntax: int SetTimer(int nIDEvent,int nElapse); Parameter: nIDEvent: ID- Nummer des Timerereignisses (>0 !) nElapse: Timer- Wert in Millisekunden (>0 !) Beschreibung: initialisiert einen Systemtimer.Jedesmal wenn ein Timer- Event auftritt wird die Methode OnTimer des Bildes gerufen. Timer sind globale Resourcen. Es ist daher unbedingt nötig den Rückgabewert von SetTimer auf Gültigkeit zu prüfen um sicherzustellen, daß der von ihnen gewünschte Timer auch erhältlich ist. Geben sie ihren Timer wieder frei, indem sie die Funktion KillTimer mit dem Rückgabewert von SetTimer aufrufen. Rückgabewert: die Timer- Nummer des neuen Timers, wenn die Funktion erfolgreich war, andernfalls Null . 1.1.6.7 strftime Syntax: int strftime(char *s,int maxsize,char *fmt, struct tm *t); Beschreibung: Formatiert die Uhrzeit für die Ausgabe. strftime formatiert die Uhrzeit im Argument t und gibt sie in das Array aus, auf das das Argument s zeigt. Bei der Formatierung werden die in fmt enthaltenen Formatieranweisungen angewandt. Der Format-String besteht aus null oder mehr Anweisungen und normalen Zeichen. Wie bei printf besteht eine Anweisung aus dem Zeichen %, gefolgt von dem Zeichen für das einzusetzende Format. Alle normalen Zeichen werden unverändert kopiert. Es werden maximal maxsize Zeichen nach s geschrieben. Die folgende Tabelle beschreibt die ANSI-definierten Formatieranweisungen für den FormatString, der mit strftime verwendet wird. Formatieranweisung %% %a %A %b %B %c %d %H %I %j %m %M %p %S %w Ersetzungen %- Zeichen Abgekürzter Wochentagname Vollständiger Wochentagname Abgekürzter Monatsname Vollständiger Monatsname Datum und Uhrzeit Zwei Ziffern für den Tag im Monat (01 - 31) Zwei Ziffern für die Stunde (00 - 23) Zwei Ziffern für die Stunde (01 - 12) Drei Ziffern für den Tag im Jahr (001 - 366) Zwei Ziffern für den Monat als Dezimalzahl (1 - 12) Zwei Ziffern für die Minute (00 - 59) AM oder PM (vormittags oder nachmittags) Zwei Ziffern für die Sekunde (00 - 59) Zwei Ziffern für die Wochenzahl, wobei Sonntag erster Wocheentag ist (00 - 53) Wochentag, wobei 0 dem Sonntag entspricht (0 - 6) %W Zwei Ziffern für die Wochenzahl, wobei Montag erster %U © XOn Siftware GmbH, 2008 1.1 Programmierreferenz %x %X %y %Y %Z 52 Wochentag ist (00 - 53) Datum Uhrzeit Zwei Ziffern für das Jahr ohne Jahrhundert (00 - 99) Jahr mit Jahrhundert Name der Zeitzone oder keine Zeichen, wenn keine Zeitzone festgelegt ist Rückgabewert: strftime liefert die Anzahl der Zeichen zurück, die nach s geschrieben wurden. Ist die Anzahl der benötigten Zeichen größer als maxsize, so wird 0 zurückgeliefert. 1.1.6.8 time Syntax: long time(long* timer); Beschreibung: Liefert Datum und Uhrzeit des Systems. time setzt die mit timer übergebene Variable auf die Anzahl der Sekunden, die seit dem 1. Januar 1970, 00:00:00 verstrichen sind, sofern timer kein NULL-Zeiger ist. Rückgabewert: time liefert die Anzahl der seit dem 1.1.1970 verstrichenen Sekunden zurück. 1.1.7 Sonstige Funktionen Sonstige Funktionen Die hier behandelten Funktionen ermöglichen den Zugriff auf Windows-Standarddialoge. Funktionen : · FileDialog · MessageBox · Print · Invalidate · SetFH 1.1.7.1 FileDialog Syntax: int FileDialog(int open,char *ResFile, char *DefExt,char *IniFile); Parameter: open: Dialogauswahl 0 Dialog für "Datei speichern" 1 Dialog für "Datei öffnen" DefExt: Default- Extension. Wenn der Benutzer einen Dateinamen ohne Extension einträgt, wird der Wert von DefExt verwendet. IniFile: Der Dateiname, der am Anfang im Dateieingabefeld erscheint ResFile: Buffer für das Ergebnisfile © XOn Siftware GmbH, 2008 53 Referenzhandbuch Beschreibung: diese Funktion führt einen Windows- Dateidialog aus Rückgabewert: 0: Dialog mit Abbrechen beendet. 5: Dialog mit OK beendet 1.1.7.2 Invalidate Syntax: int Invalidate(void); Beschreibung: Erzwingt die Aktualisierung (Neuzeichnen) des aktiven Dokumentes. Rückgabewerte: 0 1 1.1.7.3 Fehler OK MessageBox Syntax: int MessageBox(int Typ,char *fmt,...); Parameter: Typ: Typ der Messagebox 0 1 2 3 4 5 fmt: Formatstring mit OK- Taste mit OK/Abbrechen- Tasten mit Wiederholen/Abbrechen- Tasten mit Ja/Nein- Tasten mit Ja/Nein/Abbrechen- Tasten mit Abbrechen/Widerholen/Ignorieren- Tasten Siehe auch: sprintf Beschreibung: Zeigt ein Fenster mit einer Meldung an. Die Meldung wird zusammengesetz aus den im Formatstring beschriebenen Komponenten. Rückgabewerte: 0 1 2 3 4 5 6 <0 Abbrechen Taste wurde gedrückt Unterbrechen Taste wurde gedrückt Ignorieren Taste wurde gedrückt JaTaste wurde gedrückt Nein Taste wurde gedrückt OK Taste wurde gedrückt Wiederholen Taste wurde gedrückt Fehler © XOn Siftware GmbH, 2008 1.1 Programmierreferenz Beispiel: int method::OnRun() { int i=5; MessageBox(0,"Die Zahl i lautet %i",i); return 1; } 1.1.7.4 Print Syntax: int Print(int setup); Parameter: setup: 0 1 aktiven View sofort drucken Druckerdialog durchführen Beschreibung: Druckt die aktuelle Seite und/oder führt einen Druckerdialog durch. Rückgabewerte: 0 1 1.1.7.5 Fehler OK SetFH Syntax: void SetFH(int nWhat,char *pFmt); Parameter: nWhat: 0: Kopfzeile bei Grafikausdruck 1: Fußzeile bei Grafikausdruck 2: Kopfzeile bei Textausdruck 3: Fußzeile bei Textausdruck pFmt: Format der Kopf- oder Fußzeile. Folgende Platzhalter sind definiert: &P: Seitenzahl &T: Uhrzeit &D: Datum &F: Dateiname Beschreibung: Diese Funktion legt das Aussehen von Kopf oder Fußzeilen bei Ausdrucken fest 1.1.7.6 GetRValue Syntax: int GetRValue(COLORREF C); Beschreibung: Die Funktion liefert den Rot- Anteil (0-255) eines RGB- Farbwertes vom Typ COLORREF © XOn Siftware GmbH, 2008 54 55 Referenzhandbuch Rückgabewert: Rotanteil (0-255) 1.1.7.7 GetGValue Syntax: int GetGValue(COLORREF C); Beschreibung: Die Funktion liefert den Grün- Anteil (0-255) eines RGB- Farbwertes vom Typ COLORREF Rückgabewert: Grün (0-255) 1.1.7.8 GetBValue Syntax: int GetBValue(COLORREF C); Beschreibung: Die Funktion liefert den Blau- Anteil (0-255) eines RGB- Farbwertes vom Typ COLORREF Rückgabewert: Blauanteil (0-255) 1.1.7.9 RGB Syntax: COLORREF RGB(int R,int G,int B); Beschreibung: Die Funktion liefert einen COLORREF- Farbwert aus dem Rot-, Grün- und Blau Anteil. Die Werte R, G und B müssen im Bereich 0 bis 255 liegen. Rückgabewert: Farbwert 1.1.8 Verzeichnisfunktionen Verzeichnisfunktionen Zum Zugriff auf Verzeichnisstrukturen stehen Ihen folgende Funktionen zur Verfügung: Funktionen: · _chdir · _chdrive · _getcwd · _getdcwd · _mkdir · _rmdir · _searchenv © XOn Siftware GmbH, 2008 1.1 Programmierreferenz 1.1.8.1 56 _chdir Syntax: int chdir(char *path); Beschreibung: Wechselt das aktuelle Verzeichnis. _chdir setzt das durch path bezeichnete Verzeichnis als aktuelles Arbeitsverzeichnis. Der Parameter path muß ein existierendes Verzeichnis enthalten. path kann auch eine Laufwerksangabe enthalten wie etwa: _chdir ("a:\\BC"); Hier wird jedoch nur das aktuelle Verzeichnis dieses Laufwerks gewechselt, nicht das aktive Laufwerk selbst. Rückgabewert: Wenn das angegebene Verzeichnis gesetzt werden konnte, liefert chdir den Wert 0; ansonsten wird -1 zurückgeliefert. 1.1.8.2 _getcwd Syntax: char *getcwd(char *buf, int buflen); Beschreibung: Ermittelt das aktuelle Arbeitsverzeichnis. _getcwd speichert den vollständigen Pfadnamen des aktuellen Arbeitsverzeichnisses (inklusive des Laufwerks) als String an der durch buf bezeichneten Adresse. Die Maximallänge des Pfadnamens wird durch den Parameter buflen begrenzt. Ist der vollständige Pfadname einschließlich des abschließenden Nullzeichens länger als buflen Bytes, so wird ein Fehler erzeugt. Wenn der als buf übergebene Zeiger den Wert NULL hat, reserviert _getcwd über einen Aufruf von malloc selbständig einen Bereich von buflen Bytes. Später können Sie diesen reservierte Speicherbereich wieder freigegeben, indem Sie der Funktion free den Rückgabewert von _getcwd übergeben. Rückgabewert: _getcwd liefert folgende Werte zurück: Ist buf bei der Eingabe ungleich NULL, wird bei fehlerfreier Ausführung buf, im Fehlerfall NULL zurückgeliefert. Ist buf bei der Eingabe gleich NULL, liefert _getcwd bei fehlerfreier Ausführung einen Zeiger auf den reservierten Puffer zurück. 1.1.8.3 _getdcwd Syntax: char * _getdcwd(int drive, char *buffer, int buflen); Beschreibung: Liefert das aktuelle Arbeitsverzeichnis des angegebenen Laufwerks. _getdcwd liefert den vollständigen Pfadnamen des Arbeitsverzeichnisses im angegebenen Laufwerk (einschließlich des Laufwerknamens) als String in buffer zurück, dessen Maximallänge durch den Parameter buflen gesetzt wird. Ist der vollständige Pfadname einschließlich des abschließenden Nullzeichens länger als buflen Bytes, so wird ein Fehler erzeugt. Für den Parameter drive gilt: 0 = aktuelles Laufwerk, 1 = A, 2 = B, etc. Wenn der als buffer übergebene Zeiger den Wert NULL hat, reserviert _getdcwd einen Puffer von mindestens buflen Bytes. Später kann dieser Speicherbereich durch Übergabe des Rückgabewerts von _getdcwd an die Funktion free wieder freigegeben werden. Rückgabewert: © XOn Siftware GmbH, 2008 57 Referenzhandbuch _getdcwd liefert bei fehlerfreier Ausführung einen Zeiger auf den Puffer zurück, der den Namen des aktuellen Verzeichnisses im angegebenen Laufwerk enthält. Im Fehlerfall liefert _getdcwd den Wert NULL. 1.1.8.4 _mkdir Syntax: int mkdir(const char *path); Beschreibung: Erzeugt ein Verzeichnis. _mkdir erzeugt ein Verzeichnis mit dem in path angegebenen Namen. Rückgabewert: _mkdir liefert den Wert 0 zurück, wenn das neue Verzeichnis erzeugt werden konnte. Wenn ein Fehler auftritt, so ist der Rückgabewert -1. 1.1.8.5 _rmdir Syntax: int rmdir(const char *path); Beschreibung: Löscht ein Verzeichnis. _rmdir löscht das durch path angegebene Verzeichnis und kann nur angewendet werden, wenn dieses Verzeichnis keine Einträge enthält, nicht das aktuelle Arbeitsverzeichnis ist und nicht das Stammverzeichnis der Diskette/Festplatte darstellt. Rückgabewert: _rmdir liefert 0 zurück, wenn das Verzeichnis erfolgreich gelöscht wurde. Im Fehlerfall ist der Rückgabewert -1. 1.1.8.6 _searchenv Syntax: void _searchenv(const char *file, const char *varname, char *buf); Beschreibung: Sucht nach einer Datei im Verzeichnispfad einer Umgebungsvariablen. _searchenv durchsucht zuerst das aktuelle Verzeichnis nach einer Datei mit dem durch den Parameter file angegebenen Namen. Bleibt die Suche erfolglos, dann liest die Funktion die Pfadangaben in der Umgebungsvariable varname des Betriebssystems und durchsucht sämtliche darin enthaltenen Verzeichnisse der Reihe nach (typische Umgebungsvariablen sind PATH, LIB oder INCLUDE). Wenn die Datei gefunden wurde, wird der vollständige Dateiname (Laufwerk, Verzeichnis und Dateiname) im durch den Parameter buf angegebenen Puffer gespeichert. Dieser String kann beispielsweise bei einem folgenden Aufruf von fopen oder exec... verwendet werden. Der Puffer muß groß genug sein, um jeden möglichen Dateinamen aufzunehmen. Kann die Datei nicht gefunden werden, zeigt buf auf einen leeren String (der nur ein Nullzeichen enthält). © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 1.2 Klassenebibliothek Der Anwender von X1 hat über die Programmierschnittstelle die Möglichkeit auf verschiedenste Objekte zuzugreifen. Derartige Objekte sind das Dokument, Grafikobjekte(z.B. Achsen, Tabellen, ...), Kurvenobjekte (z.B. Balkenkurve, Vektorkurve, ... ) und Datenobjekte(Matrizen, Vektoren, ... ). Das Handbuch gliedert sich nach dieser Unterteilung. Eine Übersicht über alle Objekte bietet die Klassenhierarchie. 1.2.1 Klassenhierarchie Klicken Sie auf die Felder der Hierarchie für detaillierte Informationen zu den einzelnen Klassen: © XOn Siftware GmbH, 2008 58 59 Referenzhandbuch 1.2.2 Allgemeine Klassen Klicken Sie auf die Felder der Hierarchie für detaillierte Informationen zu den einzelnen Klassen: Dies ist die Objekthierarchie der allgemeinen Klassen. 1.2.2.1 CObject CObject ist die allgemeine Basisklasse. Die Eigenschaften dieser Klasse vererben sich auf alle nachfolgend beschriebenen Klassen. Methoden: 1.2.2.1.1 CObject::GetClassName Syntax: char* GetClassName(void); Rückgabewert: Name der Klasse Beschreibung: Liefert den Namen der Klasse. Damit können auch abgeleitete Objekte identifiziert werden. 1.2.2.2 CNamedObj Klicken Sie auf die Felder der Hierarchie für detaillierte Informationen zu den einzelnen Klassen: Dies ist die Basisklasse aller Datenpool- Klassen. Methoden: · CNamedObj::Edit · CNamedObj::GetName · CNamedObj::SetName 1.2.2.2.1 CNamedObj::Copy Syntax: CNamedObj* Copy(void); Beschreibung: Kopiert das Objekt und liefert einen Zeiger auf die Kopie zurück. © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 1.2.2.2.2 CNamedObj::Edit Syntax: int Edit(char *text); Parameter: text: Titel der Dialogbox Beschreibung: Ruft einen Dialog, der die Daten des Elementes zeigt und eine Änderung durch den Nutzer erlaubt. 1.2.2.2.3 CNamedObj::GetName Syntax: char* GetName(void); Beschreibung: Liefert einen Zeiger auf den Namen des Grafikobjektes. 1.2.2.2.4 CNamedObj::SetName Syntax: int SetName(char *name); Parameter: name: neuer Name des Objektes Beschreibung: Ordnet dem Grafikobjekt einen neuen Namen zu. 1.2.2.3 CColorMap Methoden · CColorMap::Reset · CColorMap::Add · CColorMap::Sort · CColorMap::GetNr · CColorMap::GetVal · CColorMap::GetCol · CColorMap::CColorMap · CColorMap::~CColorMap 1.2.2.3.1 CColorMap::Add Header: void CColorMap::Add(double Val,COLORREF Col); Parameter: · Val: Physikalischer Wert für die Farbzuordnung · Col: Farbwert Beschreibung: Fügt in die Farbtabelle ein neues Wertepaar ein. Ist für den Wert Val bereits ein Farbwert gespeichert dann wird dieser überschrieben. Siehe auch: © XOn Siftware GmbH, 2008 60 61 Referenzhandbuch CColorMap Übersicht | Hierarchie 1.2.2.3.2 CColorMap::CColorMap Header: CColorMap::CColorMap() Beschreibung: Legt ein leeres Objekt vom Typ CColorMap an. Siehe auch: CColorMap Übersicht | Hierarchie 1.2.2.3.3 CColorMap::GetColor Header: COLORREF CColorMap::GetColor(int nIndex); Parameter: · nIndex: Index des Wertepaares. Beschreibung: Liefert einen Farbwert aus der Liste. Rückgabewert: Farbwert. Siehe auch: CColorMap Übersicht | Hierarchie 1.2.2.3.4 CColorMap::GetNr Header: int CColorMap::GetNr(void); Beschreibung: Liefert die Anzahl der gespeicherten Wertepaare (Physikalischer Wert, Farbwert). Siehe auch: CColorMap Übersicht | Hierarchie 1.2.2.3.5 CColorMap::GetVal Header: double CColorMap::GetColor(int nIndex); Parameter: · nIndex: Index des Wertepaares. Beschreibung: Liefert den am Index nIndex gespeicherten physikalischen Wert. Rückgabewert: Der physikalische Wert. Siehe auch: CColorMap Übersicht | Hierarchie © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 1.2.2.3.6 CColorMap::Reset Header: void CColorMap::Reset(); Beschreibung: Löscht den Inhalt der Farbtabelle. Siehe auch: CColorMap Übersicht | Hierarchie 1.2.2.3.7 CColorMap::Sort Header: void CColorMap::Sort(); Beschreibung: Sortiert den Inhalt der Farbtabelle. Siehe auch: CColorMap Übersicht | Hierarchie 1.2.2.4 CGLMaterial Die Klasse beschreibt die Oberflächeneigenschaften eines 3D- Objektes. Methoden: · CGLMaterial::Reset · CGLMaterial::SetAmbient · CGLMaterial::SetDiffuse · CGLMaterial::SetSpecular · CGLMaterial::SetEmission · CGLMaterial::SetShininess · CGLMaterial::SetAlpha · CGLMaterial::CGLMaterial · CGLMaterial::~CGLMaterial 1.2.2.4.1 CGLMaterial::Reset Header: void CGLMaterial::Reset(int); Beschreibung: Beispiel: CGLMaterial Übersicht | Hierarchie 1.2.2.4.2 CGLMaterial::SetAmbient Header: void CGLMaterial::SetAmbient(unsigned int); Beschreibung: Beispiel: © XOn Siftware GmbH, 2008 62 63 Referenzhandbuch CGLMaterial Übersicht | Hierarchie 1.2.2.4.3 CGLMaterial::SetDiffuse Header: void CGLMaterial::SetDiffuse(unsigned int); Beschreibung: Beispiel: CGLMaterial Übersicht | Hierarchie 1.2.2.4.4 CGLMaterial::SetSpecular Header: void CGLMaterial::SetSpecular(unsigned int); Beschreibung: Beispiel: CGLMaterial Übersicht | Hierarchie 1.2.2.4.5 CGLMaterial::SetEmission Header: void CGLMaterial::SetEmission(unsigned int); Beschreibung: Beispiel: CGLMaterial Übersicht | Hierarchie 1.2.2.4.6 CGLMaterial::SetShininess Header: void CGLMaterial::SetShininess(double); Beschreibung: Beispiel: CGLMaterial Übersicht | Hierarchie 1.2.2.4.7 CGLMaterial::SetAlpha Header: void CGLMaterial::SetAlpha(double); Beschreibung: Beispiel: © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 64 CGLMaterial Übersicht | Hierarchie 1.2.2.5 CGrafDoc Diese Klasse bildet das Interface zum X1-Dokument. Die Klasse bietet Methoden zur Seitenverwaltung (anlegen, löschen, blättern). Außerdem beinhaltet diese Klasse die Trashverwaltung. Sie erhalten einen Zeiger auf das Dokument z.B. über die Methode CGrafNode::GetDocument. 1.2.2.5.1 CGrafDoc::AddPage Syntax: int AddPage(int Pos); Parameter: · Pos: Seitennummer an der die neue Seite eingefügt werden soll. Die erste Seite hat die Nummer 0, die zweite 1,... Rückgabewert: · 0: nicht OK · 1: OK Beschreibung: Fügt eine neue Seite an der Position Pos ein. Ist Pos < 0, so wird die Seite am Anfang des Dokumentes eingefügt. Ist Pos > Seitenanzahl, so wird die Seite am Ende des Dokumentes angefügt. Siehe auch: CGrafDoc Übersicht, Klassenhierarchie 1.2.2.5.2 CGrafDoc::DelPage Syntax: int DelPage(int Page); Parameter: · Page: Nummer der Seite die gelöscht werden soll. Die erste Seite hat die Nummer 0, die zweite 1,... Rückgabewert: · 0: nicht OK · 1: OK Beschreibung: Löscht die Seite Page aus dem Dokument. Siehe auch: CGrafDoc Übersicht, Klassenhierarchie © XOn Siftware GmbH, 2008 65 Referenzhandbuch 1.2.2.5.3 CGrafDoc::EmptyTrash Syntax: void EmptyTrash(void); Beschreibung: Diese Methode löscht alle mit DelNode entfernten Objekte endgültig aus dem Speicher. Sollte eine Variable auf eines dieser Objekte verweisen, dann wird sie durch diesen Aufruf ungültig und darf nicht mehr verwendet werden! Der Aufruf dieser Methode ist im allgemeinen nicht nötig, da der Müll beim Umschalten vom Bearbeitungsmodus in den Anzeigemodus selbständig entfernt wird. Ein Aufruf kann nötig werden, wenn Sie in einem Dokument viele Objekte dynamisch erzeugen und löschen ohne in den Bearbeitungsmodus zu wechseln. Siehe auch: CGrafDoc Übersicht, Klassenhierarchie 1.2.2.5.4 CGrafDoc::GetDocAtt Syntax: int CGrafDoc::GetDocAtt(int nID,char *pVal,int nLen); Parameter: · nID: Attributnummer · pVal: Stringbuffer · nLen: Größe des Stringbuffers Beschreibung: Die Funktion GetDocAtt dient zum Lesen von Dokumentenattributen. Mögliche Attributwerte, deren Argumenttyp, Bedeutung, zulässige Wertebereiche bzw. Werte: Typ ID Bedeutung Wertebereich Format der Kopfzeile. Folgende Platzhalter sind definiert: &P: Seitenzahl 4100 Kopfzeile &T: Uhrzeit &D: Datum &F: Dateiname String Format der Fußzeile. Folgende Platzhalter sind definiert: &P: Seitenzahl 4101 Fußzeile &T: Uhrzeit &D: Datum &F: Dateiname 4102 Name Pfad und Dateiname des Dokumentes Beispiel: int method::OnRun() { //Dateiname lesen char buf[256]; GetDocument()->GetDocAtt(4102,buf,sizeof(buf)); return 1; } Siehe auch: CGrafDoc Übersicht, Klassenhierarchie © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 66 1.2.2.5.5 CGrafDoc::GetNrPages Syntax: int GetNrPages(void); Rückgabewert: Anzahl der Seiten im Dokument. Beschreibung: Liefert die Anzahl der Seiten im Dokument. Siehe auch: CGrafDoc Übersicht, Klassenhierarchie 1.2.2.5.6 CGrafDoc::GetPage Syntax: CGrafNode* GetPage(int Page); Parameter: · Page: Nummer der gewünschten Seite. Die erste Seite hat die Nummer 0, die zweite 1,... Rückgabewert: Zeiger auf die "Wurzel" der Seite. Die Wurzel ist ein Objekt vom Typ CGrafNode, das alle anderen Objekte enthält. Beschreibung: Liefert einen Zeiger auf die Wurzel der angegebenen Seite. Siehe auch: CGrafDoc Übersicht, Klassenhierarchie 1.2.2.5.7 CGrafDoc::GetPageNr Syntax: int GetPageNr(void); Beschreibung: Liefert die Nummer der aktuellen Seite. Die erste Seite hat die Nummer 0, die zweite 1,... Rückgabewert: Seitennummer. Siehe auch: CGrafDoc Übersicht, Klassenhierarchie 1.2.2.5.8 CGrafDoc::GetRoot Syntax: CGrafNode* GetRoot(void); Rückgabewert: Zeiger auf die Wurzel der aktuellen Seite. Beschreibung: Liefert einen Zeiger auf die Wurzel der aktuellen Seite. Siehe auch: CGrafDoc Übersicht, Klassenhierarchie CGrafNode © XOn Siftware GmbH, 2008 67 Referenzhandbuch 1.2.2.5.9 CGrafDoc::Invalidate Syntax: void Invalidate(void); Beschreibung: Diese Methode erzwingt das neuzeichnen des Dokuments. Beispiel: int method::OnRun() { double X[500],Y[500]; for (int i=0;i<500;i++) { X[i]=cos(i/37.0); Y[i]=sin(i/25.0); } //Alle Kurven aus Graf entfernen Graf.Clear(); //Kurve 'Test' bezüglich Ebene 'Plane' anlegen Graf.AddTrace("Plane","Test"); //X-Werte Graf.SetTraceData(0,X,500); //Y- Werte Graf.SetTraceData(1,Y,500); //Linientyp: Graf.SetNodeAtt(6150,1,0,255,0,0); //Dokument neu zeichnen GetDocument()->Invalidate(); return 1; } Siehe auch: CGrafDoc Übersicht, Klassenhierarchie 1.2.2.5.10 CGrafDoc::MoveFirst Syntax: int MoveFirst(void); Rückgabewert: · 0: nicht OK · 1: OK Beschreibung: Aktiviert die erste Seite. Siehe auch: CGrafDoc Übersicht, Klassenhierarchie 1.2.2.5.11 CGrafDoc::MoveLast Syntax: int MoveLast(void); Rückgabewert: · 0: nicht OK · 1: OK © XOn Siftware GmbH, 2008 1.2 Programmierreferenz Beschreibung: Aktiviert die letzte Seite. Siehe auch: CGrafDoc Übersicht, Klassenhierarchie 1.2.2.5.12 CGrafDoc::MovePage Syntax: int MovePage(int Page); Parameter: Page: Nummer der gewünschten Seite. Die erste Seite hat die Nummer 0, die zweite 1,... Rückgabewert: · 0: nicht OK · 1: OK Beschreibung: Aktiviert die angegebene Seite. Siehe auch: CGrafDoc Übersicht, Klassenhierarchie 1.2.2.5.13 CGrafDoc::Print Syntax: void Print(void); Beschreibung: Diese Methode druckt ein Dokument aus. Beispiel: int method::OnRun() { //Dokument drucken ohne Print- Dialog GetDocument()->Print(); return 1; } Siehe auch: CGrafDoc Übersicht, Klassenhierarchie 1.2.2.5.14 CGrafDoc::SetDocAtt Syntax: int CGrafDoc::SetDocAtt(int nID,char *pVal); Parameter: · nID: Attributnummer · pVal: Stringbuffer Beschreibung: Die Funktion SetDocAtt dient zum Setzen von Dokumentenattributen. Mögliche Attributwerte, deren Argumenttyp, Bedeutung, zulässige Wertebereiche bzw. Werte, sowie deren Voreinstellungen : Typ ID Bedeutung Wertebereich © XOn Siftware GmbH, 2008 68 69 Referenzhandbuch 4100 String 4101 4102 Format der Kopfzeile. Folgende Platzhalter sind definiert: Kopfzeile &P: Seitenzahl &T: Uhrzeit &D: Datum &F: Dateiname Format der Fußzeile. Folgende Platzhalter sind definiert: Fußzeile &P: Seitenzahl &T: Uhrzeit &D: Datum &F: Dateiname Name des Dokumentes Pfad und Dateiname Beispiel: int method::OnRun() { //Kopfzeile einstellen GetDocument()->SetDocAtt(4100,"Seite &P, Datum &D"); return 1; } Siehe auch: CGrafDoc Übersicht, Klassenhierarchie 1.2.2.5.15 CGrafDoc::SetFH Syntax: void CGrafDoc::SetFH(int nWhat,char *pFmt); Parameter: · nWhat: 2: Kopfzeile 3: Fußzeile · pFmt: Format der Kopf- oder Fußzeile. Folgende Platzhalter sind definiert: &P: Seitenzahl &T: Uhrzeit &D: Datum &F: Dateiname Beschreibung: Diese Funktion legt das Aussehen von Kopf oder Fußzeilen bei Ausdrucken fest. Beispiel: int method::OnRun() { //Kopfzeile einstellen GetDocument()->SetFH(2,"Seite &P"); return 1; } Siehe auch: CGrafDoc Übersicht, Klassenhierarchie © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 1.2.2.6 70 CDBVariant CDBVariant hat keine Basisklasse. Ein CDBVariant Objekt ist ein Variant- Datentyp für die ODBC Klassen. Die Klasse CRecordset benutzt CDBVariant Objekte in drei Member- Funktionen: GetFieldValue, GetBookmark und SetBookmark. Zum Beispiel können sie mit GetFieldValue dynamisch auf Daten einer Tabellenspalte zugreifen. Da der Datentyp der Spalte zur Laufzeit unbekannt sein kann, benutzt GetFieldValue ein CDBVariant Objekt um die Daten der Spalte zu speichern. Siehe auch: CRecordset, CRecordset::GetFieldValue, CRecordset::GetBookmark, CRecordset::SetBookmark Class Members | Hierarchy Chart 1.2.2.6.1 CDBVariant class members Daten Members m_dwType m_boolVal m_chVal m_iVal m_lVal m_fltVal m_dblVal m_pdate m_pstring m_pbinary Enthält den Datentyp des aktuell gespeicherten Wertes. Type DWORD. Enthält einen Wert vom Typ BOOL. Enthält einen Wert vom Typ unsigned char. Enthält einen Wert vom Typ short. Enthält einen Wert vom Typ long. Enthält einen Wert vom Typ float. Enthält einen Wert vom Typ double. Enthält einen Zeiger auf eine Objekt vom Typ TIMESTAMP_STRUCT. Enthält einen Zeiger auf eine Objekt vom Typ CString. Enthält einen Zeiger auf eine Objekt vom Typ CLongBinary. Konstruktion CDBVariant Erzeugt ein CDBVariant Objekt. Operationen Clear GetBinaryData GetBinarySize GetString Löscht den Inhalt eines CDBVariant Objekts. Kopiert die Daten aus dem Member m_pbinary. Liefert die Menge der Daten im Member m_pbinary. Kopiert den inhalte des Members m_pstring. CDBVariant Übersicht | Hierarchy Chart 1.2.2.6.2 Member Functions 1.2.2.6.2.1 CDBVariant::CDBVariant Syntax: CDBVariant( ); Beschreibung: Erzeugt ein leeres CDBVariant Objekt. Setzt den m_dwType Daten Member auf DBVT_NULL. Siehe auch: © XOn Siftware GmbH, 2008 71 Referenzhandbuch CDBVariant::m_dwType CDBVariant Übersicht | Class Members | Hierarchy Chart 1.2.2.6.2.2 CDBVariant::Clear Syntax: void Clear( ); Beschreibung: Rufen sie diese Member- Funktion um den Inhalt eines CDBVariant- Objektes zu löschen. Ist der Wert von m_dwType DBVT_DATE, DBVT_STRING, oder DBVT_BINARY, dann gibt Clear den entsprechenden Speicher frei. Clear setzt m_dwType auf DBVT_NULL. Der CDBVariant Destruktor ruft Clear. Siehe auch: CDBVariant::m_dwType CDBVariant Übersicht | Class Members | Hierarchy Chart 1.2.2.6.2.3 CDBVariant::GetBinaryData Syntax: int GetBinaryData(void *pBuf,int nBufSize); Beschreibung: Rufen sie diese Member- Funktion um auf den Inhalt des Members m_pbinary zuzugreifen. Ist der Wert von m_dwType nicht DBVT_BINARY, dann gibt die Funktion den Wert 0 zurück. Parameter: · pBuf: Speicher zum Kopieren der binären Daten · nBufSize: Größe des Speichers, auf den pBuf verweist Rückgabewert: Die Anzahl der kopierten Bytes. Siehe auch: CDBVariant::m_dwType CDBVariant Übersicht | Class Members | Hierarchy Chart 1.2.2.6.2.4 CDBVariant::GetBinarySize Syntax: int GetBinarySize(); Beschreibung: Rufen sie diese Member- Funktion um die Länge der im Members m_pbinary gespeicherten Daten zu erhalten. Ist der Wert von m_dwType nicht DBVT_BINARY, dann gibt die Funktion den Wert 0 zurück. Rückgabewert: Die Anzahl der in m_pbinary gespeicherten Daten. © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 72 Siehe auch: CDBVariant::m_dwType CDBVariant Übersicht | Class Members | Hierarchy Chart 1.2.2.6.2.5 CDBVariant::GetString Syntax: int GetString(char *strValue,int strLen); Beschreibung: Rufen sie diese Member- Funktion um auf den Inhalt des Members m_pstring zuzugreifen. Ist der Wert von m_dwType nicht DBVT_STRING, dann gibt die Funktion den Wert 0 zurück. Parameter: · strValue: Speicher zum Kopieren des Strings · strLen: Größe des Speichers, auf den strValue verweist Rückgabewert: Die Anzahl der kopierten Bytes. Siehe auch: CDBVariant::m_dwType CDBVariant Übersicht | Class Members | Hierarchy Chart 1.2.2.6.3 Data Members 1.2.2.6.3.1 CDBVariant::m_boolVal Beschreibung: Speichert eine Variable vom Typ BOOL. Der m_boolVal data member gehört zu einer union. Prüfen sie vor dem Zugriff auf m_boolVal den Wert von CDBVariant::m_dwType. Wenn m_dwType den Wert DBVT_BOOL hat, dann enthält m_boolVal einen gültigen Wert; andernfalls liefert der Zugriff auf m_boolVal ein zufälliges Resultat. Siehe auch: CDBVariant::m_dwType CDBVariant Übersicht | Class Members | Hierarchy Chart 1.2.2.6.3.2 CDBVariant::m_chVal Beschreibung: Speichert eine Variable vom Typ unsigned char. Der m_boolVal data member gehört zu einer union. Prüfen sie vor dem Zugriff auf m_chVal den Wert von CDBVariant::m_dwType. Wenn m_dwType den Wert DBVT_UCHAR hat, dann enthält m_chVal einen gültigen Wert; andernfalls liefert der Zugriff auf m_chVal ein zufälliges Resultat. Siehe auch: CDBVariant::m_dwType CDBVariant Übersicht | Class Members | Hierarchy Chart © XOn Siftware GmbH, 2008 73 Referenzhandbuch 1.2.2.6.3.3 CDBVariant::m_dblVal Beschreibung: Speichert eine Variable vom Typ double. Der m_boolVal data member gehört zu einer union. Prüfen sie vor dem Zugriff auf m_dblVal den Wert von CDBVariant::m_dwType. Wenn m_dwType den Wert DBVT_DOUBLE hat, dann enthält m_dblVal einen gültigen Wert; andernfalls liefert der Zugriff auf m_dblVal ein zufälliges Resultat. Siehe auch: CDBVariant::m_dwType CDBVariant Übersicht | Class Members | Hierarchy Chart 1.2.2.6.3.4 CDBVariant::m_dwType Beschreibung: Dieser Daten- Member enthält den Datentyp des im CDBVariant Objekt gespeicherten Wertes. Bevor sie auf diese union zugreifen, müssen sie den Wert von m_dwType überprüfen um den gültigen union - Member zu ermitteln. This data member contains the data type for the value that is currently stored in the CDBVariant object's union data member. m_dwType union Daten Member DBVT_NULL Kein Daten- Member ist gültig. DBVT_BOOL m_boolVal DBVT_UCHAR m_chVal DBVT_SHORT m_iVal DBVT_LONG m_lVal DBVT_SINGLE m_fltVal DBVT_DOUBLE m_dblVal DBVT_DATE m_pdate DBVT_STRING m_pstring DBVT_BINARY m_pbinary CDBVariant Übersicht | Class Members | Hierarchy Chart 1.2.2.6.3.5 CDBVariant::m_fltVal Beschreibung: Speichert eine Variable vom Typ float. Der m_fltVal data member gehört zu einer union. Prüfen sie vor dem Zugriff auf m_boolVal den Wert von CDBVariant::m_dwType. Wenn m_dwType den Wert DBVT_SINGLE hat, dann enthält m_fltVal einen gültigen Wert; andernfalls liefert der Zugriff auf m_fltVal ein zufälliges Resultat. Siehe auch: CDBVariant::m_dwType CDBVariant Overview | Class Members | Hierarchy Chart © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 74 1.2.2.6.3.6 CDBVariant::m_iVal Beschreibung: Speichert eine Variable vom Typ short. Der m_iVal data member gehört zu einer union. Prüfen sie vor dem Zugriff auf m_boolVal den Wert von CDBVariant::m_dwType. Wenn m_dwType den Wert DBVT_SHORT hat, dann enthält m_iVal einen gültigen Wert; andernfalls liefert der Zugriff auf m_iVal ein zufälliges Resultat. Siehe auch: CDBVariant::m_dwType CDBVariant Overview | Class Members | Hierarchy Chart 1.2.2.6.3.7 CDBVariant::m_lVal Beschreibung: Speichert eine Variable vom Typ long. Der m_lVal data member gehört zu einer union. Prüfen sie vor dem Zugriff auf m_boolVal den Wert von CDBVariant::m_dwType. Wenn m_dwType den Wert DBVT_LONG hat, dann enthält m_lVal einen gültigen Wert; andernfalls liefert der Zugriff auf m_lVal ein zufälliges Resultat. Siehe auch: CDBVariant::m_dwType CDBVariant Overview | Class Members | Hierarchy Chart 1.2.2.6.3.8 CDBVariant::m_pbinary Beschreibung: Speichert eine Variable vom Typ CLongBinary. Um Auf diesen Member zuzugreifen verwenden sie die Methode GetBinaryData bzw. GetBinarySize. Der m_pbinary data member gehört zu einer union. Prüfen sie vor dem Zugriff auf m_pbinary den Wert von CDBVariant::m_dwType. Wenn m_dwType den Wert DBVT_BINARY hat, dann enthält m_pbinary einen gültigen Wert; andernfalls liefert der Zugriff auf m_pbinary ein zufälliges Resultat. Siehe auch: CDBVariant::m_dwType CDBVariant Übersicht | Class Members | Hierarchy Chart 1.2.2.6.3.9 CDBVariant::m_pdate Beschreibung: Speichert eine Variable vom Typ TIMESTAMP_STRUCT. Der m_pdate data member gehört zu einer union. Prüfen sie vor dem Zugriff auf m_pdate den Wert von CDBVariant::m_dwType. Wenn m_dwType den Wert DBVT_DATE hat, dann enthält m_pdate einen gültigen Wert; andernfalls liefert der Zugriff auf m_pdate ein zufälliges Resultat. Siehe auch: CDBVariant::m_dwType CDBVariant Overview | Class Members | Hierarchy Chart © XOn Siftware GmbH, 2008 75 Referenzhandbuch 1.2.2.6.3.10 CDBVariant::m_pstring Beschreibung: Speichert eine Variable vom Typ CString. Um Auf diesen Member zuzugreifen verwenden sie die Methode GetString. Der m_pstring data member gehört zu einer union. Prüfen sie vor dem Zugriff auf m_pstring den Wert von CDBVariant::m_dwType. Wenn m_dwType den Wert DBVT_STRING hat, dann enthält m_pstring einen gültigen Wert; andernfalls liefert der Zugriff auf m_pstring ein zufälliges Resultat. Siehe auch: CDBVariant::m_dwType CDBVariant Overview | Class Members | Hierarchy Chart 1.2.2.7 CDatabase Ein CDatabase Gegenstand stellt einen Anschluß zu einer Datenquelle dar, durch die Sie die Datenquelle zugreifen können. Eine Datenquelle ist ein spezifischer Instance der Daten, die auf einem Datenbankmanagementsystem (DBMS) beruht. Beispiele hierfür sind Microsoft SQL Server, Microsoft Access, Borland® dBASE® und xBASE. Sie können einen oder mehr CDatabase Gegenstände auf einmal zugreifen. Um CDatabase zu verwenden, konstruieren Sie einen CDatabase Gegenstand und verwenden Sie seine OpenEx Funktion. Siehe auch: CRecordset Class Members | Base Class 1.2.2.7.1 CDatabase Class Members Data Members: m_hdbc Konstruktoren: CDatabase Open Database Connectivity (ODBC) connection handlezu einer Datenquelle. Type HDBC. Close Erstellt ein CDatabase object. Sie müssen das Objekt initialisieren, indem Sie OpenEx oder Open aufrufen. Stellt einen Anschluß zu einer Datenquelle her (durch einen ODBC Treiber). Stellt einen Anschluß zu einer Datenquelle her (durch einen ODBC Treiber). Beendet eine Datenverbindung Datenbankattribute: GetConnect Bringt die ODBC connect Zeichenkette zurück, die Open OpenEx © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 76 SetLoginTimeout benutztwird, um den CDatabase Objekt an eine Datenquelle anzuschließen. Bringt ungleich Null zurück, wenn des CDatabase Objekt z.Z. an eine Datenquelle angeschlossen wird. Bringt den Namen der Datenbank z.Z. im Gebrauch ist zurück. Bringt ungleich Null zurück, wenn der CDatabase Objektupdatable ist(nicht Read-only). Bringt ungleich Null zurück, wenn die Datenquelle transactions unterstützt. Stellt die Zahl Sekunden ein, für das Login Time out ein. SetQueryTimeout Stellt die Zahl Sekunden ein, für dasQuery Time out ein. GetBookmarkPersistence Identifiziert die Operation welche bookmark Persistencen enthalten. Indentifieziert den Effekt einer transaktion auf einem geöffneten recordset Objekt. Indentifieziert den Effekt einer Rolback transaktion auf einem geöffneten recordset Objekt. IsOpen GetDatabaseName CanUpdate CanTransact GetCursorCommitBehavior GetCursorRollbackBehavior Datenbantoperationen: BeginTrans CommitTrans Rollback Cancel ExecuteSQL Database Overridables OnSetOptions Startet eine transaktion zu einer angebunden Datenquelle. Führt eine transaktion durch, die von BeginTrans durchgeführt wird. Macht alle Änderungen rückgängig, die während der aktuellen Transaktion ausgeführt wurden. Die Datenquelle erhält den Zustand, der beim Aufruf von BeginTrans herrschte. bricht einen asynchronen Betrieb oder ein Prozeß von einem zweiten Thread ab. Führt eine SQL Aussage durch. Keine Datensätze werden zurückgegeben. Aufgerufen durch das , um standart connect Optionen zu setzen. CDatabase Overview | Base Class Members 1.2.2.7.2 Member Functions 1.2.2.7.2.1 CDatabase::BeginTrans Syntax: © XOn Siftware GmbH, 2008 77 Referenzhandbuch BOOL BeginTrans(); Rückgabewert: Ungleich Null, wenn der Anruf erfolgreich war und Änderungen werden nur manuell committed; 0 andernfalls. Bemerkung: Verwenden Sie diese Funktion um eine transaktion mit einer verbunden Datenquelle zu starten. . Siehe auch: CDatabase::CommitTrans, CDatabase::Rollback, CRecordset::CanTransact CDatabase Overview | Class Members 1.2.2.7.2.2 CDatabase::Cancel Syntax: void Cancel( ); Bemerkung: Benennen Sie diese Mitgliedsfunktion, um zu verlangen daß das Datenquelle abgebrochen wird. Entweder durch ein asynchrone Operation oder ein Prozeß von einem zweiten Thread. Siehe auch: CDatabase Overview | Class Members 1.2.2.7.2.3 CDatabase::CanTransact Syntax: BOOL CanTransact( ) const; Rückgabewert: Ungleich Null, wenn die recordsets, die diesen CDatabase Objektverwenden, transaktionen erlauben; 0 andernfalls. Siehe auch: CDatabase::BeginTrans, CDatabase::CommitTrans, CDatabase::Rollback CDatabase Overview | Class Members 1.2.2.7.2.4 CDatabase::CanUpdate Syntax: BOOL CanUpdate( ); Rückgabewert: Ungleich Null, wenn der CDatabase Objekt Updates erlaubt; Siehe auch: CDatabase Overview | Class Members © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 78 1.2.2.7.2.5 CDatabase::CDatabase Syntax: CDatabase( ); Bemerkung: Konstruktor eines CDatabase Objekts. Nachdem Sie das Objekt erstellt haben, müssen Sie OpenEx oder Open aufrufen, um einen Anschluß zu einer spezifizierten Datenquelle herzustellen. Beispiel: // This example illustrates using CDatabase // in a CDocument-derived class. class CMyDocument : public CDocument { public: // Declare a CDatabase embedded in the document CDatabase m_dbCust; // ... }; // ... // Initialize when needed CDatabase* CMyDocument::GetDatabase( ) { // Connect the object to a data source if( !m_dbCust.IsOpen( ) && !m_dbCust.OpenEx( NULL ) ) return NULL; return &m_dbCust; } Siehe auch: CDatabase::OpenEx, CDatabase::Open CDatabase Overview | Class Members 1.2.2.7.2.6 CDatabase::Close Syntax: void Close( ); Bemerkung: Benennen Sie diese Funktion, wenn Sie sich von einer Datenquelle trennen möchten(disconnect). Sie müssen alle mögliche recordsets schließen, die mit dem CDatabase Gegenstand verbunden sind, bevor Sie diese Funktion aufrufen. Beispiel: // Close the current connection m_dbCust.Close( ); // Perhaps connect the object to a // different data source m_dbCust.OpenEx("DSN=MYDATASOURCE;UID=JOES"); Siehe auch: CDatabase::OpenEx, CDatabase::Open CDatabase Overview | Class Members © XOn Siftware GmbH, 2008 79 Referenzhandbuch 1.2.2.7.2.7 CDatabase::CommitTrans Syntax: BOOL CommitTrans( ); Rückgabewert: Ungleich Null, wenn die Updates erfolgreich ausgeführt wurden; 0 andernfalls.Wenn CommitTrans ausfällt, ist der Zustand der Datenquelle unbestimmt. Sie müssen die Daten überprüfen, um seinen Zustand festzustellen. Siehe auch: Database::BeginTrans, CDatabase::Rollback CDatabase Overview | Class Members 1.2.2.7.2.8 CDatabase::ExecuteSQL Syntax: void ExecuteSQL( LPCSTR lpszSQL ); Parameter: lpszSQL: Zeiger zu einer Zeichenkette, die einen gültigen SQL Befehl enthält durchzuführen. Bemerkung: Verwenden Sie diese Funktion wenn sie ein SQL- Komando direkt ausführen müssen. Siehe auch: CDatabase::SetLoginTimeout, CRecordset CDatabase Overview | Class Members 1.2.2.7.2.9 CDatabase::GetBookmarkPersistence Syntax: DWORD GetBookmarkPersistence( ); Rückgabewert: Eine Bitmaske, die die Betriebe kennzeichnet, durch die Bookmarks auf einem recordset Objekt fortbestehen. Bemerkung: Benutzen Sie diese Funktion, um die persistence der Bookmarks auf einem recordset Objekt nach bestimmten Operationen festzustellen. Die folgende Tabelle zeigt die Werte (Bitmaske), die im Rückgabewert von GetBookmarkPersistence kombiniert sein können. Bitmask value Bookmark persistence SQL_BP_CLOSE Bookmarks sind nach einer Requery Operation gültig. SQL_BP_DELETE Das Bookmark für eine Reihe ist nach einer Löschungoeration auf dieser Reihe gültig. SQL_BP_DROP Bookmarks sind nach einem Close gültig. SQL_BP_SCROLL Bookmarks sind nach jeder möglichen Operation gültig. SQL_BP_TRANSACTION Bookmarks sind gültig, nachdem einer Operation oder nach © XOn Siftware GmbH, 2008 1.2 Programmierreferenz SQL_BP_UPDATE SQL_BP_OTHER_HSTMT 80 einem Rolltback. Das Bookmark für eine Reihe ist nach einer UpdateOperation auf dieser Reihe gültig. Die Bookmarks, die mit einem recordset Objekt verbunden sind, sindauf einem zweiten recordset gültig. Siehe auch: CRecordset, CRecordset::CanBookmark, CRecordset::GetBookmark, CRecordset::SetBookmark CDatabase Overview | Class Members 1.2.2.7.2.10 CDatabase::GetConnect Syntax: void GetConnect(char* strValue, int strlen ); Parameter: char* strValue: Buffer für die Rückgabe des connect strings. int strlen: Länge des Buffers. Siehe auch: CDatabase::OpenEx, CDatabase::Open CDatabase Overview | Class Members 1.2.2.7.2.11 CDatabase::GetCursorCommitBehavior Syntax: int GetCursorCommitBehavior( ) const; Rückgabewert: Der Wert gibt an ob für ein offenes Recordset- Objekt eine Transaktion notwendig ist. Mehr Informationen finden sie unter Bemerkung. Bemerkung: Rufen sie diese Funktion um Information über die Auswirkung von CommitTrans- Operationen auf offenen Recordsets zu erhalten. Die folgende Tabelle zeigt die möglichen Rückgabewerte von GetCursorCommitBehavior und die zugehörigen Auswirkungen auf geöffnete Recordsets. Rückgabewert Auswirkung auf ein CRecordset Objekt SQL_CB_CLOSE Anruf CRecordset::Requery direkt nach der Transaktion commit. SQL_CB_DELETE Anruf CRecordset::Close direkt nach der Transaktion commit. SQL_CB_PRESERVE fährt mit den CRecordset Operationen fort. Siehe auch: CDatabase::GetCursorRollbackBehavior, CDatabase::CanTransact, CDatabase::BeginTrans, CDatabase::CommitTrans, CDatabase::Rollback, CRecordset CDatabase Overview | Class Members 1.2.2.7.2.12 CDatabase::GetCursorRollbackBehavior Syntax: © XOn Siftware GmbH, 2008 81 Referenzhandbuch int GetCursorRollbackBehavior( ); Rückgabewert: Ein Wert, der den Effekt von Transaktionen auf geöffnetem recordset anzeigt. Bemerkung: Benutzen sie diese Funktion, um festzustellen, wie ein Rollbackbetrieb Cursor auf geöffneten recordset Gegenständen wirkt. Die folgende Tabelle verzeichnet die möglichen Rückholwerte für GetCursorRollbackBehavior und der entsprechende Effekt auf das geöffnete recordset. Rückgabewert Auswirkung auf das CRecordset Objekt SQL_CB_CLOSE Anruf CRecordset::Requery direkt nach dem Verhandlung Rollback. SQL_CB_DELETE Anruf CRecordset::Close direkt nach dem Rollback. SQL_CB_PRESERVE Anruf CRecordset::Close direkt nach dem Rollback. Siehe auch: CDatabase::GetCursorCommitBehavior, CDatabase::CanTransact, CDatabase::BeginTrans, CDatabase::CommitTrans, CDatabase::Rollback, CRecordset CDatabase Overview | Class Members 1.2.2.7.2.13 CDatabase::GetDatabaseName Sybntax: void GetDatabaseName( char* strValue, int strLen); Parameter: · char* strValue: Buffer zum Speichern des Datenbanknamens. · int strLen: Grösse des Buffers Siehe auch: CDatabase::OpenEx, CDatabase::Open, CDatabase::GetConnect CDatabase Overview | Class Members 1.2.2.7.2.14 CDatabase::IsOpen Syntax: BOOL IsOpen( ) const; Rückgabewert: Nicht NULL wenn das CDatabase Object korrekt verbunden ist; Andernfalls 0. Bemerkung: Benutzen Sie diese Funktion , um festzustellen, ob derCDatabase Objekt z.Z. an eine Datenquelle angeschlossen ist. Siehe auch: CDatabase::OpenEx, CDatabase::Open CDatabase Overview | Class Members © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 82 1.2.2.7.2.15 CDatabase::OnSetOptions Syntax: void OnSetOptions( HSTMT hstmt ); Parameter: · hstmt: Der ODBC statmend handle, um festzustellen welche Optionen gesetzt sind. Bemerkung: Das Framework benutzt diese Fnktion, wenn er direkt eine SQL Statment mit der ExecutenSQL Funktion durchführt. CRecordset::OnSetOptions ruft diese Funktion auch auf. OnSetOptions stellt den login timeaut Wert ein.Wenn es vorhergehende Anrufe zum SetQueryTimeout gegeben hat und Funktionen arbeiten, reflektiert OnSetOptions die gegenwärtigen Werte; andernfalls stellt es Default-Werte ein. Siehe auch: CDatabase::ExecuteSQL, CDatabase::SetQueryTimeout, CRecordset::OnSetOptions CDatabase Overview | Class Members 1.2.2.7.2.16 CDatabase::Open Syntax: BOOL Open( LPCTSTR lpszDSN, BOOL bExclusive = FALSE, BOOL bReadOnly = FALSE, LPCTSTR l Rückgabewert: Ungleich Null wenn die Verbindung erfolgreich hergestellt werden konnte. Andernfalls NULL. Parameter: · lpszDSN: Gibt den Name der ODBC- Datenquelle an. (Siehe ODBC- Administrator in der Systemsteuerung). Wurde ein DSN- Wert im Parameter lpszConnect angegeben, dann darf er im lpszConnect nichtmehr angegeben werden. In diesem Fall sollte lpszDSN NULL sein. Wird keine Datenquelle angegeben geht ein Dialogfenster auf, das die nötigen Informationen vom Anwender abfragt. · bExclusive: Dieser Parameter wird in der aktuellen Version von CDatabase noch nicht unterstützt. Ist der Parameter TRUE wird eine Fehler erzeugt. · bReadOnly: TRUE wenn sie eine "read-only" verbindung aufbauen wollen. Alle Methoden des Recordsets übernehmen dieses Attribut. Der Default-Wert ist FALSE. · lpszConnect: Gibt den connect string an. Der connect string kann Informationen enthalten über - Name der Datenquelle - Benutzeridentifikation - Benutzerpasswort - Weitere Informationen je nach Datenquelle und ODBC- Treiber Der connect string mit Mit "ODBC;" beginnen. Der String "ODBC;" zeigt an, daß es sich um eine ODBC- Datenquelle handelt. Dies dient zur Aufwärtskompatibilität gegenüber anderen Datenquellen. · bUseCursorLib: TRUE wenn sie die ODBC Cursor Library DLL laden wollen. Die Cursor-Bibliothek verdeckt etwas Funktionalität des zugrundeliegenden ODBC Treibers und verhindert den Gebrauch von dynasets (Falls der Treiber dies unterstützt). Die einzigen Cursor, die sie mit der ODBC Cursor Library verwenden können sind statische Snapshots und forward-only Cursor. Der Default-Wert © XOn Siftware GmbH, 2008 83 Referenzhandbuch ist TRUE. Wenn sie planen, einen CRecordset Objekt direkt vonCRecordset zu erstellen, ohne von ihm abzuleiten, sollten Sie nicht die Cursor-Bibliothek laden. Bemerkung: Benutzen Sie diese Funktion, um ein CDatabase Objekt zu initialisieren. Ihr Datenbankobjekt muß initialisiert werden, bevor Sie diese benutzen können, um einen CRecordset- Objekt zu konstruieren. Anmerkung: Der Aufruf der OpenEx Funktion ist die bevorzugte Weise, sich mit einer Datenquelle zu verknüpfen und Ihren Datenbankgegenstand zu initialisieren. Wenn die Parameter in Ihrem Open Aufruf nicht genügende Informationen enthalten, um die Verknüpfung herzustellen, öffnet der ODBC Treiber ein Dialogfeld, um die notwendigen Informationen vom Benutzer einzuholen. Wenn Sie wünschen, können Sie Ihr eigenes Dialogfeld öffnen, bevor Sie Open aufrufen, um Informationen vom Benutzer zu erhalten wie etwa ein Kennwort. Diese Information übergeben sie dann im Parameter lpszConnect der Open- Methode. Beispiel: // Embed a CDatabase object // in your document class CDatabase m_dbCust; // Connect the object to a // data source (no password) // the ODBC connection dialog box // will always remain hidden m_dbCust.Open( _T( "MYDATASOURCE" ), FALSE, FALSE, _T( "ODBC;UID=JOES" ), // ...Or, query the user for all // connection information m_dbCust.Open( NULL ); Siehe auch: CDatabase::OpenEx, CDatabase::CDatabase, CDatabase::Close, CRecordset::Open CDatabase Overview | Class Members 1.2.2.7.2.17 CDatabase::OpenEx Syntax: BOOL OpenEx( LPCTSTR lpszConnectString, DWORD dwOptions = 0 ); Rückgabewert: Ungleich Null wenn die Verbindung erfolgreich hergestellt werden konnte. Andernfalls NULL. Parameter: · lpszDSN: Gibt den Name der ODBC- Datenquelle an. (Siehe ODBC- Administrator in der Systemsteuerung). Wurde ein DSN- Wert im Parameter lpszConnect angegeben, dann darf er im lpszConnect nichtmehr angegeben werden. In diesem Fall sollte lpszDSN NULL sein. Wird keine Datenquelle angegeben geht ein Dialogfenster auf, das die nötigen Informationen vom Anwender abfragt. · dwOptions: Ein Bitmaske, welche eine Kombination der folgenden Werte spezifiziert.Der voreingestellte Wert ist 0, meaning that the database will be opened as shared with write access, the ODBC Cursor Library DLL will not be loaded, and the ODBC connection dialog box will display only if there is not enough information to make the connection. - CDatabase::openExclusive: Wird in dieser Version nicht unterstützt. - CDatabase::openReadOnly: Öffnet die Datenquelle als "read-only".. © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 84 - CDatabase::useCursorLib: Laden Sie das ODBC Cursor-Bibliothek DLL. Die CursorBibliothek verdeckt etwas Funktionalität des zugrundeliegenden ODBC Treibers und verhindert den Gebrauch von dynasets. - CDatabase::noOdbcDialog: Zeigen Sie das ODBC Anschluß-Dialogfeld, nicht unabhängig davon an, ob genügende Anschlußinformationen geliefert werden. - CDatabase::forceOdbcDialog: Zeigt immer das ODBC Anschluß-Dialogfeld an. Bemerkung: Benutzen Sie diese Funktion, um ein CDatabase Objekt zu initialisieren. Ihr Datenbankobjekt muß initialisiert werden, bevor Sie diese benutzen können, um einen CRecordset- Objekt zu konstruieren. Anmerkung: Der Aufruf der OpenEx Funktion ist die bevorzugte Weise, sich mit einer Datenquelle zu verknüpfen und Ihren Datenbankgegenstand zu initialisieren. Wenn die Parameter in Ihrem Open Aufruf nicht genügende Informationen enthalten, um die Verknüpfung herzustellen, öffnet der ODBC Treiber ein Dialogfeld, um die notwendigen Informationen vom Benutzer einzuholen. Wenn Sie wünschen, können Sie Ihr eigenes Dialogfeld öffnen, bevor Sie Open aufrufen, um Informationen vom Benutzer zu erhalten wie etwa ein Kennwort. Diese Information übergeben sie dann im Parameter lpszConnect der Open- Methode. Beispiel: // Embed a CDatabase object // in your document class CDatabase m_dbCust; // Connect the object to a // read-only data source where // the ODBC connection dialog box // will always remain hidden m_dbCust.OpenEx( _T( "DSN=MYDATASOURCE;UID=JOES" ), CDatabase::openReadOnly | CDatabase::noOdbcDialog ); Siehe auch: CDatabase::Open, CDatabase::CDatabase, CDatabase::Close, CRecordset::Open CDatabase Overview | Class Members 1.2.2.7.2.18 CDatabase::Rollback Syntax: BOOL Rollback( ); Rückgabewert: Ungleich Null, wenn die Transaktion erfolgreich aufgehoben wurde; 0 andernfallsIf, das ein Rollbackanruf fehlgeschlagen, die Datenquelle und Transaktionszustände sind unbestimmt. Wenn Rollback 0 zurückbringt,müssen Sie die Datenquelle überprüfen, um seinen Zustand festzustellen. Bemerkung: Rufen sie diese Funktion auf um die Änderungen der letzten Transaktion rückgängig zu machen. Alle CRecordset AddNew, Edit, Delete, und Update Aufrufe seit dem letzten BeginTrans werden rückgängig gemacht zu dem vorherigen Zustand. Nach dem Aufruf von Rollback ist die Transaktion beendet. Für eine weitere Transaktion müssen sie erneut BeginTrans aufrufen. Siehe auch: CDatabase::BeginTrans, CDatabase::CommitTrans CDatabase Overview | Class Members © XOn Siftware GmbH, 2008 85 Referenzhandbuch 1.2.2.7.2.19 CDatabase::SetLoginTimeout Syntax: void SetLoginTimeout( DWORD dwSeconds ); Parameter: dwSeconds: Die Zahl den Sekunden, zum bevor ein Login time out meldet. Bemerkung: Rufen sie diese Funktion nur vor den OpenEx oder Open auf, um die default Login Time zu ändern.Verwenden Sie diese Funktion, um die Voreinstellung der Zahl der Sekunden für das Time out zu ändern. Dies kann bei Netzwekproblemen oder Datenzugangsproblemen erforderlich sein. Voreingestellt sind 15 Sekunden. Nicht alle Datenquellen unterstützen diese Zeiteinstellung. Siehe auch: CDatabase::OnSetOptions, CDatabase::SetQueryTimeout CDatabase Overview | Class Members 1.2.2.7.2.20 CDatabase::SetQueryTimeout Syntax: void SetQueryTimeout( DWORD dwSeconds ); Parameter: dwSeconds: Die Zahl den Sekunden, zum bevor eine Query time out meldet. Bemerkung: Verwenden Sie diese Funktion, um die Voreinstellung der Zahl der Sekunden für das Time out zu ändern. Dies kann bei Netzwekproblemen oder Datenzugangsproblemen erforderlich sein. Voreingestellt sind 15 Sekunden. Nicht alle Datenquellen unterstützen diese Zeiteinstellung. Siehe auch: CDatabase::SetLoginTimeout CDatabase Overview | Class Members 1.2.2.7.3 Data Members 1.2.2.7.3.1 CDatabase::m_hdbc Bemerkung: Enthält einen allgemeinen Handler zu einem ODBC Datenquelle -- ein “connection handle” Normalerweise haben Sie keine Notwendigkeit, diese Mitgliedsvariable direkt zugänglich zu machen. Stattdessen teilt das Framework den handler zu, wenn Sie OpenEx verwenden oder sich öffnen. Unter einigen Umständen müssen Sie den Handler direkt benutzen. Z.B. wenn Sie ODBC API Funktionen Klasse CDatabase direkt erstellen müssen, können Sie einen connection handle als Parameter benötigen.Siehe Code Beispiel Beispiel: © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 86 // Using m_hdbc for a direct ODBC API call. // m_db is the CDatabase object; m_hdbc is // its HDBC member variable nRetcode = ::SQLGetInfo( m_db.m_hdbc, SQL_ODBC_SQL_CONFORMANCE, &nValue, sizeof( nValue ), &cbValue ); Siehe auch: CDatabase::OpenEx, CDatabase::Open, CDatabase::Close CDatabase Overview | Class Members 1.2.2.8 CRecordset Ein CRecordset Objekt stellt Daten Sätze dar, die von einer Datenquelle selektiert wurde. CRecordset Objekte werden in zwei Formaten verwendet: Dynasets und Snapshots.Der Dynaset Modus synchronisiert die Daten mit den Datenbankänderungen der anderen Benutzer. Ein Snapshot ist eine statische Ansicht der Daten, die Daten weden eingefrohen, zu dem Zeitpunkt als das Recordset geöffnet wurde. Um mit Recordset zu arbeiten erstellen Sie gewöhnlich ein anwendungsspezifische Instance von CRecordset. Sie wählen Datensätze von einer Datenquelle für das Recordset aus und können dann: · Durch die Datensätze scrollen. · Filtern des Recordsets um bestimmte Datensätze aus den vorhandenen Daten zu bekommen. · Sortieren des Recordsets · Parameterisieren Sie den Recordset, um seine Auswahl mit den Informationen anzupassen, die zur Laufzeit nicht bekannt sind. Um Ihre Klasse zu benutzen, öffnen Sie eine Datenbank und erstellen Sie eine recordset Objekt dessen Constructor einen Zeiger zu Ihrer CDatabase Klasse übergeben wird. Dann rufen Sie die Methode Open der recordsets Klasse auf und geben Sie an ob sie Dynasets oder Snapshots verwenden wollen. Rufen Sie Open auf und selectieren Sie die Daten von der Datnquelle. Nachdem das Recordset Objekt geöffnet wurde, können sie die Methoden und Datenelemente des Objektes zum scrollen inerhalb der Daten nutzen. Die vorhandenen Operationen hängen ab, ob das objekt ein dynaset oder ein Snapshot ist und ob Sie "bulk row fetching" implementiert haben. Wenn Sie fertig sind, rufe die Funktion Close auf und lösche das Objekt. Siehe auch: Class Members | CDatabase 1.2.2.8.1 CRecordset Class Members Daten Elemente Construction Recordset Attribute Recordset Navigation Operationen Andere Recordset Operationen © XOn Siftware GmbH, 2008 87 Referenzhandbuch Recordset Overridables Daten Elemente: m_hstmt m_nFields m_nParams m_pDatabase Enthält den ODBC Statement Handler für das Recordset. Type HSTMT. Enthält die Anzahl von Datenfeldern im Recordset. Type UINT. Enthält die Anzahl der Parameter im Recordset. Type UINT. Enthält einen Pointer auf das CDatabase Object welches mit dem Recordset verbunden ist. Konstruktion: CRecordset Open Close Recordset Attribute: CanBookmark CanRestart CanScroll CanTransact GetODBCFieldCount GetRecordCount GetStatus GetTableName GetSQL IsOpen IsBOF IsEOF IsDeleted Erstellt eine CRecordset Objekt. Ihre abgeleitete Klasse muß einen Constructor zur Verfügung stellen. Öffnet das recordset indem die Tabelle oder führt die Abfrage aus die durch das Recordset dargestellt wird. Schliest das Recordset und die ODBC HSTMT Verbindung mit ihm. Gibt nicht Null zurück wenn das Recordset Bookmarks unterstützt. Holt nicht Null, wenn Requery die Recordset query erneut ausführen kann. Gibt nicht Null, wenn es möglich ist durch die Records zu scrollen. Holt nicht Null, wenn die Datenquelle Transaktionen unterstützt. Holt die Anzahl der Felder des Recordsets. Gibt die Anzahl von Records, die sich im Recordset befinden. Gibt den Status des recordset: den Index des aktuellen Satzes und ob ein abschließender Zählerstand der Sätze ereicht worden ist. Holt den Namen der Tabelle aufwelchen die Tabelle beruht. Gibt den SQL String der dieen Recordset selectiert. Gibt nicht 0 zurück, wenn Open has been called previously. Gibt nicht Null zurück wenn der Datenzeiger vor dem ersten Datensatz steht. Gibt nicht Null zurück wenn der letzte Datensatz überschritten ist. Gibt nicht null zurück, wenn das Returns nonzero if the recordset is positioned on a deleted record. © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 88 Recordset Navigationsoperationen: GetBookmark Weist den Bookmarkwert eines Datensatzes ein Parameter Objekt zu. Move Wechselt zu einen bestimmten, durch eine Nummer angegebenen, Datensatz des Recordsets. MoveFirst Wechselt zum ersten Datensatz im Recordset. Teste zuerst mitels IsBOF. MoveLast Wechselt zum letzten Datensatz des Recordsets. Teste vorher mittels IsEOF. MoveNext Wechselt zum nächsten Datensatz im Recordset. Teste vorher mittels IsEOF. MovePrev Wechselt zum vorhergehenden Datensatz. Teste vorher mittels IsBOF. SetAbsolutePosition Gibt die Position des Datensatzes im Recordset, mittels einer Nummer zurück. SetBookmark Bringt das recordset auf den Datensatz in Position, der durch das Bookmark spezifiziert wurde. Andere Recordset Operationen: Cancel FlushResultSet GetFieldValue GetODBCFieldInfo GetRowsetSize GetRowsFetched GetRowStatus IsFieldDirty IsFieldNull RefreshRowset Requery SetLockingMode SetRowsetCursorPosition Recordset Overridables © XOn Siftware GmbH, 2008 Bricht eine asynchrone Operation ab. Bringt ungleich Null zurück, wenn es ein anderes Resultat Set gibt, wenn eine vorbestimmte Query verwendet wird. Gibt den Wert eines Datenfeldes zurück. Gibt eine spezielle Art der Information über ein Datenfeld zurück. Gibt die Zahl Sätzen zurück, die während eines einzelnen Vorgangs zurückgeholt werden. Returns the actual number of rows retrieved during a fetch. Returns the status of the row after a fetch. Bringt ungleich Null zurück, wenn das spezifizierte Datenfeld im aktuellen Datensatz geändert worden ist. Bringt ungleich Null zurück, wenn das spezifizierte Feld im aktuellen Datensatz Null ist (hat keinen Wert). Erneuert die Daten und den Status des spezifizierten Zeile (n). Läßt die Abfrage der recordsets wieder weiter laufen, um die ausgewählten Sätze zu erneuern. Stellt den sperrenmodus auf "optimistic" Sperrung (default) oder "pessimistic" Sperrung ein. Stellt fest, wie die Datensätze für Aktualisierungsvorgänge gesperrt sind. Bringt den Cursor auf die spezifizierte Zeile innerhalb des Zeilensets in Position. 89 Referenzhandbuch Check CheckRowsetError GetDefaultConnect GetDefaultSQL OnSetOptions Called to examine the return code from an ODBC API function. Called to handle errors generated during record fetching. Called to get the default connect string. Called to get the default SQL string to execute. Called to set options for the specified ODBC statement. CRecordset Overview 1.2.2.8.2 Member Functions 1.2.2.8.2.1 CRecordset::CanBookmark Syntax: BOOL CanBookmark( ); Rückgabewert: Nicht Null wenn der Recordset Bookmarks unterstützt; andernfalls 0. Kommentar: Diese Funktion ist unabhängig von der CRecordset::useBookmarks Option im dwOptions Parameter der Open Funktion. CanBookmark zeigt an, ob der gegebene ODBC Treiber Bookmarks unterstützen. CRecordset::useBookmarks zeigt an, ob Bookmarks vorhanden sind, vorausgesetzt das sie unterstützt werden. Siehe auch: CRecordset::GetBookmark, CRecordset::SetBookmark CRecordset Overview | Class Members 1.2.2.8.2.2 CRecordset::Cancel Syntax: void Cancel( ); Beschreibung: Verwenden Sie diese Funktion, um eine asyncrone Operation oder eine Operation eines anderen threads abzubrechen. Siehe auch: CRecordset Overview | Class Members © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 1.2.2.8.2.3 CRecordset::CanRestart Syntax: BOOL CanRestart( ); Rückgabewert: Nicht null wenn wiederholte Abfragen erlaubt sind; Andernfalls 0. Siehe auch: CRecordset::Requery CRecordset Overview | Class Members 1.2.2.8.2.4 CRecordset::CanScroll Syntax: BOOL CanScroll( ); Rückgabewert: Nicht null wenn der recordset scrollen erlaubt; andernfalls 0. Bemerkung: Verwenden Sie diese Funktion um festzustellen ob das Recordset scrollen erlaubt. Siehe auch: CRecordset Overview | Class Members 1.2.2.8.2.5 CRecordset::CanTransact Syntax: BOOL CanTransact( ); Rückgabewert: Nicht Null wenn der recordset transaktionen zulässt; andernfalls 0. Siehe auch: CDatabase::BeginTrans, CDatabase::CommitTrans, CDatabase::Rollback CRecordset Overview | Class Members 1.2.2.8.2.6 CRecordset::Check Syntax: virtual BOOL Check( RETCODE nRetCode ) const; Rückgabewert: Nicht Null wenn der Wert von nRetCode SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_NO_DATA_FOUND oder SQL_NEED_DATA ist; ansonsten 0. Parameter: nRetCode: Ein ODBC API Rückgabewert. Beschreibung: © XOn Siftware GmbH, 2008 90 91 Referenzhandbuch Verwenden Sie diese Funktion um den ODBC API Rückgabewert zu ermitteln. Die folgenden Tabelle listet die möglichen Werte für RetCode auf. nRetCode Description SQL_SUCCESS Funktion erfolgreich durchgeführt;es sind keine zusätzlichen Informationen vorhanden. SQL_SUCCESS_WITH_INFO Funktion führte zum erfolgreich, vielleicht mit einem kleinen Fehler. Zusätzliche Informationen können durch den Aufruf von SQL-Error ermittelt werden. SQL_NO_DATA_FOUND Alle möglichen Datensätze vom Ergebnis wurden geholt SQL_ERROR Funktionsaufruf ist fehlgeschlagen. Zusätzliche Informationen können durch den Aufruf von SQL-Error ermittelt werden. SQL_INVALID_HANDLE Function failed due to an invalid environment handle, connection handle, or statement handle. This indicates a programming error. No additional information is available from SQLError. SQL_STILL_EXECUTING Eine asynchronously Funktion ist noch am laufen. SQL_NEED_DATA Bei der Verarbeitung einer Anweisung, stellte der Treiber fest, daß die Anwendung Parameterdatenwerte senden muß. Siehe auch: Recordset Overview | Class Members 1.2.2.8.2.7 CRecordset::CheckRowsetError Syntax: void CheckRowsetError( RETCODE nRetCode ); Parameter: nRetCode: Ein ODBC API Funktions Rückgabewert. Beschreibung: Diese Funktion behandelt Fehler, die während des Datenholvorganges geschehen oder die für den Benutzer interesant sind. Es ist möglich die CheckRowsetError Funktion außer Funktion zu setzen um eine eigene Fehlerbehandlung zu implementieren. CheckRowsetError wird automatisch in einer Zeiger Navigations Operations wie beispielsweise Open, Requery, oder einem Move aufgerufen. Es wird eine entsprechende ODBC API Funktion SQLExtendedFetch zurückgegeben. Die volgende Tabelle listet die möglichen Werte für nRetCode auf.. nRetCode Description SQL_SUCCESS Funktion erfolgreich durchgeführt;es sind keine zusätzlichen Informationen vorhanden. SQL_SUCCESS_WITH_INFO Funktion führte zum erfolgreich, vielleicht mit einem kleinen Fehler. Zusätzliche Informationen können durch den Aufruf von SQL-Error ermittelt werden. SQL_NO_DATA_FOUND Alle möglichen Datensätze vom Ergebnis wurden geholt. SQL_ERROR Funktionsaufruf ist fehlgeschlagen. Zusätzliche Informationen können durch den Aufruf von SQL-Error ermittelt werden. © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 92 SQL_INVALID_HANDLE Funktionsaufruf ist fehlgeschlagen aufgrund eines ungültigen Datenhandlers, Verbindungshandlers, oder Anweisungs Handlers. Dieses zeigt einen Programmierung Fehler an. Zusätzliche Informationen können nicht durch den aufruf von SQL-Error ermittelt werden. SQL_STILL_EXECUTING Eine asynchronously Funktion ist noch am laufen. Siehe auch: CRecordset::GetRowsetSize, CRecordset::Move CRecordset Overview | Class Members 1.2.2.8.2.8 CRecordset::Close Syntax: void Close( ); Beschreibung: Rufe diese Funktion auf um den recordset zu schließen. Die ODBC HSTMT und der Speicher der vom Framework verwendet wird, wird freigegeben. Sie können Open aufrufen nachdem Close aufgerufen wurde. Dies öffnet Ihr Recordset Objekt erneut. Dioes ist eine Alternative zu Requery. Beispiel: // Example for CRecordset::Close // Construct a snapshot object CCustSet rsCustSet( NULL ); if( !rsCustSet.Open( ) ) return FALSE; // Use the snapshot ... // Close the snapshot rsCustSet.Close( ); // Destructor is called when the function exits Siehe auch: CRecordset::CRecordset, CRecordset::Open, CRecordset::Requery CRecordset Overview | Class Members 1.2.2.8.2.9 CRecordset::CRecordset Syntax: CRecordset( CDatabase* pDatabase = NULL); Parameter: · pDatabase: Zeiger auf ein Objekt vom Typ CDatabase oder der Wert NULL. Wenn der Wert nicht NULL ist und die Open- Methode des Datenbankobjektes nicht aufgerufen wurde versucht das Recordsetobjekt die Datenbank zu öffnen während des aufrufs von CRecordset::Open. Wenn sie NULL übergeben wird ein Datenbankobjekt angelegt und anhand der Verknüpfungsinformationen mit einer Datenbank verbunden. Bemerkung: Legt ein CRecordset object an. © XOn Siftware GmbH, 2008 93 Referenzhandbuch Übergeben sie NULL an den CRecordset- Konstruktor damit automatisch ein CDatabase Objekt angelegt und verknüpft wird. Dies ist eine nützliche Abkürzung um nicht im Vorraus ein Datenbankobjekt anlegen und verknüpfen zu müssen. Siehe auch: CRecordset Overview CRecordset::Open, CRecordset::Close Class Members | Hierarchy Chart 1.2.2.8.2.10 CRecordset::FlushResultSet Syntax: BOOL FlushResultSet( ) const; Rückgabewert: Nonzero if there are more result sets to be retrieved; otherwise 0. Remarks Call this member function to retrieve the next result set of a predefined query (stored procedure), if there are multiple result sets. You should call FlushResultSet only when you are completely finished with the cursor on the current result set. Note that when you retrieve the next result set by calling FlushResultSet, your cursor is not valid on that result set; you should call the MoveNext member function after calling FlushResultSet. If a predefined query uses an output parameter or input/output parameters, you must call FlushResultSet until it returns FALSE (the value 0), in order to obtain these parameter values. FlushResultSet calls the ODBC API function SQLMoreResults. If SQLMoreResults returns SQL_ERROR or SQL_INVALID_HANDLE, then FlushResultSet will throw an exception. For more information about SQLMoreResults, see the ODBC SDK Programmer's Reference. CRecordset Overview | Class Members | Hierarchy Chart 1.2.2.8.2.11 CRecordset::GetBookmark Syntax: void GetBookmark( CDBVariant& varBookmark ); Parameter: · varBookmark: Die Referenz zu einem CDBVariant Objekt welches ein Bookmark auf den current record symbolisiert. Bemerkung: Benutzen Sie diese Funktion, um den Bookmarkwert für den aktuellen Datensatz zu erhalten. © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 94 Wenn Sie feststellen wollen ob Bookmarks unterstützt weder rufen Sie CanBookmark auf. Um Bookmarks zur Verfügung zu stellen, falls diese unterstützt werden, müssen Sie die CRecordset:: useBookmarks Option im dwOptions Parameter der Open Funktion benutzen. Getbookmark weist den Wert des Bookmarks für den aktuellen Satz einer CDB-Variant Objekt zu. Um zu dem Datensatz jederzeit zurück kehren zu können, nachdem man zu einem anderen Datensatz besucht hat, muß manSetBookmark mit dem zugehörigen CDVariant Objekt aufrufen. Amnmerkung: Nach bestimmten recordset- Operationen sind Bookmarks nicht mehr gültig. Siehe auch: CRecordset::CanBookmark, CRecordset::SetBookmark, CDatabase::GetBookmarkPersistence CRecordset Overview | Class Members 1.2.2.8.2.12 CRecordset::GetDefaultConnect Syntax: void GetDefaultConnect(char* strValue,int strLen ); Partameter: · strValue: Ein Char Pointer auf ein Array, in dem der Default Connect String geschrieben wird. · strLen: Länge des Arrays von strValue Bemerkung: Das Framework benutzt diese Funktion um den default connect string der Datenquelle, der auf dem Recordsets basiert, zu erhalten. Siehe auch: CRecordset Overview | Class Members 1.2.2.8.2.13 CRecordset::GetDefaultSQL Syntax: void GetDefaultSQL(char* strValue,int strLen); Parameter: · strValue: Eine Char Referenz auf ein Array das den Default SQL Statement enthält. · strLen: länge des strValue Array. Bemerkung: Das Framwork ruft diese Funktion auf, um die SQL Anweisung zu erhalten, auf der das recordset basiert. Diese kann ein Tabelle Name oder eine SQL SELECT Anweisung sein. Sie definieren indirekt die default SQL Anweisung, indem Sie Ihre recordset Klasse mit ClassWizard deklariert, und ClassWizard Platformen führt diese Aufgabe für Sie durch. Wenn Sie die SQL Anweisung benötigen,auf die der Recordset, zum Zeitpunkt als er geöffnet wurde basiert rufen Sie GetSQL auf, der die SQL Anweisung zurückgibt. Sie können die default SQL Zeichenkette in der Ihrer Klasse mittels GetdefaultSQL überschreiben. Hinweis: Der Tabellenname ist leer, wenn das Framework nicht einen Tabellennamen kennzeichnen © XOn Siftware GmbH, 2008 95 Referenzhandbuch konnte, wenn mehrfache Tabellennamen angegeben wurden oder wenn eine Aufrufanweisung nicht interpretiert werden konnte. Beachten Sie, daß, wenn Sie ein CALL Stement verwenden, Sie keine Leerzeichen zwischen der lockigen Klammer und dem AUFRUF-Schlüsselwort einsetzen dürfen. Ausserdem sollten Sie Leerzeichen vor der geschweiften Klammer oder vor dem SELECT Schlüsselwort in einer SELECT Anweisung einsetzen. Siehe auch: CRecordset::GetSQL CRecordset Overview | Class Members 1.2.2.8.2.14 CRecordset::GetFieldValue Syntax: void GetFieldValue( void GetFieldValue( void GetFieldValue( void GetFieldValue( const char* int nIndex, const char* int nIndex, lpszName, CDBVariant* varValue, int nFieldType = CDBVariant& varValue, int nFieldType = DEFAULT_F lpszName, char* strValue, int nLen ); char* strValue, int len ); Parameter: · lpszName: Name des Datenbankfeldes. · varValue: Zeiger auf ein CDBVariant Objekt, das den Wert des Datenbankfeldes erhält. · nIndex: The zero-based index of the field. · strValue: A reference to a CString object that will store the field's value converted to text, regardless of the field's data type. · nFieldType: Der ODBC C Datentyp des Datenbankfeldes. Wenn man den Defaultwert verwendet ( DEFAULT_FIELD_TYPE) ermittelt die Methode GetFieldValue den C- Datentyp aus dem SQLDatentyp anhand nachfolgender Tabelle. Andernfalls können sie den Datentyp direkt angeben oder einen kompatiblen Datentyp auswählen. Zum Beispiel kann jeder Datenbanktyp als SQL_C_CHAR übertragen werden. C data type SQL data type SQL_C_BIT SQL_BIT SQL_C_UTINYINT SQL_TINYINT SQL_C_SSHORT SQL_SMALLINT SQL_C_SLONG SQL_INTEGER SQL_C_FLOAT SQL_REAL SQL_C_DOUBLE SQL_FLOAT SQL_DOUBLE SQL_C_TIMESTAMP SQL_DATE SQL_TIME SQL_TIMESTAMP SQL_C_CHAR SQL_NUMERIC SQL_DECIMAL SQL_BIGINT SQL_CHAR SQL_VARCHAR SQL_LONGVARCHAR SQL_C_BINARY SQL_BINARY SQL_VARBINARY SQL_LONGVARBINARY Weitere Informationen über ODBC- Datentypen finden sie unter anderem in den Kapiteln "SQL © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 96 Data Types" und "C Data Types" im Anhang D der ODBC SDK Programmer's Reference von Microsoftâ. Bemerkung: Rufen sie diese Funktion auf um daten aus dem aktiven Record zu erhalten. Sie können ein Feld entweder mit Namen oder mit Index identifizieren. Sie können den Feldwert entweder in einem CDBVariant oder in einem String ablegen. Sie können GetFieldValue verwenden um zur laufzeit dynamisch auf die Daten zugreifen zu können. GetFieldValue ruft die ODBC API Funktion SQLGetData. Wenn ihr Treiber SQL_NO_TOTAL als Länge des Feldwertes ausgibt, liefert GetFieldValue einen Fehler. Beispiel: Das Beispiel demonstriert Aufrufe von GetFieldValue für ein Recordset Objekt. // Create and open a database object; // do not load the cursor library CDatabase db; db.OpenEx( NULL, CDatabase::forceOdbcDialog ); // Create and open a recordset object // directly from CRecordset. Note that a // table must exist in a connected database. // Use forwardOnly type recordset for best // performance, since only MoveNext is required CRecordset rs( &db ); rs.Open( CRecordset::forwardOnly, _T( "SELECT * FROM SomeTable" ) ); // Create a CDBVariant object to // store field data CDBVariant varValue; // Loop through the recordset, // using GetFieldValue and // GetODBCFieldCount to retrieve // data in all columns short nFields = rs.GetODBCFieldCount( ); while( !rs.IsEOF( ) ) { for( short index = 0; index < nFields; index++ ) { rs.GetFieldValue( index, varValue ); // do something with varValue } rs.MoveNext( ); } rs.Close( ); db.Close( ); Hinweis: CRecordset hat keine SetFieldValue member Funktion und ist daher read-only. | Siehe auch: CRecordset Overview CRecordset::GetODBCFieldCount, CRecordset::GetODBCFieldInfo, CRecordset:: SetRowsetCursorPosition Class Members | Hierarchy Chart © XOn Siftware GmbH, 2008 97 Referenzhandbuch 1.2.2.8.2.15 CRecordset::GetODBCFieldCount Syntax: short GetODBCFieldCount( ) const; Rückgabewert: Die Anzahl von Feldern im recordset. Bemerkung: Benutzen Sie die Funktion, um die Gesamtzahl Feldern in Ihrer recordset Objekt zu ermitteln. Siehe auch: CRecordset::GetFieldValue CRecordset Overview | Class Members 1.2.2.8.2.16 CRecordset::GetODBCFieldInfo Syntax: void GetODBCFieldInfo( LPCTSTR lpszName, CODBCFieldInfo& fieldinfo ); void GetODBCFieldInfo( short nIndex, CODBCFieldInfo& fieldinfo ); Parameter: · lpszName: Der Name des Datenfeldes. · fieldinfo: Ein Zeiger auf die CODBCFieldInfo Structur. · nIndex: Die Nuill basiert index des Datenfeldes. Bemerkung: Benutzen Sie diese Funktion, um Informationen über die Felder im recordset einzuholen. Eine Version der Funktion läßt Sie ein Feld namentlich angeben. Die andere Version läßt Sie ein Feld durch einen Index angeben. Siehe auch: CRecordset::GetFieldValue CRecordset Overview | Class Members 1.2.2.8.2.17 CRecordset::GetRecordCount Syntax: long GetRecordCount( ) const; Rückgabewert: Die Anzahl der Sätzen im Recordset; 0 wenn das recordset keine Sätze enthält; oder -1, wenn der Rekordzählimpuls nicht festgestellt werden kann. Bemerkung: Verwenden Sie diese Funktuon, um die Größe des recordset festzustellen. Siehe auch: CRecordset::MoveLast, CRecordset::MoveNext, CRecordset::IsEOF, CRecordset::GetStatus CRecordset Overview | Class Members © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 98 1.2.2.8.2.18 CRecordset::GetRowsetSize Syntax: DWORD GetRowsetSize( ) const; Rückgabewert: Die Anzahl von Reihen die bei einer Abfrage zurückgegen werden. Beschreibung: Benutzen Sie diese Funktion, um die Anzahl der aktuellen Zeilen zu errfahren, die Sie während einer Abfrage erhalten würden. Wenn Sie bulk row fetching verwenden, ist dies die default rowset Größe (25), wenn das recordset geöffnet ist. Andernfalls ist dies 1. Um bulk row fetching zu implementieren, müssen Sie die CRecordset::useMultiRowFetch Option im dwOptions Parameter der Open Funktion spezifizieren. Siehe auch: CRecordset::Open, CRecordset::CheckRowsetError CRecordset Overview | Class Members 1.2.2.8.2.19 CRecordset::GetRowsFetched Syntax: DWORD GetRowsFetched( ); Rückgabewert: Die Anzahl von Reihen die duche eine Abfrage zurückgegebn wird. Bemerkung: Verwenden Sie diese Funktion um festzustellen wieviele Zeilen von der Datenbank zurückgegen werden. Dies ist nützlich wenn Sie bulk row fetching verwenden. Als Beispiel, Sie haben ein Recordset mit 10 Datensätzen und die rowset Größe wird auf 4 festgelegt; nun springen Sie mit MoveNext bis Sie das Ende (EOF) ereichen; Sie haben nun 2 Datensätze bekommen. Um bulk row fetching zu verwenden müßen sie dies mittel CRecordset::useMultiRowFetch in dwOptions Parameter der Open Funktion angeben. Beispiel: MultiRowSet rs; // Set the rowset size rs.SetRowsetSize( 5 ); // Open the recordset rs.Open( CRecordset::dynaset, NULL, CRecordset::useMultiRowFetch ); // loop through the recordset by rowsets while( !rs.IsEOF( ) ) { for( int rowCount = 0; rowCount < (int)rs.GetRowsFetched( ); rowCount++ ) { // do something } rs.MoveNext( ); } rs.Close( ); © XOn Siftware GmbH, 2008 99 Referenzhandbuch Siehe auch: CRecordset::CheckRowsetError CRecordset Overview | Class Members 1.2.2.8.2.20 CRecordset::GetRowStatus Syntax: WORD GetRowStatus( int wRow ) const; Rückgabewert: Eine Statusvariable für eine Daten-Zeile. Parameter: · wRow: Die eins basierende Position einer Reihe im aktuellen rowset. Dieser Wert liegt zwischen 1 und der Größe des Rowset. Bemerkung: Benutzen Sie diese Funktion, um den Status für eine Reihe im aktuellen rowset zu erreichen. Getrowstatus bringt einen Wert zurück, der jede mögliche Statusänderung der Reihe anzeigt, seit sie zuletzt von der Datenquelle zurückgeholt wurde, oder wen keine Reihe, die wRow entspricht, geholt wurde. Die folgende Tabelle zeigt die möglichen Rückgabewerte. Status Beschreibung SQL_ROW_SUCCESS Die Zeile wurde nicht verändert SQL_ROW_UPDATED Die Zeile wurde updated. SQL_ROW_DELETED Die Zeile wurde gelöscht. SQL_ROW_ADDED Die Zeile wurde hinzugefügt. SQL_ROW_ERROR The Zeile hat einen Fehler. SQL_ROW_NOROW Es gibt keine Zeile die wRow entspricht. Siehe auch: CRecordset::CheckRowsetError, CRecordset::GetRowsFetched, CRecordset::RefreshRowset CRecordset Overview | Class Members 1.2.2.8.2.21 CRecordset::GetStatus Syntax: void GetStatus( CRecordsetStatus& rStatus ) const; Parameter: · rStatus: Ein Zeiger auf ein CRecordsetStatus Object. Bemerkung: Benutzen Sie diese Funktion, um den Index des aktuellen Satzes im recordset festzustellen und/ oder ob der letzte Satz gelesen worden ist. CRecordset versucht, den Index aufzuspüren, aber unter einigen Umständen ist dieses nicht möglich. Siehe GetRecordCount zur Erklärung. Die CRecordsetStatus Struktur hat folgendes Form: struct CRecordsetStatus { long m_lCurrentRecord; BOOL m_bRecordCountFinal; © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 100 }; Die zwei Variablen von CRecordsetStatus haben volgende Bedeutung: · m_lCurrentRecord Enthält den null-basierenden Index des aktuellen Datensatzes im recordset, wenn er bekannt ist. Wenn der Index nicht festgestellt werden kann, enthält diese Variable AFX_CURRENT_RECORD_UNDEFINED (–2). Ist IsBOF ist gleich TRUE (leeres recordset oder es wurde vor den ersten Satz gescrollt), dann m_lCurrentRecord ist gesetzt mit AFX_CURRENT_RECORD_BOF (–1). Ist es auf dem ersten recard, dann wird es auf den zweiten gestetzt, Und so weiter. · m_bRecordCountFinal ist ungleich Null, wenn die Gesamtzahl der Sätzen im recordset festgestellt worden ist. Im Allgemeinen wird dieses erreicht, indem man am Anfang des recordset beginnt und Movennext aufruft, bis Is-EOF ungleich Null zurückbringt. Siehe auch: CRecordset::GetRecordCount CRecordset Overview | Class Members 1.2.2.8.2.22 CRecordset::GetSQL Syntax: const char* GetSQL( ) const; Rückgabewert: Eine const Referenz auf einem CString, das die SQL Anweisung enthält. Bemerkung: Benutzen sie diese Funktion, um die SQL Anweisung zu erhalten, die verwendet wurde, um die Datensätze der recordsets auszuwählen, als es geöffnet wurde. Dieses ist im Allgemeinen eine SQL SELECT Anweisung. Die Zeichenkette, die von GetSQL zurükgegeben wird, ist Read-only. Hinweis: Rufen Sie diese Funktion nur nach einen Open auf. Siehe auch: CRecordset::GetDefaultSQL, CRecordset::Open CRecordset Overview | Class Members 1.2.2.8.2.23 CRecordset::GetTableName Syntax: void GetTableName(char *nBuf,int nSize) const; Parameter: · nBuf: Eine Referenz auf ein Char Array in dem der Tabelle Namen gespeichert wird, wenn das recordset auf einer Tabelle basiert; andernfalls eine leere Zeichenkette. · nSize: länge des nBuf Arrays. Bemerkung: Benutzen Sie diese Funktion, um den Namen der SQL Tabelle zu erhalten, auf der die Abfrage des Recordsets basiert.Gettablename ist nur gültig, wenn das recordset auf einer Tabelle, nicht join, multiple Tabellen oder einer vorbestimmten Abfrage basiert . Der Tabellenname ist read-only. Hinweis: Rufen Sie diese Funktion nur auf wenn sie vorher Open aufgerufen haben. © XOn Siftware GmbH, 2008 101 Referenzhandbuch Siehe auch: CRecordset Overview | Class Members 1.2.2.8.2.24 CRecordset::IsBOF Syntax: BOOL IsBOF( ) const; Rückgabewert: Ungleich Null, wenn das recordset keine Sätze enthält, oder wenn Sie rückwärts vor dem ersten Satz gescrollt haben; 0 andernfalls. Bemerkung: Benutzen sie diese Funktion, bevor Sie von Satz zu Satz scroll, um zu erkennen, ob Sie vor den erste Satz des recordset gegangen sind. Sie können Is-BOF zusammen mit Is-EOF auch verwenden, um festzustellen, ob das recordset irgendwelche Sätze enthält oder leer ist. Nachdem sie Open aufgerufen haben und das recordset keine Sätze enthält, bringt Is-BOF ungleich Null zurück. Wenn Sie ein recordset öffnen, das mindestens einen Satz hat, ist der erste Satz der aktuelle Satz und die Is-BOF Rückgabe 0. Wenn der erste Satz der aktuelle Satz ist und Sie MovePrev aufrufen, gibt IsBOF nachher true zurück. Wenn IsBOF true zurückgibt und Sie MovePrev aufrufen, tritt ein Fehler auf. Wenn IsBOF true zurückgibt, ist der aktuelle Satz unbestimmt, und jede mögliche Tätigkeit, die einen aktuellen Satz benötigt, ergibt einen Fehler. Beispiel: Dieses Beispiel verwendet IsBOF und IsEOF, um die Begrenzungen auf ein recordset beim scrollen durch das recordset in beiden Richtungen zu entdecken. // Open a recordset; first record is current CRecordSet rsCustSet( NULL ); rsCustSet.Open( ); if( rsCustSet.IsBOF( ) ) return; // The recordset is empty // Scroll to the end of the recordset, past // the last record, so no record is current while ( !rsCustSet.IsEOF( ) ) rsCustSet.MoveNext( ); // Move to the last record rsCustSet.MoveLast( ); // Scroll to beginning of the recordset, before // the first record, so no record is current while( !rsCustSet.IsBOF( ) ) rsCustSet.MovePrev( ); // First record is current again rsCustSet.MoveFirst( ); Siehe auch: CRecordset::IsEOF, CRecordset::MoveFirst, CRecordset::MovePrev CRecordset Overview | Class Members 1.2.2.8.2.25 CRecordset::IsDeleted Syntax: BOOL IsDeleted( ) const; © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 102 Rückgabewert: Ungleich Null, wenn das recordset auf einen gelöschten Satz in Position gebracht wurde; andernfalls 0. Bemerkung: Benutzen Sie diese Funktion, um festzustellen, ob der aktuelle Satz gelöscht worden ist. Wenn Sie zu einem Satz scroll und IsDeleted TRUE (ungleich Null) zurückgibt, dann müssen Sie zu einem anderen Satz scrollen, bevor Sie irgendwelche anderen recordset Operationen durchführen können. Beachten Sie, daß das Resultat IsDeleted von vielen Faktoren, wie Ihrem recordset Typen, , ob Sie die CRecordset::skipDeletedRecords Option spezifiziert haben und ob es mehrere Benutzer gibt abhängt. Für mehr Informationen zu CRecordset::skipDeletedRecords und Treibereinstellungen siehe Open Funktion. Hinweis: Wenn sie "bulk row fetching" vrwenden, sollten sie IsDeleted nicht aufrufen, verwenden Sie alternativ GetRowStatus. Siehe auch: CRecordset::IsBOF, CRecordset::IsEOF CRecordset Overview | Class Members 1.2.2.8.2.26 CRecordset::IsEOF Syntax: BOOL IsEOF( ) const; Rückgabewert: Ungleich Null, wenn das recordset keine Datensätze enthält, oder wenn Sie über dem letzten Datensatz hinaus gescrollt haben; 0 andernfalls. Bemerkung: Benutzen Sie diese Funktion, wenn Sie von Satz zu Satz scroll, um festzustellen, ob Sie über dem letzten Satz des recordset hinaus gegangen sind. Sie können IsEOF auch verwenden, um festzustellen, ob das recordset irgendwelche Sätze enthält oder leer ist. Nachdem Sie Open aufgerufen haben und das recordset keine Sätze enthält, bringt IsEOF ungleich Null zurück. Wenn Sie ein recordset öffnen, das mindestens einen Satz hat, ist der erste Satz der aktuelle Satz und der IsEOF Rückgabewert 0. Wenn der letzte Satz der aktuelle Satz ist und Sie Movennext aufrufen, bringt IsEOF nachher ungleich Null zurück. Wenn IsEOF ungleich Null zurückgibt und Sie MoveNext aufrufen, tritt ein Fehler auf. Wenn IsEOF ungleich Null zurückgibt, ist der aktuelle Satz unbestimmt, und jede mögliche Tätigkeit, die einen aktuellen Satz benötigt, ergibt einen Fehler. Beispiel: Siehe IsBOF. Siehe auch: CRecordset::IsBOF, CRecordset::MoveLast, CRecordset::MoveNext CRecordset Overview | Class Members 1.2.2.8.2.27 CRecordset::IsFieldDirty Syntax: © XOn Siftware GmbH, 2008 103 Referenzhandbuch BOOL IsFieldDirty( void* pv ); Rückgabewert: Nicht Null wenn das ausgewählte Datenfeld sich seit dem Aufruf von AddNew oder Edit geändert hat; Andernfalls 0. Parameter: · pv: Ein Pointer auf ein Datenfeld, dessen Status überprüft werden soll, oder NULL um festzustellen ob irgendein Feld geändert wurde. Bemerkung: Rufen Sie diese Funktion auf um festzustellen ob ein ausgewähltes Datenfeld seit dem Aufruf von Edit oder AddNew geändert wurde. Diese Funktion ist nicht auf recordsets anwendbar, die bulk row fetching verwenden. Siehe auch: CRecordset::IsFieldNull CRecordset Overview | Class Members 1.2.2.8.2.28 CRecordset::IsFieldNull Syntax: BOOL IsFieldNull( void* pv ); Rückgabewert: Ungleich 0, wenn das spezifizierte Datenfeld als Null gekennzeichnet ist; 0 andernfalls. Parameter: · pv: Ein Zeiger zum Datenfeld desen Status Sie auf NULL überprüfen möcheten, um festzustellen,ob irgendwelche der Felder ungültig sind. Bemerkung: Benutzen Sie diese Funktion, um festzustellen, ob das spezifizierte Datenfeld eines recordset als Null gekennzeichnet worden ist. (Bei Datenbanken meint Null, das Keine Daten spezifiziert sind). Diese Funktion ist nicht auf Recordsets anwendbar, die bulk row fetching verwenden. Siehe auch: CRecordset::IsFieldDirty CRecordset Overview | Class Members 1.2.2.8.2.29 CRecordset::IsOpen Syntax: BOOL IsOpen( ) const; Rückgabewert: Ungleich Null, wenn der recordset Objekt der Open oder Requery Funktion vorher übergeben worden ist und das recordset nicht geschlossen ist; andernfalls 0. Bemerkung: Benutzen Sie diese Funktion, um festzustellen, wenn das recordset bereits geöffnet ist. Siehe auch: CRecordset Overview | Class Members © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 104 1.2.2.8.2.30 CRecordset::Move Syntax: void Move( long nRows, WORD wFetchType = SQL_FETCH_RELATIVE ); Parameter: · nRows: Die Anzahl der Datensätze (Zeilen) um die vorwärts oder rückwerts gesprungen werden soll. Positive Werte für forwerts, negative Werte für Rückwerts The number of rows to move forward or backward( In Richtung Beginn). · wFetchType: legt den Datensatz fest, zu dem der Move- Befehl bewegt. Bemerkung: Mit dieser Funktion kann man den Recordset Pointer vorwerts bzw. rückwerts bewegen. Move repositioniert das Recordset Zeilenweise. Basierend auf die Werte nRows and wFetchType holt Move die gewünschte Datenzeile und makiert den ersten Wert. Die folgenden Tabelle listet die möglichen Werte für wFetch auf. wFetchType Fetched rowset Equivalent member function SQL_FETCH_RELATIVE (the Das rowset startet mit nRows default value) Zeile(n) vom ersten Datensatz aus. SQL_FETCH_NEXT Der Nächste Datensatz, MoveNext nRows wird ignoriert. SQL_FETCH_PRIOR Der vorhergehende MovePrev Datensatz, rRows wird ignoriert. SQL_FETCH_FIRST Das erste Datensatz, nRows MoveFirst wird ignoriert. SQL_FETCH_LAST Der letzte komplette MoveLast Datensatz, nRows wird ignoriert. SQL_FETCH_ABSOLUTE Ist nRows > 0, dann startet SetAbsolutePosition das Rowset nRows Zeilen nach dem Beginn des Recordsets. Ist nRows > 0, dann startet das Rowset nRows Zeilen vor dem Ende des Recordsets.. Ist nRows = 0, dann wird eine beginningof-file (BOF) Bedingung zurückgegeben. SQL_FETCH_BOOKMARK Das Rowset startet an der SetBookmark Stelle die durch das Lesezeichen makiert wurde.. Hinweis: Vor dem aufrufen vom Move sollte mittels IsBOF und IsEOF auf das Datenende geprüft werden. Beispiel: // rs is a CRecordset or a // CRecordset-derived object // Change the rowset size to 5 rs.SetRowsetSize( 5 ); // Move to the first record © XOn Siftware GmbH, 2008 105 Referenzhandbuch // in the recordset rs.MoveFirst( ); // Move to the sixth record rs.Move( 5 ); // Other equivalent ways to // move to the sixth record: // rs.Move( 6, SQL_FETCH_ABSOLUTE ); // rs.SetAbsolutePosition( 6 ); // In this case, the sixth record is // the first record in the next rowset, // so the following are also equivalent: // rs.Move( 1, SQL_FETCH_NEXT ); // rs.MoveNext( ); Siehe auch: CRecordset::MoveNext, CRecordset::MovePrev, CRecordset::MoveFirst, CRecordset::MoveLast, CRecordset::SetAbsolutePosition, CRecordset::SetBookmark, CRecordset::IsBOF, CRecordset:: IsEOF, CRecordset::CheckRowsetError CRecordset Overview | Class Members 1.2.2.8.2.31 CRecordset::MoveFirst Syntax: void MoveFirst( ); Bemerkung: Eine einfache Methode an den ersten Datensatz im Recordset zu gelangen. Beispiel: Siehe Beispiel für IsBOF. Siehe auch: CRecordset::Move, CRecordset::MoveLast, CRecordset::MoveNext, CRecordset::MovePrev, CRecordset::IsBOF, CRecordset::IsEOF CRecordset Overview | Class Members 1.2.2.8.2.32 CRecordset::MoveLast Syntax: void MoveLast( ); Bemerkung: Eine einfache Möglichkeit zum ersten Datenfeld des Letzten Datensatzes zu gelangen. Diese Methode ist nicht verfügbar für "forward-only recordsets". Beispiel: Siehe das Beispiel für IsBOF. Siehe auch: CRecordset::Move, CRecordset::MoveFirst, CRecordset::MoveNext, CRecordset::MovePrev, CRecordset::IsBOF, CRecordset::IsEOF CRecordset Overview | Class Members © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 106 1.2.2.8.2.33 CRecordset::MoveNext Syntax: void MoveNext( ); Bemerkung: Eine einfache Möglichkeit zum nächsten Datensats im Recordset zu kommen. Überprüfe zuerst mittels IsEOF.ob der letzte Datensats schon ereicht ist. Beispiel: Siehe Beispiel für IsBOF. Siehe auch: CRecordset::Move, CRecordset::MovePrev, CRecordset::MoveFirst, CRecordset::MoveLast, CRecordset::IsBOF, CRecordset::IsEOF CRecordset Overview | Class Members 1.2.2.8.2.34 CRecordset::MovePrev Syntax: void MovePrev( ); Bemerkung: Eine einfache Möglichkeit zu einen vorhergehenden Datensatz zu kommen. Es empfiehlt sich vorher mittels IsBOF zu überprüfen ob es diesen Datensatz überhaupt gibt Beispiel: Siehe das Beispiel für IsBOF. Siehe auch: CRecordset::Move, CRecordset::MoveNext, CRecordset::MoveFirst, CRecordset::MoveLast, CRecordset::IsBOF, CRecordset::IsEOF CRecordset Overview | Class Members 1.2.2.8.2.35 CRecordset::OnSetOptions Syntax: void OnSetOptions( HSTMT hstmt ); Parameter: · hstmt: Das HSTMT der ODBC Anweisung deren Optionen verwendet werden sollen Bemerkungen: Das Framework ruft diese Funktion auf, um die Ausgangsoptionen für das recordset einzustellen. OnSetOptions stellt den Support der Datenquelle für scrollable Cursors und für Cursor Ansteuerungen und stellt die Optionen der recordsets dementsprechend ein. Setzen Sie über OnSetOptions ausser Kraft, um zusätzliche Optionen zum Treiber oder zur Datenquelle einzustellen. Z.B. wenn Ihre Datenquelle Öffnung für exklusiven Zugriff unterstützt, konnten Sie über OnSetOptions ausser Kraft setzen, um diese zu Nutzen. Siehe auch: CDatabase::OnSetOptions © XOn Siftware GmbH, 2008 107 Referenzhandbuch CRecordset Overview | Class Members 1.2.2.8.2.36 CRecordset::Open Syntax: BOOL Open( UINT nOpenType = AFX_DB_USE_DEFAULT_TYPE, LPCTSTR lpszSQL = NULL, DWO Rückgabewert: Nicht Null wenn der CRecordset erfolgreich geöffnet wurde; Andernfalls 0 wenn CDatabase::Open (wenn es aufgerufen wurde) 0 zurückgibt. Parameter: · nOpenType: Akzeptiert den Default Wert, AFX_DB_USE_DEFAULT_TYPE, Oder verwendet einen der enum OpenType. CRecordset::dynaset: Ein Recordset mit bidirektionalem Rollen. Die Zugehörigkeit und Sortierung der Records werden ermittelt wenn das Recordset geöffnet wird. Änderungen durch andere Anwender sind sichtbar nach fetch- Operationen. CRecordset::snapshot: Ein statisches Recordset mit bidirektionalem Rollen. Die Zugehörigkeit und Sortierung der Records werden ermittelt wenn das Recordset geöffnet wird. Die Datenwerte werden ermittelt wenn die Records festgelegt werden. Änderungen durch andere Anwender werden erst sichtbar, wenn das Recordset geschlossen und dann erneut geöffnet wird. CRecordset::dynamic: Ein Recordset mit bidirektionalem Rollen. Änderungen der Zuordnung, Sortierung und Daten durch andere Benutzer werden sofort nach Fetch- Operationen sichtbar. Beachten sie, dass viele ODBC Treiber diese Art von Recordsets nicht unterstützen. CRecordset::forwardOnly: Ein Recordset das nur gelesen werden und nur vorwärts gerollt werden kann. Für CRecordset ist der Defaultwert CRecordset::snapshot. · lpszSQL: Ein string mit folgendem Inhalt Ein NULL- Zeiger. Name der Tabelle. Eine SQL SELECT - Anweisung (optional mit SQL WHERE oder ORDER BY Anweisung). Eine CALL- Anweisung mit dem Namen einer vordefinierten Abfrage (stored procedure). Achten sie darauf keine Leerzeichen zwischen Klammern und CALL- Schlüsselwort zu verwenden. · dwOptions: Eine Bitmaske die eine Kombination der Nachfolgenden Werte enthält. Der Defaultwert ist none . CRecordset::none: Keine Optionen gesetzt. Die Erneuerung der Daten hängt ab von der Datenquelle und vom Parameter nOpenType. Optimierung für bulk additions ist nicht verfügbar. Bulk row fetching wird nicht angelegt. Gelöschte Felder werden nicht verworfen während der Navigation. Bookmarks sind nicht verfügbar. Automatische "dirty field"- Überprüfung wird angelegt. CRecordset::appendOnly: Erlaubt nicht die Anwendung von Edit oder Delete auf dem Recordset. Lässt lediglich AddNew zu. Diese Option schließt die Option CRecordset:: readOnly aus. CRecordset::readOnly: Öffnet das Recordset aussschließlich zum Lesen. Diese Option schließt die Option CRecordset::appendOnly aus. © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 108 CRecordset::optimizeBulkAdd: Benutzt eine vorbereitete SQL-Anweisung um das Einfügen mehrere Records auf einmal zu optimieren. Die Optimierung wirkt sich nicht aus wenn sie SQLSetPos zur Aktualisierung des Recordset verwenden. Bei der ersten Aktualisierung wird festgestellt, welche Felder verändert wurden. Diese Option schließt die Option CRecordset:: useMultiRowFetch aus. CRecordset::useMultiRowFetch: Wählt die Strategie "bulk row fetching" um mehrere Datensätze mit einer Zugriffsoperation zu erhalten. Dies ist eine erweiterte Eigenschaft zur Verbesserung der Performance. Diese Option schließt die Option CRecordset:: optimizeBulkAdd aus. Beachten sie, dass sie mit der Option CRecordset::useMultiRowFetch auch automatisch die Option CRecordset::noDirtyFieldCheck setzen ("double buffering" ist dann nicht verfügbar); Bei "forward-only" Recordsets wird die Option CRecordset:: useExtendedFetch automatisch gesetzt. CRecordset::skipDeletedRecords: Überspringt alle gelöschten Felder bei der Navigar Skip all deleted records when navigation im Recordset. Diese Option verringert die Performance einiger relativer Zugriffsoperationen. Diese Option ist unzulässig auf "forward-only" Recordsets. Beachten sie, dass CRecordset::skipDeletedRecords identisch ist mit "driver packing"; dies bedeutet, dass gelöschte Datensätze aus dem Recordset entfernt werden. Natürlich entfernt ihr Treiber nur Records die sie selber löschen. Von anderer Benutzer gelöschte Datensätze werden nicht aus dem Recordset entfernt, solange dies geöffnet ist. CRecordset::useBookmarks: Lesezeichen können auf dem Recordset verwendet werden sofern dies vom ODBC- Treiber unterstützt wird. Lesezeichen bremsen die Datenübertragung aber beschleunigen die Navigation im Recordset. Die Option ist unzulässig auf "forward-only"Recordsets. CRecordset::noDirtyFieldCheck: Schaltet die automatische überprüfung auf veränderte Felder ab (double buffering). Dies verbessert die Performance. Allerdings müssen sie dann selbst Felder als "verändert" markieren mit den Methoden SetFieldDirty und SetFieldNull. Beachten sie dass sie in CRecordset "double buffering" nicht für einzelne Felder aktivieren können; "double buffering" können sie nur für alle Felder gleichzeitig ein- oder ausschalten. Beachten sie, dass mit der Option CRecordset::useMultiRowFetch automatisch auch die Option CRecordset::noDirtyFieldCheck gesetzt wird. Ausserdem können SetFieldDirty und SetFieldNull nicht auf Recordsets mit "bulk row fetching" verwendet werden. CRecordset::executeDirect: Verwendet keine vorbereitete SQL-Anweisung. Verwenden sie diese Option zur verbesserung der Performance, wenn sie die Methode Requery nicht verwenden. CRecordset::useExtendedFetch: Aktiviert SQLExtendedFetch anstatt SQLFetch. Diese Option ermöglicht "bulk row fetching" auf "forward-only" Recordsets. Wenn sie die Option CRecordset::useMultiRowFetch auf ein "forward-only" Recordset anwenden wird die Option CRecordset::useExtendedFetch automatisch gewählt. CRecordset::userAllocMultiRowBuffers: Der Benutzer legt den Datenspeicher selbst an. Verwenden sie diese Option zusammen mit CRecordset::useMultiRowFetch wenn sie ihren eigenen Speicher anlegen wollen. Andernfalls legt die Klasse automatisch den nötigen Speicher an. Beachten sie dass die Option CRecordset::userAllocMultiRowBuffers ohne die Option CRecordset::useMultiRowFetch zu einem Fehler führt. Bemerkung: Sie müssen diese Methode ausführen um eine Abfrage auszuführen. Vor dem Aufruf von Open müssen sie ein CRecordset- Objekt anlegen. Die Verknüpfung des Recordsets zur Datenquelle hängt davon ab wie sie das Recordset anlegen, bevor sie Open aufrufen. Wenn sie ein CDatabase Objekt an den Konstruktor des Recordsets übergeben, das noch nicht mit einer Datenquelle verbunden ist verwendet diese Methode © XOn Siftware GmbH, 2008 109 Referenzhandbuch GetDefaultConnect um das Datenbankobjekt zu öffnen. Wenn sie NULL an den Konstruktor des Recordsets übergeben, legt der Konstruktor ein Datenbankobjekt an und öffnet es. Für Details zum Schliessen von Recordset und die Verknüpfung unter diesen unterschiedlichen Umständen siehe Close. Hinweis: Der Zugriff auf eine Datenquelle über ein CRecordset Objekt ist immer "shared". Sie können ein CRecordset Object auch zum exclusiven Zugriff verwenden. Wenn sie Open aufrufen wählt eine Abfrage, gewöhnlich eine SQL SELECT Anweisung, Datensätze anhand der nachfolgenden Kriterien aus: Wert von lpszSQL NULL SQL Tabellenname Name einer vordefinierte Abfrage (stored procedure) SELECT column-list FROM table-list Auswahl der Datensätze Der string der von GetDefaultSQL zurückgegeben wird. Alle Spalten der Tabelle. Die Spalten die durch die Abfrage festgelegt werden. Die explizit angegebenen Spalten der ausgewählten Tabelle(n). Beispiel "Customer" "{call OverDueAccts}" "SELECT CustId, CustName FROM Customer" Hinweis: Achten sie darauf keine zusätzlichen Leerzeichen in ihren SQL- Anweisung einzufügen. Wenn sie etwa zwischen der führenden Klammer und der Schlüsselwort CALL ein Leerzeichen einfügen wird der Strin als Tabellenname Fehlinterpretiert und in eine SELECT- Anweisung umgewandelt. Dies führt dann zu einem Fehler.Entsprechend dürfen sie keine Leerzeichen zwischen der öffnenden Klammer '{' und dem Fragezeichen '?' einfügen bei CALL- Anweisungen, die einen Ergebnisparameter liefern. Weiterhin dürfen sie weder vor der öffnenden Klammer in einer CALLAnweisung noch vor dem Schlüsselwort SELECT in einer SELECT- Anweisung ein Leerzeichen einfügen. Unabhängig davon was sie als lpszSQL- Parameter an die Methode übergeben erzeugt Open einen endgültigen SQL- String für die Abfrage. Dieser String kann zusätzlich zum übergebenen lpszSQL String SQL WHERE und ORDER BY- Anweisugen enthalten. Mit diesem endgültigen String wird die Abfrage ausgeführt. Den endgültigen String können sie mit der Methode GetSQL abfragen (nach dem Aufruf von Open). Die Felddaten des Recordsets sind verknüpft mit den Spalten der ausgewählten Daten. Wenn irgendwelche Datensätze zurückgegeben werden ist zunächst der erste Datensatz aktiv. Wenn sie dem Recordset Optionen wie Filter oder Sortierung zuweisen wollen müssen sie dies nach der Konstruktion aber vor dem Aufruf von Open tun. Wenn sie die Daten im Recordset nach dem Aufruf von Open erneuern wollen müssen sie die Methode Requery aufrufen. Beispiel: Das Beispiel zeigt unterschiedliche Aufrufe von Open. // rs is a CRecordset or // CRecordset-derived object // Open rs using the default SQL statement, // implement bookmarks, and turn off // automatic dirty field checking rs.Open( CRecordset::snapshot, NULL, CRecordset::useBookmarks | CRecordset::noDirtyFieldCheck ); // Pass a complete SELECT statement // and open as a dynaset © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 110 rs.Open( CRecordset::dynaset, _T( "Select L_Name from Customer" ) ); // Accept all defaults rs.Open( ); Siehe auch: CRecordset::CRecordset, CRecordset::Close, CRecordset::GetDefaultSQL, CRecordset::GetSQL , CRecordset::Requery CRecordset Overview | Class Members | Hierarchy Chart 1.2.2.8.2.37 CRecordset::RefreshRowset Syntax: void RefreshRowset( WORD wRow, WORD wLockType = SQL_LOCK_NO_CHANGE ); Parameter: · wRow: Die Position ("1" basierend) einer Reihe im aktuellen rowset. Dieser Wert kann von null bis zu der Größe des rowset reichen. · wLockType: Ein Wert, der angibt wie die Daten gesperrt wurden nachdem, sie neu geladen wurden. Für Details siehen Sie Anmerkungen. Anmerkungen: Benutzen Sie diese Funktion, um die Daten und den Status für eine Reihe im aktuellen rowset zu aktualisieren. Wenn Sie einen Wert von null für wRow angeben, dann wird jeder Datensatz im rowset erneuert. Um RefreshRowset zu verwenden,muß "bulk row fetching" implementiert und mittels CRecordset::useMulitRowFetch in der Methode Open spezifiziert sein. RefreshRowset verwendet die ODBC API Function SQLSetPos. Der wLockType Parameter specifziert den "lock Status" eines Datensatzes nachdem SQLSetPos gewechselt hat. Die Nachfolgende Tabelle beschreibt die möglichen Werte für wLockType. wLockType Description SQL_LOCK_NO_CHANGE Der Treiber oder die Datenquelle stellt sicher, daß der (Defaultwert) Datensatz gesperrten oder entsperrten Zustand ist, die sie war, bevor SetRowsetCursorPosition aufgerufen wurde SQL_LOCK_EXCLUSIVE Der Treiber oder die Datenquelle sperrt die Reihe ausschließlich. Nicht alle Datenquellen unterstützen diesen Typen der Verriegelung. SQL_LOCK_UNLOCK Der Treiber oder die Datenquelle entsperrt die Reihe. Nicht alle Datenquellen unterstützen diesen Typen der Verriegelung. Siehe auch: CRecordset::SetRowsetCursorPosition CRecordset Overview | Class Members 1.2.2.8.2.38 CRecordset::Requery Syntax: BOOL Requery( ); © XOn Siftware GmbH, 2008 111 Referenzhandbuch Rückgabewert: Ungleich Null, wenn das recordset erfolgreich neu erstellt wurde; 0 andernfalls. Bemerkung: Rufen Sie diese Funktion auf um den Recordset neu zu laden. Wenn irgendwelche Datensätze zurückgegeben werden, wird der erste Datensatz der aktuelle Satz. In order for the recordset to reflect the additions and deletions that you or other users are making to the data source, you must rebuild the recordset by calling Requery. If the recordset is a dynaset, it automatically reflects updates that you or other users make to its existing records (but not additions). If the recordset is a snapshot, you must call Requery to reflect edits by other users as well as additions and deletions. For either a dynaset or a snapshot, call Requery any time you want to rebuild the recordset using a new filter or sort, or new parameter values. Set the new filter or sort property by assigning new values to m_strFilter and m_strSort before calling Requery. Set new parameters by assigning new values to parameter data members before calling Requery. If the filter and sort strings are unchanged, you can reuse the query, which improves performance. If the attempt to rebuild the recordset fails, the recordset is closed. Before you call Requery, you can determine whether the recordset can be requeried by calling the CanRestart member function. CanRestart does not guarantee that Requery will succeed. Hinweis: Sie dürfen Requery erst nach einem Aufruf von Open ausführen. Beispiel: Dieses Beispiel aktualisiert ein Recordset mit veränderter Sortierung. // Example for CRecordset::Requery CCustSet rsCustSet( NULL ); // Open the recordset rsCustSet.Open( ); // Use the recordset ... // Set the sort order and Requery the recordset rsCustSet.m_strSort = "District, Last_Name"; if( !rsCustSet.CanRestart( ) ) // Unable to requery return; if( !rsCustSet.Requery( ) ) // Requery failed, so take action Siehe auch: CRecordset::CanRestart CRecordset Overview | Class Members 1.2.2.8.2.39 CRecordset::SetAbsolutePosition Syntax: void SetAbsolutePosition( long nRows ); Parameter: · nRows: Die Eins basierte Ordnungsposition für den aktuellen Satz im recordset. Bemerkung: Rufen Sie diese Klassenfunktion auf, um das recordset auf den Satz in Position zu bringen, der © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 112 der spezifizierten Rekordzahl entspricht.SetAbsolutePosition verschiebt den aktuellen Datensatzzeiger, der auf dieser Ordnungsposition basiert. Diese Funktion ist bei forward-only recordsets unzulässig. Für ODBC recordsets spricht eine absolute Position Einstellung von 1 den ersten Satz im recordset an; eine Einstellung von 0 spricht die beginning-of-file(BOF) Position an. Sie können negative Werte auch für SetAbsolutePosition verwenden. In diesem Fall wird die Position der Recordsets vom Ende des Recordset ausgewertet. Z.B. verschiebt SetAbsolutePosition(-1) den aktuellen Satzzeiger auf den letzten Satz im Recordset. Kommentar: Absolute Position soll nicht als stellvertretende Rekordzahl verwendet werden. Bookmarks sind noch die empfohlene Methode des beibehaltens und des zurückspringen zu einer gegebenen Position, da die Position eines Satzes sich ändern kann, wenn vorangehende Sätze gelöscht werden. Zusätzlich können Sie nicht versichert werden, daß ein gegebener Datensatz die gleiche absolute Position hat, wenn das recordset wieder neu geladen wird, weil die Ordnung der einzelnen Sätze innerhalb eines recordset nicht garantiert wird, es sei denn sie mit einer SQL Anweisung mit einer ORDER BY Klausel erstellt wird. Siehe auch: CRecordset::SetBookmark CRecordset Overview | Class Members 1.2.2.8.2.40 CRecordset::SetBookmark Syntax: void SetBookmark( const CDBVariant& varBookmark ); Parameter: · varBookmark: Eine Referenz zu einem CDBVariant Object welches ein Bookmark für ein speziellen Record beinhaltet. Bemerkung: Rufen Sie die Klassenfunktion auf, um das recordset auf den Datensatz zu positionieren, der das spezifizierte Bookmark enthält. Um feststellen ob das Bookmark unterstützt wird, rufen Sie CanBookmark auf. Um Bookmarks zur Verfügung zu stellen(falls sie unterstützt werden) müssen Sie die CRecordset::useBookmarks Option im dwOptions Parameter der geöffneten Open Funktion setzen. Zuerst holen Sie das Bookmark für den aktuellen Satz(aufruf GetBookmark, ) zurück, der den Bookmarkwert zu ein CDB-Variant Objekt speichert. Später können Sie zu diesem Satz zurückkommen, indem Sie SetBookmark mit dem gesicherten Bookmarkwert aufrufen. Siehe auch: CRecordset::CanBookmark, CRecordset::GetBookmark, CRecordset::SetAbsolutePosition, CDatabase::GetBookmarkPersistence CRecordset Overview | Class Members 1.2.2.8.2.41 CRecordset::SetLockingMode Syntax: © XOn Siftware GmbH, 2008 113 Referenzhandbuch void SetLockingMode( UINT nMode ); Parameter: · nMode: beinhaltet einen der folgenden Werte für enum LockMode: optimistic: Die optimistische Sperrung sperrt den Datensatz zum updaten nur während des Aufrufs Update. pessimistic: Die pessimistische Sperrung sperrt den Datensatz ebenso beim Aufruf Edit und hält ihn gesperrt bis der Update Aufruf abgeschloßen ist oder ein anderer Datensatz verwendet wird. Bemerkung: Verwenden Sie diese Funktion um zu bestimmen welche Sperr Methode verwendet werden soll. Siehe auch: CRecordset Overview | Class Members 1.2.2.8.2.42 CRecordset::SetRowsetCursorPosition Syntax: void SetRowsetCursorPosition( WORD wRow, WORD wLockType = SQL_LOCK_NO_CHANGE ); Parameter: · wRow: Die Zeilennummer im Recordset (mit "1" beginnend). Dieser Wert kann zwischen 1 und der Größe des Recordsets varieren. · wLockType: Dieser Wert gibt an wie die Zugrifssperre für die nächste Zeile aussieht. Für Details siehe Bemerkung. Bemerkung: Rufen Sie diese Funktion auf, um den Cursor auf eine Zeile innerhalb des aktuellen rowset zu verschieben. Wenn "bulk row fetching" implementiert ist, werden Datensätze durch rowsets zurückgeholt, wenn der erste Datensatz im rowset der aktuelle Satz ist. Um einen anderen Satz innerhalb des rowset den aktuellen Satz zu bilden, rufen Sie SetRowsetCursorPosition auf. Als Beispiel können Sie SetRowsetCursorPosition mit GetFieldValue kombinieren. Um SetRowsetCursorPosition zu verwenden,muß "bulk row fetching" implementiert und mitels CRecordset::useMulitRowFetch in der Methode Open spezifiziert sein. SetRowsetCursorPosition ruft die ODBC API Function SQLSetPos auf. Der wLockType Parameter specifziert den "lock Status" eines Datensatzes nachdem SQLSetPos gewechselt hat. Die Nachfolgende Tabelle beschreibt die möglichen Werte für wLockType. wLockType SQL_LOCK_NO_CHANGE (der Defaultwert) SQL_LOCK_EXCLUSIVE Description Der Treiber oder die Datenquelle stellt sicher, daß der Datensatz gesperrten oder entsperrten Zustand ist, die sie war, bevor SetRowsetCursorPosition aufgerufen wurde. Der Treiber oder die Datenquelle sperrt die Reihe ausschließlich. Nicht alle Datenquellen unterstützen diesen Typen der Verriegelung. © XOn Siftware GmbH, 2008 1.2 Programmierreferenz SQL_LOCK_UNLOCK 114 Der Treiber oder die Datenquelle entsperrt die Reihe. Nicht alle Datenquellen unterstützen diesen Typen der Verriegelung. Siehe auch: CRecordset::RefreshRowset CRecordset Overview | Class Members 1.2.2.8.3 Data Members 1.2.2.8.3.1 CRecordset::m_hstmt Beschreibung: Enthält einen Handle zur ODBC Datenstruktur, des Types HSTMT, welcher verbunden ist mit dem recordset. Jede Abfrage zu einer ODBC Datenquelle bezieht auf ein HSTMT. Benutzen sie m_hstmt nicht bevor Open aufgerufen wurde. Normalerweise brauchen Sie nicht auf das m_hstmt direkt zugreifen, aber Sie konnten es für direkte Ausführung der SQL Anweisungen benötigen. Die ExecuteSQL Funktion der Klasse CDatabase liefert ein Beispiel des Verwendens von von m_hstmt. Siehe auch: CDatabase::ExecuteSQL CRecordset Overview | Class Members 1.2.2.8.3.2 CRecordset::m_nFields Beschreibung: Enthält die Anzahl Datenfelder in dem Recordset Objekt, die Spaltenzahl die durch das recordset von der Datenquelle ausgewählt wurden. Der Konstruktor der Recordset Klasse muß m_nFields mit der korrekten Zahl initialisieren. Wenn Sie nicht bluk Row-Fetching implementiert haben, schreibt Classwizard diese Initialisierung für Sie, wenn Sie sie verwenden, um Ihre recordset Klasse zu deklarieren.Sie können sie auch manuell schreiben. Das Framework verwendet diese Zahl, um Interaktion zwischen den Felddaten und den entsprechenden Spalten des aktuellen Satzes auf der Datenquelle zu handhaben. Siehe auch: CRecordset::m_nParams CRecordset Overview | Class Members 1.2.2.8.3.3 CRecordset::m_nParams Beschreibung: Enthält die Anzahl der Parameter in der Recordset Klasse, die mit der Abfrage übergeben werden. Wenn Ihre recordset Klasse irgendwelche Parameter hat, muß der Konstruktor der Klasse m_nParams mit der korrekten Zahl initialisieren. Der Wert von m_nParams ist voreingestellt auf 0. Wenn Sie Parameterdaten hinzufügen, was Sie manuell tun müssen, müssen Sie eine Initialisierung im Konstruktor auch manuell hinzufügen, um die Zahl der Parameter zu erhalten. (welche mindestens so groß sein muß wie die Zahl der '?' Platzhalter in Ihrer m_strFilter oder © XOn Siftware GmbH, 2008 115 Referenzhandbuch m_strSort Zeichenkette). Das Framework verwendet diese Zahl, wenn es die Abfrage des Recordsets parameterisiert. Siehe auch: CRecordset::m_nFields CRecordset Overview | Class Members 1.2.2.8.3.4 CRecordset::m_pDatabase Beschreibung: Enthält einen Zeiger zum CDatabase Objekt, durch die das Recordset an eine Datenquelle angeschlossen ist. Diese Variable kann auf zwei verschiedene Weisen gesetzt werden. Gewöhnlich führen Sie einen Zeiger zu einem bereits verbundenen CDatabase Objekt oder Sie übergeben sie wenn das Recordset Objekt erstellet wird. Wenn Sie statt dessen NULL übergeben, erstellt CRecordset eine CDatabase Objekt für Sie und verbindet es. In jedem Fall speichert CRecordset den Zeiger in dieser Variable. Normalerweise brauchen Sie nicht direkt den Zeiger zu benutzen, der im m_pDatabase gespeichert wird. Siehe auch: CRecordset Overview | Class Members 1.2.3 Grafkelemente Dies ist die Objekthierarchie der Klassen des Grafikinterfaces. Die Basisklasse ist CGrafNode. Alle anderen Klassen sind von ihr abgeleitet. Alle abgeleiteten Klassen besitzen insbesondere alle Methoden der Basisklassen, von denen sie abstammen. So kann z.B. die Position eines jeden Grafikelementes auf der Arbeitsfläche mit der Methode SetPos eingestellt werden. Diese Methode ist in der Klasse CGrafNode vereinbart. © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 116 Klicken Sie auf die Felder der Hierarchie für detaillierte Informationen zu den einzelnen Klassen. 1.2.3.1 CAxisNode Klicken Sie auf die Felder der Hierarchie für detaillierte Informationen zu den Basisklassen: Diese Klasse stellt die Funktionen zum Darstellen von Achsen zur Verfügung. Methoden : · CAxisNode::AddTick · CAxisNode::EmptyTicks · CAxisNode::SetNodeAtt · CAxisNode::GetNodeAtt © XOn Siftware GmbH, 2008 117 Referenzhandbuch Siehe auch: Klassenhierarchie 1.2.3.1.1 CAxisNode::AddTick Syntax: void AddTick(char* szName,double Pos); Parameter: · Name: Beschriftungstext · Pos: Koordinate der Beschriftung Beschreibung: Diese Methode setzt den Beschriftungsmodus auf manuell (siehe Attribut 1204) und fügt der Beschriftungstabelle einen neuen Eintrag hinzu. Dieser Eintrag wird an der Achse nur dann sichtbar, wenn der Wert Pos im Wertebereich der Achse liegt. Beispiel: Die nachfolgende Methode beschriftet eine Achse namens AX mit einigen Städtenamen. void method::OnRun() { AX.EmptyTicks(); AX.AddTick("Los Angeles",0.0); AX.AddTick("Boston",10.0); AX.AddTick("Chicago",20.0); AX.AddTick("New York",30.0); AX.AddTick("Austin",40.0); AX.AddTick("Denver",50.0); AX.AddTick("Seatle",60.0); AX.AddTick("San Diego",70.0); AX.AddTick("Washington",80.0); AX.AddTick("Winnemuca",90.0); return 1; } Siehe auch: Klassenhierarchie, CAxisNode Übersicht 1.2.3.1.2 CAxisNode::EmptyTicks Syntax: void EmptyTicks(void); Beschreibung: Diese Methode leert die Beschriftungstabelle. Siehe auch: Klassenhierarchie, CAxisNode Übersicht © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 118 1.2.3.1.3 CAxisNode::GetNodeAtt Syntax: int GetNodeAtt(int int GetNodeAtt(int int GetNodeAtt(int int GetNodeAtt(int int GetNodeAtt(int int GetNodeAtt(int int GetNodeAtt(int int GetNodeAtt(int int GetNodeAtt(int nID,int *pVal); nID,long *pVal); nID,float *pVal); nID,double *pVal); nID,char *pVal,int nSize); nID,char *nName,int *pHeight,int *pMode,int *pAng); nID,int *pStyle,int *pWidth,int *pR,int *pG,int *pB); nID,int *pStyle,int *pHatch,int *pR,int *pG,int *pB); nID,int *pR,int *pG,int *pB); Beschreibung: Die Funktion GetNodeAtt dient zum Lesen verschiedenster Attribute. Da nicht alle Attribute eines Grafikelementes vom gleichen Typ sind, gibt es diese Funktion mit verschiedenen Parameterleisten. Detaillierte Liste der Parameterleisten siehe CGrafNode::GetNodeAtt. Mögliche Attributwerte, deren Typ und Bedeutung siehe CAxisNode::SetNodeAtt Rückgabewert: Die Funktion liefert einen Integerwert zurück. Ist der Wert kleiner 0, ist ein Fehler aufgetreten: Wert Beschreibung -1 allgemeiner, undefinierbarer Fehler -2 ID-Nummer unzulässig -3 zu lesende Daten unzulässig oder nicht definiert zu schreibender Wert außerhalb des erlaubten -4 Bereiches unzulässiger Formatstring (bei Übergabe von -5 Formatstrings) Siehe auch: Klassenhierarchie, CAxisNode Übersicht 1.2.3.1.4 CAxisNode::SetNodeAtt Syntax: int SetNodeAtt(int int SetNodeAtt(int int SetNodeAtt(int int SetNodeAtt(int int SetNodeAtt(int int SetNodeAtt(int int SetNodeAtt(int int SetNodeAtt(int int SetNodeAtt(int int SetNodeAtt(int nID,short nVal); nID,long nVal); nID,float nVal); nID,double nVal); nID,char *nVal); nID,double nVal); nID,char *nName,int nHeight,int Mode,int nAng); nID,int nStyle,int nWidth,int nR,int nG,int nB); nID,int nStyle,int nHatch,int nR,int nG,int nB); nID,int nR,int nG,int nB); Beschreibung: Die Funktion SetNodeAtt dient zum Setzen verschiedenster Attribute. Da nicht alle Attribute eines Grafikelementes vom gleichen Typ sind, gibt es diese Funktion mit verschiedenen Parameterleisten. Liste der Parameterleisten siehe: CGrafNode::SetNodeAtt © XOn Siftware GmbH, 2008 119 Referenzhandbuch Mögliche Attributwerte, deren Argumenttyp, Bedeutung, zulässige Wertebereiche bzw. Werte, sowie deren Voreinstellungen : © XOn Siftware GmbH, 2008 1.2 Programmierreferenz Typ ID 1000 Integer Bedeutung Sichtbarkeit des Grafikelementes ein/aus 1100 Abbildungsfunktion 1101 1102 Anzahl der Ticks Anzahl der Subticks 1200 Achsenorientierung 1201 Gitter 1202 Pfeilspitze 1203 Strategie für Ticks 1204 Strategie für Beschriftung 1205 Hauptmarkierung innen 1206 Hauptmarkierung außen 1207 Untermarkierung innen 1208 Untermarkierung außen 1209 Autoskalierung 3100 Anfangswert des Skalierungsintervalls 3101 Endwert des Skalierungsintervalls Float 31022008 © XOn Siftware GmbH, 4000 4200 Länge der Pfeilspitze Name des Grafikelementes Achsentitel Formatstring für die 120 Wertebereich 0=unsichtbar, 1=sichtbar 0=linear 1=logarithmisch 2=Weibulverteilung 3=Normalverteilung 4=Zeitachse 5=Reziprok 6=Reziprok verschoben 7=Logit größer/gleich 0 größer/gleich 0 0= unten 1=oben 2=links 3=rechts 0=kein Gitter 1=grobes Gitter 2=feines Gitter Bit1: links/oben ein/aus Bit2: rechts/unten ein/aus 0: äquidistant 1: optimiert 0: algorithmisch 1: manuell 0: aus 1: ein 0: aus 1: ein 0: aus 1: ein 0: aus 1: ein 1: ein 0: aus Mit diesem Attribut wird der Anfangswert des Skalierungsintervalls gesetzt. Der Wert wird erst übernommen, wenn der Endwert des Skalierungsintervalls (3101) gesetzt wird. Falls das Wertepaar nicht zur eingestellten Skalierung paßt wird die Skalierung entsprechend angepaßt. Zum Beispiel sind Werte kleiner oder gleich Null bei logarithmischer Skalierung unzul ässig. Mit diesem Attribut wird der Endwert des Skalierungsintervalls gesetzt und Angangswert (3100) und Endwert (3101) werden in die Skalierung übernommen. Sie müssen also unbedingt das Attribut 3100 gesetzt haben bevor Sie das Attribut 3101 festlegen! Falls das Wertepaar nicht zur eingestellten Skalierung paß wird die Skalierung entsprechend angepaßt. Zum Beispiel sind Werte kleiner oder gleich Null bei logarithmischer Skalierung unzulässig. Länge der Pfeilspitze in [mm] Bezeichner 121 Referenzhandbuch Für weitere Attribute siehe CGrafNode::SetNodeAtt . Rückgabewert: Die Funktion liefert einen Integerwert zurück. Ist der Wert kleiner 0, ist ein Fehler aufgetreten: Wert Beschreibung -1 allgemeiner, undefinierbarer Fehler -2 ID-Nummer unzulässig -3 zu lesende Daten unzulässig oder nicht definiert zu schreibender Wert außerhalb des erlaubten -4 Bereiches unzulässiger Formatstring (bei Übergabe von -5 Formatstrings) Siehe auch: Klassenhierarchie, CAxisNode Übersicht 1.2.3.2 CBar2DNode Klicken Sie auf die Felder der Hierarchie für detaillierte Informationen zu den Basislassen: Diese Klasse stellt die Funktionen zum Darstellen von Balkendiagrammen zur Verfügung. Die Werte der Stapelbalken werden in Form einer Matrix gespeichert. Diese Matrix kann maximal 16250 Einträge aufweisen. Die jeweiligen Maximas für Reihen sind 1998 und für Spalten 199. Die Voreinstellungen sind 5 Balken und 5 Schichten mit den entsprechenden Attributen für Schichten und Balken. Methoden : · CBar2DNode::AddLayer · CBar2DNode::AddBar · CBar2DNode::SetData · CBar2DNode::SetNodeAtt · CBar2DNode::GetNodeAtt 1.2.3.2.1 CBar2DNode::AddBar Syntax: int AddBar(CVector * pVector,char * lpszNameB,char * lpszFormat); Beschreibung: Diese Funktion erweitert ein Balkendiagramm um einen Stapelbalken, bzw hängt an die Datenmatrix eine Spalte an. Diese Funktion ändert nicht die Anzahl der Reihen der Datenmatrix. Sollte der Vektor mehr Reihen wie die Datenmatrix besitzen, werden nur 'Anzahl Datenreihen der Matrix' Werte aus dem Vektor übernommen. Falls der Vektor weniger Reihen wie die Datenmatrix besitzt werden die fehlenden Einträge mit Nullen aufgefüllt. Parameter: © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 122 · pVector: Pointer auf einen Vektor, der die Daten enthält · lpszNameB: Beschriftungsname des Balkens · lpszFormat: Formatstring für Balkenbeschriftung Rückgabewert: 0 wenn erfolgreich, sonst ein Fehlercode < 0. Siehe auch: Klassenhierarchie, CBar2DNode Übersicht 1.2.3.2.2 CBar2DNode::AddLayer Syntax: int AddLayer(char * lpszNameL,int lbStyle, int nHatchColor,int lbHatch,int nBackCol); int AddLayer(char * lpszNameL); int AddLayer(); Beschreibung: Diese Funktion erweitert ein Balkendiagramm um eine Schicht. Die neue Schicht wird auf alle bis dahin bestehenden aufgesetzt. Je nach gewählter Funktionsvariante werden für nicht angegebene Parameter Standardeinstellungen gewählt. Parameter: · lpszNameL: Pointer auf char.für Namen des Layers · lbStyle: Stil der Brush des layers · lbHatch: Typparameter der Textur · nHatchColor: Farbindexwert für Texturfarbe · nBackCol: Farbindexwert für Hintergrundfarbe des Layers Paramter,Werebereiche/Werte sowie deren Voreinstellungen: Parameter Wertebereich/Werte lpszNameL lbStyle 1=keine Textur, 2=Textur 0=horizontal, 1=vertikal, 2=diagonal45, 3=diagonal-45, lbHatch 4=gekreuzt, 5=diagonalgekreuzt nHatchColor [0,15] nBackColor [0,15] Rückgabewert: 0 wenn erfolgreich, sonst ein Fehlercode < 0. Siehe auch: Klassenhierarchie, CBar2DNode Übersicht © XOn Siftware GmbH, 2008 Voreinstellung "Lay"+[Folgenzahl] 1 4 Index der nächsten nichthäufigsten Farbe aus Farbtabelle Index der nächsten nichthäufigsten Farbe aus Farbtabelle 123 Referenzhandbuch 1.2.3.2.3 CBar2DNode::GetNodeAtt Syntax: int GetNodeAtt(int int GetNodeAtt(int int GetNodeAtt(int int GetNodeAtt(int int GetNodeAtt(int int GetNodeAtt(int int GetNodeAtt(int int GetNodeAtt(int int GetNodeAtt(int nID,int *pVal); nID,long *pVal); nID,float *pVal); nID,double *pVal); nID,char *pVal,int nSize); nID,char *nName,int *pHeight,int *pMode,int *pAng); nID,int *pStyle,int *pWidth,int *pR,int *pG,int *pB); nID,int *pStyle,int *pHatch,int *pR,int *pG,int *pB); nID,int *pR,int *pG,int *pB); Beschreibung: Die Funktion GetNodeAtt dient zum Lesen verschiedenster Attribute. Da nicht alle Attribute eines Grafikelementes vom gleichen Typ sind, gibt es diese Funktion mit verschiedenen Parameterleisten. Detaillierte Liste der Parameterleisten siehe CGrafNode::GetNodeAtt. Mögliche Attributwerte, deren Typ und Bedeutung siehe CBar2DNode::SetNodeAtt. Rückgabewert: Die Funktion liefert einen Integerwert zurück. Ist der Wert kleiner 0, ist ein Fehler aufgetreten: Wert -1 -2 -3 -4 -5 Beschreibung allgemeiner, undefinierbarer Fehler ID-Nummer unzulässig zu lesende Daten unzulässig oder nicht definiert zu schreibender Wert außerhalb des erlaubten Bereiches unzulässiger Formatstring (bei Übergabe von Formatstrings) Siehe auch: Klassenhierarchie, CBar2DNode Übersicht 1.2.3.2.4 CBar2DNode::SetData Syntax: int SetData(CMatrix * pM); int SetData(char * lpszPoolname); Beschreibung: Diese Funktion setzt die Datenmatrix eines Balkendiagramms. Sollten bereits Matrixdaten existieren, so werden diese überschrieben. Entsprechend den im allgemeinen Fall dadurch geänderten Dimensionen der Datenmatrix werden die Attributwerte für Schichten und Balken auf entsprechende Voreinstellungen gesetzt. Parameter: · pM: Pointer auf eine Matrix, die die Daten enthält · lpszPoolname: Name eines Datenpoolelements des Typs Matrix Rückgabewert: 0 wenn erfolgreich, sonst ein Fehlercode < 0. Siehe auch: © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 124 Klassenhierarchie, CBar2DNode Übersicht 1.2.3.2.5 CBar2DNode::SetNodeAtt Syntax: int SetNodeAtt(int int SetNodeAtt(int int SetNodeAtt(int int SetNodeAtt(int int SetNodeAtt(int int SetNodeAtt(int int SetNodeAtt(int int SetNodeAtt(int int SetNodeAtt(int int SetNodeAtt(int nID,short nVal); nID,long nVal); nID,float nVal); nID,double nVal); nID,char *nVal); nID,double nVal); nID,char *nName,int nHeight,int Mode,int nAng); nID,int nStyle,int nWidth,int nR,int nG,int nB); nID,int nStyle,int nHatch,int nR,int nG,int nB); nID,int nR,int nG,int nB); Beschreibung: Die Funktion SetNodeAtt dient zum Setzen verschiedenster Attribute. Da nicht alle Attribute eines Grafikelementes vom gleichen Typ sind, gibt es diese Funktion mit verschiedenen Parameterleisten. Eine detaillierte Liste der Parameterleisten finden sie unter CGrafNode::SetNodeAtt. Mögliche Attributwerte, deren Argumenttyp, Bedeutung, zulässige Wertebereiche bzw. Werte, sowie deren Voreinstellungen : Typ ID 1000 1100 1101 1102 1103 1104 Integer 1105 1106 1107 1108 1109 1150 1151 © XOn Siftware GmbH, 2008 Bedeutung Sichtbarkeit des Grafikelementes ein/ aus Anzahl der Y-Ticks Anzahl der Y-Subticks Winkel der Balkenbeschriftung in Zehntel Grad Wertebereich 0=unsichtbar, 1=sichtbar 0=transparent, 1=opaque Y-Achse darstellen ein/ 0=unsichtbar, aus 1=sichtbar Y-Ticks darstellen ein/ 0=unsichtbar, aus 1=sichtbar Balkensummen 0=unsichtbar, darstellen ein/aus 1=sichtbar Legende darstellen ein/ 0=unsichtbar, aus 1=sichtbar Anordnung der 0=links, 1=rechts Legende Abstand der Legende0=automatisch, 1=Zeile Zeilen Anzahl der Schichten ( nur lesen!) Aktuelle Schicht (ID 4150 bezieht sich hierauf) Opaque-Modus ein/aus 125 Referenzhandbuch 1160 1161 3100 Float 3101 4000 4100 4101 String 4150 4160 4161 Font 5000 Linienart 6000 7000 Füllmuster 7150 8000 Farbe 8001 8150 Anzahl der Balken (nur lesen!) Aktueller Balken (ID 4160.. bezieht sich hierauf) Verhältnis von Balkenzwischenraum größer/gleich 0 zu Balkenbreite prozentuale Breite der 0..100 Legende Name des Bezeichner Grafikelementes Name der Y-Achse Formatstring der YAchsenbeschriftung Schicht-Name (siehe ID 1151) Balken-Name (siehe ID 1161) Balken-Formatstring (siehe ID 1161) Standardschriftart für eine Liste der Standard-Linienart Linienarten siehe GrafNode:SetNodeAtt Standard-Füllmuster Füllmuster der Schicht (siehe ID 1151) Hintergrundfarbe Farbe der Standardschriftart Hintergrundfarbe der Schicht (siehe ID 1151) Für weitere Attribute siehe CGrafNode::SetNodeAtt . Rückgabewert: Die Funktion liefert einen Integerwert zurück. Ist der Wert kleiner 0, ist ein Fehler aufgetreten: Wert -1 -2 -3 -4 -5 Beschreibung allgemeiner, undefinierbarer Fehler ID-Nummer unzulässig zu lesende Daten unzulässig oder nicht definiert zu schreibender Wert außerhalb des erlaubten Bereiches unzulässiger Formatstring (bei Übergabe von Formatstrings) Siehe auch: Klassenhierarchie, CBar2DNode Übersicht © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 1.2.3.3 126 CContourNode Klicken Sie auf die Felder der Hierarchie für detaillierte Informationen zu den einzelnen Klassen: Eine Höhenliniendiagramm stellt eine Matrix als Oberfläche mit Höhenlinien dar. Dafür wird eine zweidimensionale Transformation verwendete, wie man sie für krummlinige Koordinatensysteme benötigt. Methoden: · CContourNode::SetNodeAtt · CContourNode::GetNodeAtt · CContourNode::SetData · CContourNode::SetNodeData 1.2.3.3.1 CContourNode::GetNodeAtt Syntax: int GetNodeAtt(int int GetNodeAtt(int int GetNodeAtt(int int GetNodeAtt(int int GetNodeAtt(int int GetNodeAtt(int int GetNodeAtt(int int GetNodeAtt(int int GetNodeAtt(int nID,int *pVal); nID,long *pVal); nID,float *pVal); nID,double *pVal); nID,char *pVal,int nSize); nID,char *nName,int *pHeight,int *pMode,int *pAng); nID,int *pStyle,int *pWidth,int *pR,int *pG,int *pB); nID,int *pStyle,int *pHatch,int *pR,int *pG,int *pB); nID,int *pR,int *pG,int *pB); Beschreibung: Die Funktion GetNodeAtt dient zum Lesen verschiedenster Attribute. Da nicht alle Attribute eines Grafikelementes vom gleichen Typ sind, gibt es diese Funktion mit verschiedenen Parameterleisten. Detaillierte Liste der Parameterleisten siehe CGrafNode::GetNodeAtt. Mögliche Attributwerte, deren Typ und Bedeutung siehe CContourNode::SetNodeAtt. Rückgabewert: Die Funktion liefert einen Integerwert zurück. Ist der Wert kleiner 0, ist ein Fehler aufgetreten: Wert -1 -2 -3 -4 -5 Siehe auch: © XOn Siftware GmbH, 2008 Beschreibung allgemeiner, undefinierbarer Fehler ID-Nummer unzulässig zu lesende Daten unzulässig oder nicht definiert zu schreibender Wert außerhalb des erlaubten Bereiches unzulässiger Formatstring (bei Übergabe von Formatstrings) 127 Referenzhandbuch Klassenhierarchie, CContourNode Übersicht 1.2.3.3.2 CContourNode::SetData Syntax: int SetData( int dimX,double x0,double dx, int dimY,double y0,double dy, double* Z); int SetData( double x0,double dx, double y0,double dy, CF8Matrix* M); int SetData( double x0,double dx, double y0,double dy, char* link); Beschreibung: Diese Methoden setzen gleichzeitig die Daten der X-, Y- und Z- Werte. Die X- und Y- Werte werden jeweils implizit vorgegeben, die Z- Werte sind wahlweise explizit oder Poolwerte. Nachfolgend finden sie die detailierte Beschreibung der einzelnen Varianten. 1. Variante: int SetData(int dimX,double x0,double dx,int dimY,double y0,double dy,double* Z) Parameter: · dimX: Anzahl der Werte in X- Richtung · x0: Startwert in X- Richtung · dx: Schrittweite in X- Richtung · dimY: Anzahl der Werte in Y- Richtung · y0: Startwert in Y- Richtung · dy: Schrittweite in Y- Richtung · Z: Z- Werte. Das Array muß mindestens dimX*dimY Werte enthalten. Beschreibung: Die X- und Y- Werte werden implizit festgelegt, die Werte in Z-Richtung werden aus dem Array Z kopiert. 2. Variante: int SetData(double x0,double dx,double y0,double dy,CF8Matrix* M); Parameter: · x0: Startwert in X- Richtung · dx: Schrittweite in X- Richtung · y0: Startwert in Y- Richtung · dy: Schrittweite in Y- Richtung · M: Z- Werte. Beschreibung: Die X- und Y- Werte werden implizit festgelegt, die Werte in Z-Richtung werden aus der Matrix M kopiert. Die Werte in X- und Y- Richtung ergeben sich als xi=x0+i*dx bzw. yi=y0+i*dy. 3. Variante int SetData(double x0,double dx,double y0,double dy,char* link); Parameter: · x0: Startwert in X- Richtung © XOn Siftware GmbH, 2008 1.2 Programmierreferenz · · · · 128 dx: Schrittweite in X- Richtung y0: Startwert in Y- Richtung dy: Schrittweite in Y- Richtung link: Name eines Poolelementes vom Matrix- Typ. Beschreibung: Die X- und Y- Werte werden implizit festgelegt, die Werte in Z-Richtung werden dem mit link bezeichneten Datenpoolelement entnommen. Die Werte in X- und Y- Richtung ergeben sich als xi =x0+i*dx bzw. yi=y0+i*dy. Beispiel: int method::OnRun() { double Z[100]; CF8Matrix M; int i,j; //Daten Initialisieren for (i=0;i<10;i++) for (j=0;j<10;j++) { x=i*0.2-1.0; y=j*0.2-1.0; Z[i*10+j]=x*x+y*y; } M.SetData(10,10,Z); //1.Variante: Daten stammen aus dem Array Z CONTUR.SetData(10,-1.0,0.2,10,-1.0,0.2,Z); //2.Variante: Daten Stammen aus der Matrix M CONTUR.SetData(-1.0,0.2,-1.0,0.2,&M); //3.Variante: Daten Stammen aus dem Pool CONTUR.SetData(-1.0,0.2,-1.0,0.2,"Werte"); return 1; } Siehe auch: Klassenhierarchie, CContourNode Übersicht 1.2.3.3.3 CContourNode::SetNodeAtt Syntax: int SetNodeAtt(int int SetNodeAtt(int int SetNodeAtt(int int SetNodeAtt(int int SetNodeAtt(int int SetNodeAtt(int int SetNodeAtt(int int SetNodeAtt(int int SetNodeAtt(int nID,int nVal); nID,long nVal); nID,float nVal); nID,double nVal); nID,char *nVal); nID,char *nName,int nHeight,int Mode,int nAng); nID,int nStyle,int nWidth,int nR,int nG,int nB); nID,int nStyle,int nHatch,int nR,int nG,int nB); nID,int nR,int nG,int nB); Beschreibung: Die Funktion SetNodeAtt dient zum Setzen verschiedenster Attribute. Da nicht alle Attribute eines Grafikelementes vom gleichen Typ sind, gibt es diese Funktion mit verschiedenen Parameterleisten. Eine detaillierte Liste der Parameterleisten finden sie unter CGrafNode::SetNodeAtt. Mögliche Attributwerte, deren Argumenttyp, Bedeutung, zulässige Wertebereiche bzw. Werte, sowie deren Voreinstellungen : © XOn Siftware GmbH, 2008 129 Referenzhandbuch Typ Integer ID Bedeutung Sichtbarkeit des Grafikelementes ein/ 1000 aus 1100 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1300 1301 1302 1303 1304 Float 3100 3101 3102 3103 String 3300 4000 4200 4201 4202 4203 4300 4301 Font 5000 5300 Wertebereich 0=unsichtbar, 1=sichtbar 0=linear/linear, 1=linear/Bogenmaß, 2=linear/Gradmaß, 3=Weibul, Abbildungsfunktion 4=polar/Bogenmaß, 5=polar/ Gradmaß Position der X-Achse 0=oben, 1=mittig, 2=unten Position der Y-Achse 0=links, 1=mittig, 2=rechts Position der Pfeilspitze an der X-Achse 0=rechts, 1=links Position der Pfeilspitze an der Y-Achse 0=oben, 1=unten 0=kein Gitter, 1=grobes Gitter, Gitter der X-Achse 2=feines Gitter 0=kein Gitter, 1=grobes Gitter, Gitter der Y-Achse 2=feines Gitter Anzahl der X-Ticks größer/gleich 0 Anzahl der Y-Ticks größer/gleich 0 Anzahl der X-Subticks größer/gleich 0 Anzahl der Y-Subticks größer/gleich 0 Interpolation der Höhenlinien 0=linear, 1=bikubischer Spline für eine Liste der Markierungstypen Markierung der Minima CGrafNode::SetNodeAtt für eine Liste der Markierungstypen Markierung der Maxima CGrafNode::SetNodeAtt Markierungsgröße der Minima in Hundertstel Millimeter Markierungsgröße der Maxima in Hundertstel Millimeter X0, Anfangswert der X-Achse DX, Breite der X-Achse (Endwert=X0 +DX) Y0, Anfangswert der Y-Achse DY, Breite der Y-Achse (Endwert=Y0 +DY) Abstand der Höhenlinien in Z-Richtung größer/gleich 0 Name des Grafikelementes Bezeichner Name der X-Achse Name der Y-Achse Formatstring für die Beschriftung der XAchse Formatstring für die Beschriftung der XAchse Formatstring für die Beschriftung der Minima Formatstring für die Beschriftung der Maxima Standardschriftart Schriftart für die Beschriftung der Minima 5301 Schriftart für die Beschriftung der © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 130 Maxima Linienart 6000 Standard-Linienart 6300 Linienart für die Höhenlinien Füllmuster Farbe für eine Liste der Linienarten siehe GrafNode:SetNodeAtt für eine Liste der Linienarten siehe GrafNode:SetNodeAtt 7000 Standard-Füllmuster 8000 Hintergrundfarbe 8001 Farbe der Standardschriftart Farbe der Minima-Markierung und 8300 Beschriftung Farbe der Maxima-Markierung und 8301 Beschriftung Für weitere Attribute siehe CGrafNode::SetNodeAtt , CPlaneNode::SetNodeAtt Rückgabewert Die Funktion liefert einen Integerwert zurück. Ist der Wert kleiner 0, ist ein Fehler aufgetreten: Wert -1 -2 -3 -4 -5 Beschreibung allgemeiner, undefinierbarer Fehler ID-Nummer unzulässig zu lesende Daten unzulässig oder nicht definiert zu schreibender Wert außerhalb des erlaubten Bereiches unzulässiger Formatstring (bei Übergabe von Formatstrings) Siehe auch: Klassenhierarchie, CContourNode Übersicht 1.2.3.3.4 CContourNode::SetNodeData Syntax: int SetNodeData(int int SetNodeData(int int SetNodeData(int int SetNodeData(int int SetNodeData(int int SetNodeData(int nID,double v0,double dv); nID,int dim,double *pV); nID,int dimX,int dimY,double *pV); nID,char *link); nID,CF8Vector *pV); nID,CF8Matrix *pM); Beschreibung: Mit diesen Methoden können die X-, Y- und Z- Werte separat konfiguriert werden. Die Bedeutung der einzelnen Varianten finden sie im Anschluß. 1. Variante int SetNodeData(int nID,double v0,double dv); Parameter: · nID: Datenbezug: 0: X- Werte · 1: Y- Werte · v0: Anfangswert · dv: Schrittweite Beschreibung: legt die entsprechende Werte implizit fest. Die Werte ergeben sich als 2. Variante: int SetNodeData(int nID,int dim,double *pV); © XOn Siftware GmbH, 2008 131 Referenzhandbuch Parameter: · nID: Datenbezug: 0: X- Werte, 1: Y- Werte · dim: Anzahl der Werte im Array · pV: Array von Werten mit mindestens dim Einträgen Beschreibung: legt die entsprechenden Werte explizit fest. Die Werte des Arrays werden kopiert 3. Variante: int SetNodeData(int nID,int dimX,int dimY,double *pV); Parameter: · nID: Datenbezug: 2: Z- Werte · dimX: Anzahl der Werte in X- Richtung · dimY: Anzahl der Werte in Y- Richtung · pV: Array von Werten mit mindestens dimX*dimY Einträgen Beschreibung: legt die Werte in Z- Richtung explizit fest. 4. Variante: int SetNodeData(int nID,char *link); Parameter: · nID: Datenbezug 0: X- Werte 1: Y- Werte 2: Z- Werte · link: Name eines Datenpoolelementes. Für X- und Y- Werte muß dieses Element vom Typ CVector sein, für Z- Werte vom Typ CF8Matrix. Beschreibung: legt die entsprechenden Werte als Datenpoolwerte fest. 5. Variante: int SetNodeData(int nID,CF8Vector *pV); Parameter: · nID: Datenbezug 0: X- Werte 1: Y- Werte · pV: Werte- Vektor Beschreibung: legt die entsprechenden Werte explizit fest. Der Inhalt des Vektors wird kopiert. 6. Variante: int SetNodeData(int nID,CF8Matrix *pM); Parameter: · nID: Datenbezug: 2: Z- Werte · pM: Werte- Matrix Beschreibung: legt die Werte in Z- Richtung explizit fest. Die Werte der Matrix pM werden kopiert. Beispiel: int method::OnRun() { double X[10],Y[10],Z[100]; CF8Matrix M; © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 132 CF8Vector VX,VY; int i,j; //Daten Initialisieren for (i=0;i<10;i++) X[i]=Y[i]=j*0.2-1.0; for (i=0;i<10;i++) for (j=0;j<10;j++) Z[i*10+j]=X[i]*X[i]+Y[i]*Y[i]; M.SetData(10,10,Z); VX.SetData(10,X); VY.SetData(10,Y); //1.Variante: Implizite X- WerteArray Z CONTOUR.SetNodeData(0,10,-1.0,0.2); //2.Variante: Explizite Y- WerteMatrix M CONTOUR.SetNodeData(1,10,Y); //3.Variante: Explizite Z- WertePool CONTOUR.SetData(2,10,10,Z); //4.Variante: Poolwerte CONTOUR(1,"YWerte"); //5.Variante: Explizite Werte aus Vector CONTOUR.SetNodeData(0,&VX); //6.Variante: Explizite Werte aus Matrix CONTOUR.SetNodeData(2,&M); return 1; } Siehe auch: Klassenhierarchie, CContourNode Übersicht 1.2.3.4 CDibNode Klicken Sie auf die Felder der Hierarchie für detaillierte Informationen zu den einzelnen Klassen: Diese Klasse ermöglicht die Darstellung von Bitmap-Grafiken. Zur Zeit besitzt diese Klasse noch keine eigenen Methoden. Es können aber die Methoden der Klasse CGrafNode angewendet werden, von der CDibNode abgeleitet ist. 1.2.3.5 CGraf2DNode Klicken Sie auf die Felder der Hierarchie für detaillierte Informationen zu den einzelnen Klassen: Diese Klasse stellt die Funktionen zur Darstellung von zweidimensionalen Grafen mit verschiedenen Transformationen zur Verfügung. © XOn Siftware GmbH, 2008 133 Referenzhandbuch Methoden: · CGraf2DNode::GetTraceIndex · CGraf2DNode::AddTrace · CGraf2DNode::SetTraceData · CGraf2DNode::DelTrace · CGraf2DNode::GetTrace · CGraf2DNode::SetNodeAtt · CGraf2DNode::GetNodeAtt 1.2.3.5.1 CGraf2DNode::AddTrace Syntax: int AddTrace(CPaintObj* pO); int AddTrace(char *XAchse,char *YAchse,char *KName); int AddTrace(char *Ebene,char *KName); Beschreibung: Mit diesen Methoden werden neue Kurven in eine Legende (und damit auch in ein Diagramm) eingefügt. Die erste Variante übergibt an die Legende den Zeiger auf ein beliebiges Kurvenobjekt. Mögliche Objekte sind hierbei CKurve2DTrace, CBar2DTrace, CVect2DTrace, CWhiskTrace, CPPolyTrace, CKurve3DTrace und CBar3DTrace. Diese Methode ist eine Neuerung der Version 1.5. Die Parametrierung der einzelnen Kurvenobjekte erfolgt mit den Methoden des Kurvenobjekts. Die beiden anderen Varianten entstammen der Version 1.0. Sie legen ein Objekt vom Typ CKurve2DTrace an, verknüpfen es wahlweise mit zwei Achsen oder einer Ebene und tragen es in die Legende ein. Die Parameter XAchse und YAchse müssen Namen von Objekten des Typs CAxisNode sein, die Achsen müssen in diesem Fall die entsprechende Ausrichtung besitzen. Der Parameter Ebene muß der Name eines Objekts vom Typ CPlaneNode oder CContourNode sein. Die neu angelegte Kurve ist gleichzeitig auch die aktuelle Kurve (Attribut 1104). Die entsprechenden Attributierungsfunktionen beziehen sich also auf diese Kurve. Um Kurvenwerte festzulegen verwenden sie die Methode SetTraceData. Parameter: · pO: Zeiger auf ein beliebiges Kurvenobjekt · XAchse: Name der X-Achse, auf die sich die Kurve bezieht · YAchse: Name der Y-Achse, auf die sich die Kurve bezieht · Ebene: Name der Ebene, auf die sich die Kurve bezieht Rückgabewert: Index der neuen Kurve (Attribut 1104). Beispiel: · 2D- Kurve siehe CKurve2D::SetTraceAtt · 2D- Stapelbalken siehe CBar2D::SetTraceAtt · Vektordiagramm siehe CVect2DTrace::SetTraceAtt · Whisker & Intervall siehe CWhiskTrace::SetTraceAtt · Polygonzüge siehe CPPolyTrace::SetTraceAtt · 3D- Kurven siehe CKurve3D::SetTraceAtt · 3D- Stapelbalken siehe CBar3D::SetTraceAtt Klassische Programmierung aus Version 1.0: int method::OnRun() { double X[500],Y[500]; int i; © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 134 for (i=0;i<500;i++) { X[i]=cos(i/37.0); Y[i]=sin(i/25.0); } //Alle Kurven aus Graf entfernen Graf.Clear(); //Kurve 'Test' bezüglich Ebene 'Plane' anlegen Graf.AddTrace("Plane","Test"); //X-Werte Graf.SetTraceData(0,X,500); //Y- Werte Graf.SetTraceData(1,Y,500); //Linientyp: Graf.SetNodeAtt(6150,1,0,255,0,0); return 1; } Siehe auch: Klassenhierarchie, CGraf2DNode Übersicht 1.2.3.5.2 CGraf2DNode::DelTrace Syntax: int DelTrace(char *Name); int DelTrace(int Ind); Parameter: · Name: Name der Kurve, die gelöscht werden soll · Ind: Index der Kurve, die gelöscht werden soll Beschreibung: löscht eine Kurve aus einem Grafen. Die Kurve kann entweder anhand ihres Namens oder anhand ihres Index identifiziert werden. Der Index einer Kurve kann mit der Methode GetTraceIndex ermittelt werden. Rückgabewert: 0: Kurve nicht gefunden 1: Kurve gefunden und gelöscht Siehe auch: Klassenhierarchie, CGraf2DNode Übersicht 1.2.3.5.3 CGraf2DNode::GetNodeAtt Syntax: int GetNodeAtt(int int GetNodeAtt(int int GetNodeAtt(int int GetNodeAtt(int int GetNodeAtt(int int GetNodeAtt(int int GetNodeAtt(int int GetNodeAtt(int int GetNodeAtt(int nID,int *pVal); nID,long *pVal); nID,float *pVal); nID,double *pVal); nID,char *pVal,int nSize); nID,char *nName,int *pHeight,int *pMode,int *pAng); nID,int *pStyle,int *pWidth,int *pR,int *pG,int *pB); nID,int *pStyle,int *pHatch,int *pR,int *pG,int *pB); nID,int *pR,int *pG,int *pB); Beschreibung: Die Funktion GetNodeAtt dient zum Lesen verschiedenster Attribute. Da nicht alle Attribute eines Grafikelementes vom gleichen Typ sind, gibt es diese Funktion mit verschiedenen © XOn Siftware GmbH, 2008 135 Referenzhandbuch Parameterleisten. Detaillierte Liste der Parameterleisten siehe CGrafNode::GetNodeAtt. Mögliche Attributwerte, deren Typ und Bedeutung siehe CGraf2DNode::SetNodeAtt. Rückgabewert: Die Funktion liefert einen Integerwert zurück. Ist der Wert kleiner 0, ist ein Fehler aufgetreten: Wert -1 -2 -3 -4 -5 Beschreibung allgemeiner, undefinierbarer Fehler ID-Nummer unzulässig zu lesende Daten unzulässig oder nicht definiert zu schreibender Wert außerhalb des erlaubten Bereiches unzulässiger Formatstring (bei Übergabe von Formatstrings) Siehe auch: Klassenhierarchie, CGraf2DNode Übersicht 1.2.3.5.4 CGraf2DNode::GetTrace Syntax: CPaintObj* GetTrace(void); CPaintObj* GetTrace(char *Name); CPaintObj* GetTrace(int Index); Parameter: · Name: Name der gesuchten Kurve · Index: Index der gesuchte Kurve Beschreibung: Die Methode liefert einen Zeiger auf ein Darstellungsobjekt. Das Objekt kann durch Angabe von Name oder Index identifiziert werden. Wird kein Parameter angegeben, so wird das fokusierte Objekt zurückgegeben (siehe Attribut 1104). Rückgabewert: Zeiger auf das Darstellungsobjekt. Siehe auch: Klassenhierarchie, CGraf2DNode Übersicht 1.2.3.5.5 CGraf2DNode::GetTraceIndex Syntax: int GetTraceIndex(char *Name); Parameter: · Name: Name der gesuchten Kurve Beschreibung: sucht die Kurve mit dem entsprechenden Namen und liefert deren Index zurück. Falls mehrere Kurven mit gleichem Namen existieren, wird der Index der ersten Kurve mit diesem Namen zurückgeliefert. Rückgabewert: Index der Kurve oder -1, falls die Kurve nicht gefunden wurde. © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 136 Siehe auch: Klassenhierarchie, CGraf2DNode Übersicht 1.2.3.5.6 CGraf2DNode::SetNodeAtt Syntax: int SetNodeAtt(int int SetNodeAtt(int int SetNodeAtt(int int SetNodeAtt(int int SetNodeAtt(int int SetNodeAtt(int int SetNodeAtt(int int SetNodeAtt(int int SetNodeAtt(int nID,int nVal); nID,long nVal); nID,float nVal); nID,double nVal); nID,char *nVal); nID,char *nName,int nHeight,int Mode,int nAng); nID,int nStyle,int nWidth,int nR,int nG,int nB); nID,int nStyle,int nHatch,int nR,int nG,int nB); nID,int nR,int nG,int nB); Beschreibung: Die Funktion SetNodeAtt dient zum Setzen verschiedenster Attribute. Da nicht alle Attribute eines Grafikelementes vom gleichen Typ sind, gibt es diese Funktion mit verschiedenen Parameterleisten. Eine detaillierte Liste der Parameterleisten finden sie unter CGrafNode::SetNodeAtt. Mögliche Attributwerte, deren Argumenttyp, Bedeutung, zulässige Wertebereiche bzw. Werte, sowie deren Voreinstellungen : Typ ID 1000 1100 1101 1102 Integer 1103 1104 1150 1151 1152 1153 4000 String 4150 4151 © XOn Siftware GmbH, 2008 Bedeutung Sichtbarkeit des Grafikelementes ein/ aus Legende zeichnen ein/ aus Ausrichtung der Legende Zeilenabstand der Legendenzeilen Anzahl der Kurven (nur lesen!) Aktuelle Kurve Interpolation der Kurve (siehe ID 1104) Punktmarkierung der Kurve (siehe ID 1104) Markierungsgröße in Hundertstel Millimeter (siehe ID 1104) Referenz-Typ Wertebereich 0=unsichtbar, 1=sichtbar 0=unsichtbar, 1=sichtbar 0=links, 1=rechts 0=automatisch, 1=eine Zeile 0=konstant, 1=linear, 2=Spline siehe Tabelle weiter unten 0=Achsen, 1=Zeichenebene Name des Bezeichner Grafikelementes Referenz-X-Achse der Kurve (siehe ID 1104) Referenz-Y-Achse der Kurve (siehe ID 1104) 137 Referenzhandbuch 5000 ReferenzZeichenebene der Kurve (siehe ID 1104) Name der Kurve in der Legende (siehe ID 1104) Standardschriftart 6000 Standard-Linienart 6150 Linienart der Kurve (siehe ID 1104) 4152 4153 Font Linienart Linienart der Markierungen der Kurve (siehe ID 1104) Füllmuster 7000 Standard-Füllmuster 8000 Hintergrundfarbe Farbe Farbe der 8001 Standardschriftart Für weitere Attribute siehe CGrafNode::SetNodeAtt. 6151 für eine Liste der Linienarten siehe GrafNode:SetNodeAtt für eine Liste der Linienarten siehe GrafNode:SetNodeAtt für eine Liste der Linienarten siehe GrafNode:SetNodeAtt Rückgabewert: Die Funktion liefert einen Integerwert zurück. Ist der Wert kleiner 0, ist ein Fehler aufgetreten: Wert Beschreibung -1 allgemeiner, undefinierbarer Fehler -2 ID-Nummer unzulässig -3 zu lesende Daten unzulässig oder nicht definiert zu schreibender Wert außerhalb des erlaubten -4 Bereiches unzulässiger Formatstring (bei Übergabe von -5 Formatstrings) Siehe auch: Klassenhierarchie, CGraf2DNode Übersicht 1.2.3.5.7 CGraf2DNode::SetTraceData Syntax: int SetTraceData(int int SetTraceData(int int SetTraceData(int int SetTraceData(int int SetTraceData(int int SetTraceData(int nRef,double v0,double dv,int len); nRef,double* pV,int len); nRef,CVector* pV); nRef,long* pV,int len); nRef,CTimeVect* pT); nRef,char *nPool); Beschreibung: mit diesen Methoden können die X- und Y- Werte einer Kurve gesetzt werden. Die Werte können implizit oder explizit vorliegen oder aus dem Datenpool stammen. Im Anschluß finden sie eine detailierte Beschreibung der einzelnen Varianten. 1. Variante int SetTraceData(int nRef,double v0,double dv,int len); © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 138 Parameter: · nRef: 0: X- Werte setzen · 1: Y- Werte setzen · v0: Anfangswert · dv: Schrittweite · len: Anzahl Werte Beschreibung: legt die entsprechenden Werte implizit fest. Die Werte ergeben sich als . Der Parameter len hat nur eine Bedeutung, falls sowohl die X- als auch die Y- Werte implizit festgelegt werden. In diesem Fall besitzt die Kurve Werte. Die zugehörige Achse darf keine Datumsachse sein. 2. Variante: int SetTraceData(int nRef,double* pV,int len); Parameter: · nRef: 0: X- Werte setzen 1: Y- Werte setzen · pV: Array von Zahlen- Werten · len: Anzahl der Werte im Array pV Beschreibung: legt die entsprechenden Werte explizit fest. Die Werte werden aus dem Array pV kopiert. Die zugehörige Achse darf keine Datumsachse sein. 3. Variante int SetTraceData(int nRef,CVector* pV); Parameter: · nRef: 0: X- Werte setzen 1: Y- Werte setzen · pV: Zahlen- Werte Beschreibung: legt die entsprechenden Werte explizit fest. Die Werte werden aus dem Vektor pV kopiert. Die zugehörige Achse darf keine Datumsachse sein. 4. Variante int SetTraceData(int nRef,long* pV,int len); Parameter: · nRef: 0: X- Werte setzen 1: Y- Werte setzen · pV: Array von Zeit- Werten (Sekunden seit 1.1.70) · len: Anzahl der Werte im Array pV Beschreibung: legt die entsprechenden Werte explizit fest. Die Werte werden aus dem Array pV kopiert. Die zugehörige Achse muß eine Datumsachse sein. 5. Variante int SetTraceData(int nRef,CTimeVect* pT); Parameter: · nRef: 0: X- Werte setzen 1: Y- Werte setzen © XOn Siftware GmbH, 2008 139 Referenzhandbuch · pV: Datum/Zeit- Werte Beschreibung: legt die entsprechenden Werte explizit fest. Die Werte werden aus dem Zeit-Vektor pV kopiert. Die zugehörige Achse muß eine Datumsachse sein. 6. Variante int SetTraceData(int nRef,char *nPool); Parameter: · nRef: 0: X- Werte setzen 1: Y- Werte setzen · nPool: Name des Poolelementes Beschreibung: verknüpft die entsprechenden Werte mit einem Datenpoolelement. Das Datenpoolelement muß vom Typ CTimeVect oder CVector sein. Ist das Datenpoolelement vom Typ CTimeVect, so muß die entsprechende Achse eine Zeitachse sein, andernfalls eine Zahlenachse. Beispiel: Für dieses Beispiel müssen sie auf der Oberfläche folgende Elemente anlegen: · einen Graf2DNode namens "GRAF" · eine X-Achse namens "XAchse" mit der Abbildungsfunktion Zeitachse · eine Y-Achse namens "YAchse" mit der Abbildungsfunktion linear int method::OnRun() { double Y[100]; int i,X[100]; for (i=0;i<100;i++) { X[i]=time()+i*1000; Y[i]=sin(i*0.1); } GRAF.Clear(); GRAF.AddTrace("XAchse","YAchse","Kurve"); //explizite Zeitwerte GRAF.SetTraceData(0,X,100); //explizite Zahlenwerte GRAF.SetTraceData(1,Y,100); //Bereiche der Achsen einstellen XAchse.SetPhys(X[0],X[99]); YAchse.SetPhys(-1.0,1.0); return 1; } Siehe auch: Klassenhierarchie, CGraf2DNode Übersicht © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 1.2.3.6 140 CGraf3DNode Klicken Sie auf die Felder der Hierarchie für detaillierte Informationen zu den einzelnen Klassen: Diese Klasse stellt die Methoden zur Darstellung von dreidimensionalen Grafen zur Verfügung. Methoden: · CGraf3DNode::SetNodeAtt · CGraf3DNode::GetNodeAtt · CGraf3DNode::SetData · CGraf3DNode::SetNodeData 1.2.3.6.1 CGraf3DNode::GetNodeAtt Syntax: int GetNodeAtt(int int GetNodeAtt(int int GetNodeAtt(int int GetNodeAtt(int int GetNodeAtt(int int GetNodeAtt(int int GetNodeAtt(int int GetNodeAtt(int int GetNodeAtt(int nID,int *pVal); nID,long *pVal); nID,float *pVal); nID,double *pVal); nID,char *pVal,int nSize); nID,char *nName,int *pHeight,int *pMode,int *pAng); nID,int *pStyle,int *pWidth,int *pR,int *pG,int *pB); nID,int *pStyle,int *pHatch,int *pR,int *pG,int *pB); nID,int *pR,int *pG,int *pB); Beschreibung: Die Funktion GetNodeAtt dient zum Lesen verschiedenster Attribute. Da nicht alle Attribute eines Grafikelementes vom gleichen Typ sind, gibt es diese Funktion mit verschiedenen Parameterleisten. Detaillierte Liste der Parameterleisten siehe CGrafNode::GetNodeAtt. Mögliche Attributwerte, deren Typ und Bedeutung siehe CGraf3DNode::SetNodeAtt. Rückgabewert: Die Funktion liefert einen Integerwert zurück. Ist der Wert kleiner 0, ist ein Fehler aufgetreten: Wert -1 -2 -3 -4 -5 Siehe auch: Klassenhierarchie, CGraf3DNode Übersicht © XOn Siftware GmbH, 2008 Beschreibung allgemeiner, undefinierbarer Fehler ID-Nummer unzulässig zu lesende Daten unzulässig oder nicht definiert zu schreibender Wert außerhalb des erlaubten Bereiches unzulässiger Formatstring (bei Übergabe von Formatstrings) 141 Referenzhandbuch 1.2.3.6.2 CGraf3DNode::SetData Syntax: int SetData(int dimX,double x0,double dx,int dimY,double y0,double dy,double* Z) int SetData(double x0,double dx,double y0,double dy,CF8Matrix* M); int SetData(double x0,double dx,double y0,double dy,char* link); Beschreibung: Diese Methoden setzen gleichzeitig die Daten der X-, Y- und Z- Werte. Die X- und Y- Werte werden jeweils implizit vorgegeben, die Z- Werte sind wahlweise explizit oder Poolwerte. Nachfolgend finden sie die detailierte Beschreibung der einzelnen Varianten. 1. Variante: int SetData( int dimX,double x0,double dx, int dimY,double y0,double dy, double* Z); Parameter: · dimX: Anzahl der Werte in X- Richtung · x0: Startwert in X- Richtung · dx: Schrittweite in X- Richtung · dimY: Anzahl der Werte in Y- Richtung · y0: Startwert in Y- Richtung · dy: Schrittweite in Y- Richtung · Z: Z- Werte. Das Array muß mindestens dimX*dimY Werte enthalten. Beschreibung: Die X- und Y- Werte werden implizit festgelegt, die Werte in Z-Richtung werden aus dem Array Z kopiert. Die Werte ergeben sich als. 2. Variante int SetData(double x0,double dx,double y0,double dy,CF8Matrix* M); Parameter: · x0: Startwert in X- Richtung · dx: Schrittweite in X- Richtung · y0: Startwert in Y- Richtung · dy: Schrittweite in Y- Richtung · M: Z- Werte. Beschreibung: Die X- und Y- Werte werden implizit festgelegt, die Werte in Z-Richtung werden aus der Matrix M kopiert. Die Werte in X- und Y- Richtung ergeben sich als. 3. Variante int SetData(double x0,double dx,double y0,double dy,char* link); Parameter: · x0: Startwert in X- Richtung · dx: Schrittweite in X- Richtung · y0: Startwert in Y- Richtung · dy: Schrittweite in Y- Richtung · link: Name eines Poolelementes vom Matrix- Typ. Beschreibung: Die X- und Y- Werte werden implizit festgelegt, die Werte in Z-Richtung werden dem mit link bezeichneten Datenpoolelement entnommen. Die Werte in X- und Y- Richtung ergeben sich als. Beispiel: © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 142 int method::OnRun() { double x,y,z[10][10]; CF8Matrix M; int i,j; //Daten Initialisieren for (i=0;i<10;i++) for (j=0;j<10;j++) { x=i*0.2-1.0; y=j*0.2-1.0; z[i][j]=x*x+y*y; } M.SetData(10,10,z); //1.Variante: Daten stammen aus dem Array z GRAF3D.SetData(10,-1.0,0.2,10,-1.0,0.2,z); //2.Variante: Daten Stammen aus der Matrix M GRAF3D.SetData(-1.0,0.2,-1.0,0.2,&M); //3.Variante: Daten Stammen aus dem Pool GRAF3D.SetData(-1.0,0.2,-1.0,0.2,"Werte"); return 1; } Siehe auch: Klassenhierarchie, CGraf3DNode Übersicht 1.2.3.6.3 CGraf3DNode::SetNodeAtt Syntax: int SetNodeAtt(int int SetNodeAtt(int int SetNodeAtt(int int SetNodeAtt(int int SetNodeAtt(int int SetNodeAtt(int int SetNodeAtt(int int SetNodeAtt(int int SetNodeAtt(int nID,int nVal); nID,long nVal); nID,float nVal); nID,double nVal); nID,char *nVal); nID,char *nName,int nHeight,int Mode,int nAng); nID,int nStyle,int nWidth,int nR,int nG,int nB); nID,int nStyle,int nHatch,int nR,int nG,int nB); nID,int nR,int nG,int nB); Beschreibung: Die Funktion SetNodeAtt dient zum Setzen verschiedenster Attribute. Da nicht alle Attribute eines Grafikelementes vom gleichen Typ sind, gibt es diese Funktion mit verschiedenen Parameterleisten. Eine detaillierte Liste der Parameterleisten finden sie unter CGrafNode::SetNodeAtt. Mögliche Attributwerte, deren Argumenttyp, Bedeutung, zulässige Wertebereiche bzw. Werte, sowie deren Voreinstellungen: Typ ID 1000 Integer 1200 1201 1202 © XOn Siftware GmbH, 2008 Bedeutung Sichtbarkeit des Grafikelementes ein/ aus Höhenlinien in der XYEbene ein/aus Höhenlinien in der XZEbene ein/aus Höhenlinien in der YZEbene ein/aus Wertebereich 0=unsichtbar, 1=sichtbar 0=unsichtbar, 1=sichtbar 0=unsichtbar, 1=sichtbar 0=unsichtbar, 1=sichtbar 143 Referenzhandbuch 1203 1204 Füllmodus 1206 4103 4104 4105 5000 Anzahl der Höhenlinien Anzahl der Farben in der Farbtabelle Aktuelle Farbe (in der Farbtabelle) Anfangswert X-Achse Endwert X-Achse Anfangswert Y-Achse Endwert Y-Achse Anfangswert Z-Achse Endwert Z-Achse Perspektive Blickwinkel der XAchse in Radiant Blickwinkel der YAchse in Radiant Blickwinkel der ZAchse in Radiant Prozentwert für die aktuelle Farbe (ID1208) Name des Grafikelementes Formatstring für Beschriftung der XAchse Formatstring für Beschriftung der YAchse Formatstring für Beschriftung der ZAchse Titel der X-Achse Titel der Y-Achse Titel der Z-Achse Standardschriftart 6000 Standard-Linienart 6200 Linienart Gitterlinien 6201 Linienart der Höhenlinien in den 1208 3100 3101 3102 3103 3104 3105 3106 3107 3108 3109 3250 4000 4100 String 4101 4102 Font Linienart 0=unsichtbar, 1=sichtbar 0=unsichtbar, 1=sichtbar 0=monochrom, 1=beleuchtet, 2=kartographisch 1205 1207 Float Höhenlinien in der Kurve ein/aus Gitterlinien auf der Kurve ein/aus 0..[ID 1207] 0.0=keine, 20.0=stark 0..2p 0..2p 0..2p 0..100 Bezeichner für eine Liste der Linienarten siehe GrafNode:SetNodeAtt für eine Liste der Linienarten siehe GrafNode:SetNodeAtt für eine Liste der Linienarten siehe © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 6202 Füllmuster 7000 8000 8001 Farbe 8250 Ebenen Linienart der Höhenlinien in der Kurve Standard-Füllmuster Hintergrundfarbe Farbe der Standardschriftart Farbe der aktuellen Farbe in der Farbtabelle (ID 1208) 144 GrafNode:SetNodeAtt für eine Liste der Linienarten siehe GrafNode:SetNodeAtt Für weitere Attribute siehe CGrafNode::SetNodeAtt , CSzene::SetNodeAtt Rückgabewert: Die Funktion liefert einen Integerwert zurück. Ist der Wert kleiner 0, ist ein Fehler aufgetreten: Wert -1 -2 -3 Beschreibung allgemeiner, undefinierbarer Fehler ID-Nummer unzulässig zu lesende Daten unzulässig oder nicht definiert zu schreibender Wert außerhalb des erlaubten Bereiches unzulässiger Formatstring (bei Übergabe von Formatstrings) -4 -5 Siehe auch: Klassenhierarchie, CGraf3DNode Übersicht 1.2.3.6.4 CGraf3DNode::SetNodeData Syntax: int SetNodeData(int int SetNodeData(int int SetNodeData(int int SetNodeData(int int SetNodeData(int int SetNodeData(int nID,double v0,double dv); nID,int dim,double *pV); nID,int dimX,int dimY,double *pV); nID,char *link); nID,CVector *pV); nID,CMatrix *pM); Beschreibung: Mit diesen Methoden können die X-, Y- und Z- Werte separat konfiguriert werden. Die Bedeutung der einzelnen Varianten finden sie im Anschluß. 1. Variante int SetNodeData(int nID,double v0,double dv); Parameter: · nID: Datenbezug: 0: X- Werte 1: Y- Werte · v0: Anfangswert · dv: Schrittweite Beschreibung: legt die entsprechende Werte implizit fest. Die Werte ergeben sich als © XOn Siftware GmbH, 2008 145 Referenzhandbuch 2. Variante int SetNodeData(int nID,int dim,double *pV); Parameter: · nID: Datenbezug 0: X- Werte 1: Y- Werte · dim: Anzahl der Werte im Array · pV: Array von Werten mit mindestens dim Einträgen Beschreibung: legt die entsprechenden Werte explizit fest. Die Werte des Arrays werden kopiert. 3. Variante int SetNodeData(int nID,int dimX,int dimY,double *pV); Parameter: · nID: Datenbezug: 2: Z- Werte · dimX: Anzahl der Werte in X- Richtung · dimY: Anzahl der Werte in Y- Richtung · pV: Array von Werten mit mindestens dimX*dimY Einträgen Beschreibung: legt die Werte in Z- Richtung explizit fest. 4. Variante int SetNodeData(int nID,char *link); Parameter: · nID: Datenbezug 0: X- Werte 1: Y- Werte 2: Z- Werte · link: Name eines Datenpoolelementes. Für X- und Y- Werte muß dieses Element vom Typ CF8Vector sein, für Z- Werte vom Typ CF8Matrix. Beschreibung: legt die entsprechenden Werte als Datenpoolwerte fest. 5. Variante int SetNodeData(int nID,CVector *pV); Parameter: · nID: Datenbezug 0: X- Werte 1: Y- Werte · pV: Werte- Vektor Beschreibung: legt die entsprechenden Werte explizit fest. Der Inhalt des Vektors wird kopiert. 6. Variante int SetNodeData(int nID,CF8Matrix *pM); Parameter: · nID: Datenbezug: 2: Z- Werte · pM: Werte- Matrix Beschreibung: legt die Werte in Z- Richtung explizit fest. Die Werte der Matrix pM werden kopiert. © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 146 Beispiel: int method::OnRun() { double X[10],Y[10],Z[10][10]; CF8Matrix M; CF8Vector VX,VY; int i,j; //Daten Initialisieren for (i=0;i<10;i++) X[i]=Y[i]=j*0.2-1.0; for (i=0;i<10;i++) for (j=0;j<10;j++) Z[i][j]=X[i]*X[i]+Y[i]*Y[i]; M.SetData(10,10,Z); VX.SetData(10,X); VY.SetData(10,Y); //1.Variante: Implizite X- WerteArray Z CONTUR.SetNodeData(0,10,-1.0,0.2); //2.Variante: Explizite Y- WerteMatrix M CONTUR.SetNodeData(1,10,Y); //3.Variante: Explizite Z- WertePool CONTUR.SetData(2,10,10,Z); //4.Variante: Poolwerte CONTOUR(1,"YWerte"); //5.Variante: Explizite Werte aus Vector CONTOUR.SetNodeData(0,&VX); //6.Variante: Explizite Werte aus Matrix CONTOUR.SetNodeData(2,&M); return 1; } Siehe auch: Klassenhierarchie, CGraf3DNode Übersicht 1.2.3.7 CGrafNode Klicken Sie auf die Felder der Hierarchie für detaillierte Informationen zu den einzelnen Klassen: CGrafNode ist die Basisklasse aller Grafik- Interface- Klassen. Sie besitzt allgemeine Methoden wie etwa das Verstellen von Position und Größe, welche sich auf alle abgeleiteten Klassen vererben. Methoden: · AddNode · Clear · DelNode · GetDocument · GetNodeAtt · GetPos · GetSize · GetSubAxis · GetSubLeg © XOn Siftware GmbH, 2008 147 Referenzhandbuch · · · · · · · · · · · · · · · · · GetSubNode GetSubPie GetSubPlane GetSubSzene GetSubText GetSubTransform1D GetSubTransform2D OnEditBackground OnEditColor OnEditData OnEditFont OnEditName OnEditPen SetAbsPos SetNodeAtt SetPos SetSize 1.2.3.7.1 CGrafNode::AddNode Syntax: void AddNode(CGrafNode* pN); Parameter: · pN: neues Grafikobjekt Beschreibung: Fügt das Objekt pN als Unterknoten dieses Objektes in die Grafik ein. Beispiel: int method::OnRun() { //Document beschaffen CGrafDoc *pDoc=ROOT0.GetDocument(); //Alle Seiten außer der ersten löschen for (int i=pDoc->GetNrPages()-1;i>0;i--) pDoc->DelPage(i); //eine Seite anhängen pDoc->AddPage(1); //Seite zwei füllen mit etwas Text CGrafNode *pN=pDoc->GetPage(1); // Root der Seite CTextNode *pT=new CTextNode(); // neuer Textnode pT->SetPos(1000,1000); pT->SetSize(2000,1000); pT->SetText("Dies ist ein Text auf Seite 2"); // Text in Seite einfügen pN->AddNode(pT); return 1; } Siehe auch: Klassenhierarchie, CGrafNode Übersicht © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 148 1.2.3.7.2 CGrafNode::Clear Syntax: void Clear(); Beschreibung: Löscht die Daten des Elementes. Siehe auch: Klassenhierarchie, CGrafNode Übersicht 1.2.3.7.3 CGrafNode::DelNode Syntax: void DelNode(int bWithKids); Parameter: · bWithKids: Unterknoten ebenfalls löschen (1: ja, 0: nein) Beschreibung: Löscht dieses Objekt aus der Grafik. Mit dem Parameter pWithKids können Sie entscheiden, ob Sie die in dieses Objekt eingebetteten Unterobjekte ebenfalls löschen wollen. Werden die Unterobjekte nicht gelöscht (bWithKids==0), dann werden die Unterobjekte im Vorgänger eingefügt. Die Wurzel einer Seite kann nicht gelöscht werden. Siehe auch: Klassenhierarchie, CGrafNode Übersicht 1.2.3.7.4 CGrafNode::GetDocument Syntax: CGrafDoc* GetDocument(void); Beschreibung: Liefert einen Zeiger auf das Dokument, dem dieses Objekt angehört. Siehe auch: Klassenhierarchie, CGrafNode Übersicht 1.2.3.7.5 CGrafNode::GetNodeAtt Die Funktion GetNodeAtt dient zum Lesen verschiedenster Attribute. Da nicht alle Attribute eines Grafikelementes vom gleichen Typ sind, gibt es diese Funktion mit verschiedenen Parameterleisten. Im Anschluß finden Sie eine Liste aller möglichen Parameterleisten mit der Bedeutung ihrer Parameter. Für ganzzahlige Attribute (short, 2 Byte): Syntax: int GetNodeAtt(int nID,short *pVal); Beschreibung: liest ein ganzzahliges Attribut. Parameter: · nID: ID-Nummer des Attributes (siehe Tabelle) · pVal: Buffer, in den der gelesene Wert geschrieben wird Für ganzzahlige Attribute (long, 4 Byte): © XOn Siftware GmbH, 2008 149 Referenzhandbuch Syntax: int GetNodeAtt(int nID,long *pBuf); Beschreibung: liest einen ganzzahliges (langes) Attribut. Parameter: · nID: ID-Nummer des Attributes (siehe Tabelle) · pVal: Buffer, in den der gelesene Wert geschrieben wird Für Gleitkomma- Attribute (float, 4 Byte) Syntax: int GetNodeAtt(int nID,float *pBuf); Beschreibung: liest ein Gleitkommazahl-Attribut. Parameter: · nID: ID-Nummer des Attributes (siehe Tabelle) · pVal: Buffer, in den der gelesene Wert geschrieben wird Für Gleitkomma- Attribute (double, 8 Byte) Syntax: int GetNodeAtt(int nID,double *pBuf); Beschreibung: liest ein Gleitkommazahl-Attribut. Parameter: · nID: ID-Nummer des Attributes (siehe Tabelle) · pVal: Buffer, in den der gelesene Wert geschrieben wird Für Text- Attribute Syntax: int GetNodeAtt(int nID,char *pBuf,int nSize); Beschreibung: liest ein Text- Attribut. Parameter: · nID: ID-Nummer des Attributes (siehe Tabelle) · pBuf: Buffer, in den der gelesene Wert geschrieben wird · nSize: Länge des Buffers nBuf Für Schrift- Attribute Syntax: int GetNodeAtt(int nID,char* pName, int *pHeight, int *pMode, int *pAng); Beschreibung: liest ein Schriftart-Attribut. Parameter: · nID: ID-Nummer des Attributes (siehe Tabelle) · pName: Name der Schriftart · pHeight: Größe der Schriftart in Punkten · pMode: Zusätzliche Schriftattribute o Bit1: fett o Bit2: kursiv © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 150 o Bit3: unterstrichen o Bit4: durchgestrichen · pAng: Winkel der Textdarstellung in Zehntel Grad (0...3600), 0 entspricht waagerechter Darstellung. Für Linien- Attribute Syntax: int GetNodeAtt(int nID, int *pStyle, int *pWidth, int *pR, int *pG, int *pB); Beschreibung: liest ein Linienattribut. Parameter: · nID: ID-Nummer des Attributes · pStyle: Linientyp (0..5), Bedeutung siehe Bedeutung siehe Tabelle. · pWidth: Linienstärke in Hundertstel Millimetter · pR: Linienfarbe Rotanteil (0..255) · pG: Linienfarbe Grünanteil (0..255) · pB: Linienfarbe Blauanteil (0..255) Für Füllmuster- Attribute: Syntax: int GetNodeAtt(int nID,int *pStyle,int *pHatch, int *pR,int *pG,int *pB); Beschreibung: liest ein Füllmuster. Parameter: · nID: ID-Nummer des Attributes (siehe Tabelle) · pStyle: o 0: ohne Schraffur o 1: mit Schraffur o 2: transparent · pHatch: Schraffurtyp (siehe Tabelle) · pR: Schraffurfarbe Rotanteil (0..255) · pG: Schraffurfarbe Grünanteil (0..255) · pB: Schraffurfarbe Blauanteil (0..255) Für Farbattribute: Syntax: int GetNodeAtt(int nID,int *pR,int *pG,int *pB); Beschreibung: liest eine Farbe. Parameter: · nID: ID-Nummer des Attributes (siehe Tabelle) · pR: Rotanteil (0..255) · pG: Grünanteil (0..255) · pB: Blauanteil (0..255) Rückgabewert: Die Funktion liefert einen Integerwert zurück. Ist der Wert kleiner 0, ist ein Fehler aufgetreten: Wert -1 © XOn Siftware GmbH, 2008 Beschreibung allgemeiner, undefinierbarer Fehler 151 Referenzhandbuch -2 -3 -4 -5 ID-Nummer unzulässig zu lesende Daten unzulässig oder nicht definiert zu schreibender Wert außerhalb des erlaubten Bereiches unzulässiger Formatstring (bei Übergabe von Formatstrings) Parameterliste: Mögliche Attributwerte, deren Typ und Bedeutung siehe CGrafNode::SetNodeAtt. Siehe auch: Klassenhierarchie, CGrafNode Übersicht 1.2.3.7.6 CGrafNode::GetPos Syntax: void SetPos(double *px,double *py); Parameter: · px: Ergebnisbuffer für die X- Koordinate · py: Ergebnisbuffer für die Y- Koordinate Beschreibung: liefert die Position des Objektes. Siehe auch: Klassenhierarchie, CGrafNode Übersicht 1.2.3.7.7 CGrafNode::GetSize Syntax: void SetPos(double *pWidth,double *pHeight); Parameter: · pWidth: Ergebnisbuffer für die Breite des Elementes · pHeight: Ergebnisbuffer für die Höhe des Elementes Beschreibung: liefert die Größe des Objektes. Siehe auch: Klassenhierarchie, CGrafNode Übersicht 1.2.3.7.8 CGrafNode::GetSubAxis Syntax: CAxisNode* CGrafNode::GetSubAxis(char* szNode); Parameter: · szNode: Name des gesuchten Grafikobjektes Rückgabewert: Zeiger auf das gewünschte Objekt oder NULL, falls kein passendes Objekt gefunden wurde. Beschreibung: Sucht in den eingebetteten Grafikobjekten nach einem Objekt vom Typ CAxisNode mit dem Namen szName. © XOn Siftware GmbH, 2008 1.2 Programmierreferenz Beispiel: int method::OnRun() { CAxisNode *pA=ROOT0.GetSubAxis("TEXT"); if (pA) pA->SetNodeAtt(1000,1); return 1; } Siehe auch: Klassenhierarchie, CGrafNode Übersicht 1.2.3.7.9 CGrafNode::GetSubLeg Syntax: CGraf2DNode* CGrafNode::GetSubLeg(char* szNode); Parameter: · szNode: Name des gesuchten Grafikobjektes Rückgabewert: Zeiger auf das gewünschte Objekt oder NULL, falls kein passendes Objekt gefunden wurde. Beschreibung: Sucht in den eingebetteten Grafikobjekten nach einem Objekt vom Typ CGraf2DNode mit dem Namen szName. Beispiel: int method::OnRun() { CGraf2DNode *pN=ROOT0.GetSubLeg("LEG"); if (pN) pN->SetNodeAtt(1000,1); return 1; } Siehe auch: Klassenhierarchie, CGrafNode Übersicht 1.2.3.7.10 CGrafNode::GetSubNode Syntax: CGrafNode* CGrafNode::GetSubNode(char* szNode); Parameter: · szNode: Name des gesuchten Grafikobjektes Rückgabewert: Zeiger auf das gewünschte Objekt oder NULL, falls kein passendes Objekt gefunden wurde. Beschreibung: Sucht in den eingebetteten Grafikobjekten nach einem Objekt vom Typ CGrafNode mit dem Namen szName. Beispiel: int method::OnRun() { CGrafNode *pN=ROOT0.GetSubNode("NODE"); if (pN) pN->SetNodeAtt(1000,1); © XOn Siftware GmbH, 2008 152 153 Referenzhandbuch return 1; } Siehe auch: Klassenhierarchie, CGrafNode Übersicht 1.2.3.7.11 CGrafNode::GetSubPie Syntax: CPie2DNode* CGrafNode::GetSubPie(char* szNode); Parameter: · szNode: Name des gesuchten Grafikobjektes Rückgabewert: Zeiger auf das gewünschte Objekt oder NULL, falls kein passendes Objekt gefunden wurde. Beschreibung: Sucht in den eingebetteten Grafikobjekten nach einem Objekt vom Typ CPie2DNode mit dem Namen szName. Beispiel: int method::OnRun() { CPie2DNode *pN=ROOT0.GetSubLeg("PIE"); if (pN) pN->SetNodeAtt(1000,1); return 1; } Siehe auch: Klassenhierarchie, CGrafNode Übersicht 1.2.3.7.12 CGrafNode::GetSubPlane Syntax: CPlaneNode* CGrafNode::GetSubPlane(char* szNode); Parameter: szNode: Name des gesuchten Grafikobjektes Rückgabewert: Zeiger auf das gewünschte Objekt oder NULL, falls kein passendes Objekt gefunden wurde. Beschreibung: Sucht in den eingebetteten Grafikobjekten nach einem Objekt vom Typ CPlaneNode mit dem Namen szName. Beispiel: int method::OnRun() { CPlaneNode *pN=ROOT0.GetSubLeg("PLANE"); if (pN) pN->SetNodeAtt(1000,1); return 1; } Siehe auch: Klassenhierarchie, CGrafNode Übersicht © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 154 1.2.3.7.13 CGrafNode::GetSubSzene Syntax: CSzene* CGrafNode::GetSubSzene(char* szNode); Parameter: szNode: Name des gesuchten Grafikobjektes Rückgabewert: Zeiger auf das gewünschte Objekt oder NULL, falls kein passendes Objekt gefunden wurde. Beschreibung: Sucht in den eingebetteten Grafikobjekten nach einem Objekt vom Typ CSzene mit dem Namen szName. Beispiel: int method::OnRun() { CSzene *pN=ROOT0.GetSubLeg("TRANSF"); if (pN) pN->SetNodeAtt(1000,1); return 1; } Siehe auch: Klassenhierarchie, CGrafNode Übersicht 1.2.3.7.14 CGrafNode::GetSubText Syntax: CTextNode* CGrafNode::GetSubText(char* szNode); Parameter: szNode: Name des gesuchten Grafikobjektes Rückgabewert: Zeiger auf das gewünschte Objekt oder NULL, falls kein passendes Objekt gefunden wurde. Beschreibung: Sucht in den eingebetteten Grafikobjekten nach einem Objekt vom Typ CTextNode mit dem Namen szName. Beispiel: int method::OnRun() { CTextNode *pT=ROOT0.GetSubText("TEXT"); if (pT) pT->SetText("Ein neuer Text"); return 1; } Siehe auch: Klassenhierarchie, CGrafNode Übersicht 1.2.3.7.15 CGrafNode::GetSubTransform1D Syntax: CTransform1D* CGrafNode::GetSubTransform1D(char* szNode); Parameter: szNode: Name des gesuchten Grafikobjektes © XOn Siftware GmbH, 2008 155 Referenzhandbuch Rückgabewert: Zeiger auf das gewünschte Objekt oder NULL, falls kein passendes Objekt gefunden wurde. Beschreibung: Sucht in den eingebetteten Grafikobjekten nach einem Objekt vom Typ CTransform1D mit dem Namen szName. Beispiel: int method::OnRun() { CTransform1D *pN=ROOT0.GetSubLeg("TRANSF"); if (pN) pN->SetNodeAtt(1000,1); return 1; } Siehe auch: Klassenhierarchie, CGrafNode Übersicht 1.2.3.7.16 CGrafNode::GetSubTransform2D Syntax: CTransform2D* CGrafNode::GetSubTransform2D(char* szNode); Parameter: szNode: Name des gesuchten Grafikobjektes Rückgabewert: Zeiger auf das gewünschte Objekt oder NULL, falls kein passendes Objekt gefunden wurde. Beschreibung: Sucht in den eingebetteten Grafikobjekten nach einem Objekt vom Typ CTransform2D mit dem Namen szName. Beispiel: int method::OnRun() { CTransform2D *pN=ROOT0.GetSubLeg("TRANSF"); if (pN) pN->SetNodeAtt(1000,1); return 1; } Siehe auch: Klassenhierarchie, CGrafNode Übersicht 1.2.3.7.17 CGrafNode::OnEditBackground Syntax: void OnEditBackground(); Beschreibung: Führt einen Dialog aus, mit dem der Hintergrund des Elementes manipuliert werden kann. Siehe auch: Klassenhierarchie, CGrafNode Übersicht © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 1.2.3.7.18 CGrafNode::OnEditColor Syntax: void OnEditColor(); Beschreibung: Führt einen Dialog aus, mit dem die Standardfarbe des Elementes manipuliert werden kann. Siehe auch: Klassenhierarchie, CGrafNode Übersicht 1.2.3.7.19 CGrafNode::OnEditData Syntax: void OnEditData(); Beschreibung: Führt einen Dialog aus, mit dem die Daten des Elementes manipuliert werden können. Siehe auch: Klassenhierarchie, CGrafNode Übersicht 1.2.3.7.20 CGrafNode::OnEditFont Syntax: void OnEditFont(); Beschreibung: Führt einen Dialog aus, mit dem der Standardfont des Elementes manipuliert werden kann. Siehe auch: Klassenhierarchie, CGrafNode Übersicht 1.2.3.7.21 CGrafNode::OnEditName Syntax: void OnEditName(); Beschreibung: Führt einen Dialog aus, mit dem der Name des Elementes manipuliert werden kann. Siehe auch: Klassenhierarchie, CGrafNode Übersicht 1.2.3.7.22 CGrafNode::OnEditPen Syntax: void OnEditPen(); Beschreibung: Führt einen Dialog aus, mit dem der Standardstift des Elementes manipuliert werden kann. Siehe auch: Klassenhierarchie, CGrafNode Übersicht © XOn Siftware GmbH, 2008 156 157 Referenzhandbuch 1.2.3.7.23 CGrafNode::SetAbsPos Syntax: void SetAbsPos(double x,double y); Parameter: · x: X- Koordinate · y: Y- Koordinate Beschreibung: Setzt die absolute Position des grafischen Elementes im Bild. Die Position bezieht sich dabei immer auf die linke obere Ecke. Siehe auch: Klassenhierarchie, CGrafNode Übersicht 1.2.3.7.24 CGrafNode::SetNodeAtt Die Funktion SetNodeAtt dient zum Setzen verschiedenster Attribute. Da nicht alle Attribute eines Grafikelementes vom gleichen Typ sind, gibt es diese Funktion mit verschiedenen Parameterleisten. Im Anschluß finden Sie eine Liste aller möglichen Parameterleisten mit der Bedeutung ihrer Parameter. für ganzzahlige Attribute (short, 2 Byte): Syntax: int SetNodeAtt(int nID,short nVal); Beschreibung: setzt ein ganzzahliges Attribut. Parameter: · nID: ID-Nummer des Attributes (siehe Tabelle) · nVal: der zu setzende Wert Für ganzzahlige Attribute (long, 4 Byte) Syntax: int SetNodeAtt(int nID,long nVal); Beschreibung: setzt einen ganzzahliges (langes) Attribut. Parameter: · nID: ID-Nummer des Attributes (siehe Tabelle) · nVal: der zu setzende Wert für Gleitkomma- Attribute (float, 4Byte) Syntax: int SetNodeAtt(int nID,float nVal); Beschreibung: setzt eine Gleitkommazahl. Parameter: · nID: ID-Nummer des Attributes (siehe Tabelle) · nVal: der zu setzende Wert für Gleitkomma- Attribute (double, 8 Byte) © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 158 Syntax: int SetNodeAtt(int nID,double nVal); Beschreibung: setzt eine Gleitkommazahl. Parameter: · nID: ID-Nummer des Attributes (siehe Tabelle) · nVal: der zu setzende Wert Für Text- Attribute Syntax: int SetNodeAtt(int nID,char *szVal); Beschreibung: setzt ein Text-Attribut. Parameter: · nID: ID-Nummer des Attributes (siehe Tabelle) · szVal: der zu setzende Wert Für Schrift- Attribute Syntax: int SetNodeAtt(int nID, char* szName, int nHeight, int Mode, int nAng); Beschreibung: setzt ein Schriftart-Attribut. Parameter: · nID: ID-Nummer des Attributes (siehe Tabelle) · szName: Name der Schriftart (z.B. "Arial") Bitte verwenden Sie nur Truetype-Schriftarten · nHeight: Größe der Schriftart in Punkten · nMode: Zusätzliche Schriftattribute o Bit1: fett o Bit2: kursiv o Bit3: unterstrichen o Bit4: durchgestrichen · nAng: Winkel der Textdarstellung in Zehntel Grad (0...3600), 0 entspricht waagerechter Darstellung Für Linien- Attribute Syntax: int SetNodeAtt(int nID, int nStyle, int nWidth, int nR, int nG, int nB); Beschreibung: setzt eine Linienart. Parameter: · nID: ID-Nummer des Attributes (siehe Tabelle) · nStyle: Linientyp (0..5), Bedeutung siehe nachfolgende Tabelle. · nWidth: Linienstärke in Hundertstel Millimetter · nR: Linienfarbe Rotanteil (0..255) · nG: Linienfarbe Grünanteil (0..255) · nB: Linienfarbe Blauanteil (0..255) Bedeutung von Linienart-Attributen: © XOn Siftware GmbH, 2008 159 Referenzhandbuch Wert Bedeutung 0 keine Linie 1 durchgezogene Linie 2 gestrichelte Linie 3 gepunktete Linie 4 Strich- Punkt- Linie 5 Strich- Punkt- Punkt- Linie Diese Linienarten lassen sich nur für Linien der Dicke 0 einstellen, Andernfalls werden die Linien durchgezogen. Im Falle einer Liniendicke von0 wird die dünnste mögliche Linie des Ausgabemediums verwendet. Bedeutung von Markierungsart-Attributen: Wert 0 1 2 3 4 5 6 8 9 10 11 12 13 14 15 16 Bedeutung keine Quadrat Dreieck mit Spitze nach oben Kreuz Dreieck mit Spitze nach unten Raute gefülltes Quadrat gefülltes Dreieck mit Spitze nach oben gefülltes Dreieck mit Spitze nach unten gefüllte Raute Punkt Kreis gefüllter Kreis Kreuz horizontale Linie vertikale Linie Für Füllmuster- Attribute: Syntax: int SetNodeAtt(int nID, int nStyle, int nHatch, int nR, int nG, int nB); Beschreibung: setzt ein Füllmuster. Parameter: · nID: ID-Nummer des Attributes (siehe Tabelle) · nStyle: o 0: ohne Schraffur o 1: mit Schraffur o 2: transparent · nHatch: Schraffurtyp (siehe Tabelle) · nR: Schraffurfarbe Rotanteil (0..255) · nG: Schraffurfarbe Grünanteil (0..255) · nB: Schraffurfarbe Blauanteil (0..255) Bedeutung des Parameters nHatch: © XOn Siftware GmbH, 2008 1.2 Programmierreferenz nHatch 0 1 2 3 4 5 160 Schraffur diagonal -45° senkrecht gekreuzt diagonal gekreuzt diagonal 45° horizontal vertikal Für Farbattribute: Syntax: int SetNodeAtt(int nID,int nR,int nG,int nB); Beschreibung: setzt eine Farbe. Parameter: · nID: ID-Nummer des Attributes (siehe Tabelle) · nR: Rotanteil (0..255) · nG: Grünanteil (0..255) · nB: Blauanteil (0..255) Hinweis: Mit der Definition von Farbwerten über die RGB-Werte stehen die gesamten 16.7 Millionen Farben eines True-Color-Systems zur Verfügung. Da es auf Systemen mit geringerer Farbauflösung zu Problemen bei der Darstellung von Mischfarben kommen kann, ist in diesem Falle die Verwendung von Systemfarben vorzuziehen. Diese werden immer korrekt dargestellt. Einige Systemfarben aufgeschlüsselt nach ihren Rot-, Grün- und Blauanteilen: Farbe Rot Grün Blau schwarz 0 0 0 blau 0 0 128 grün 0 128 0 aquamarin 0 128 128 rot 128 0 0 lila 128 0 128 braun 128 128 0 grau 128 128 128 hellgrau 192 192 192 hellblau 0 0 255 hellgrün 0 255 0 cyan 0 255 255 hellrot 255 0 0 magenta 255 0 255 gelb 255 255 0 weiß 255 255 255 Parameterliste: Mögliche Attributwerte, deren Argumenttyp, Bedeutung, zulässige Wertebereiche bzw. Werte, sowie deren Voreinstellungen: © XOn Siftware GmbH, 2008 161 Referenzhandbuch Typ ID 1000 Integer 1001 Linie unten 1002 Linie rechts 1003 Linie oben 1004 Linie links 1005 1006 3000 3001 Float 3002 3003 String 4000 Font Linienart Füllmuster 5000 6000 7000 8000 Farbe Bedeutung Sichtbarkeit des Grafikelementes ein/ aus 8001 Diagonale unten links nach oben rechts Diagonale oben links nach unten rechts Breite des Objektes Höhe des Objektes Horizontale Position des Objektes Vertikale Position des Objektes Name des Grafikelementes Standardschriftart Standard-Linienart Standard-Füllmuster Hintergrundfarbe Farbe der Standardschriftart Wertebereich 0=unsichtbar, 1=sichtbar 0=unsichtbar, 1=sichtbar 0=unsichtbar, 1=sichtbar 0=unsichtbar, 1=sichtbar 0=unsichtbar, 1=sichtbar 0=unsichtbar, 1=sichtbar 0=unsichtbar, 1=sichtbar Angabe in 1/1000 Inch Angabe in 1/1000 Inch Angabe in 1/1000 Inch Angabe in 1/1000 Inch Bezeichner Rückgabewert: Die Funktion liefert einen Integerwert zurück. Ist der Wert kleiner 0, ist ein Fehler aufgetreten: Wert -1 -2 -3 -4 -5 Beschreibung allgemeiner, undefinierbarer Fehler ID-Nummer unzulässig zu lesende Daten unzulässig oder nicht definiert zu schreibender Wert außerhalb des erlaubten Bereiches unzulässiger Formatstring (bei Übergabe von Formatstrings) Siehe auch: Klassenhierarchie, CGrafNode Übersicht © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 162 1.2.3.7.25 CGrafNode::SetPos Syntax: void SetPos(double x,double y); Beschreibung: Setzt die Position des grafischen Elementes relativ zur Position des Vaterelementes. Die Position bezieht sich dabei immer auf die linke obere Ecke. Parameter: · x: X- Koordinate · y: Y- Koordinate Siehe auch: Klassenhierarchie, CGrafNode Übersicht 1.2.3.7.26 CGrafNode::SetSize Syntax: void SetSize(double width,double height); Beschreibung: Setzt die Größe des grafischen Elementes im Bild. Parameter: · width: Breite des Elementes · height: Höhe des Elementes Siehe auch: Klassenhierarchie, CGrafNode Übersicht 1.2.3.8 CPie2DNode Klicken Sie auf die Felder der Hierarchie für detaillierte Informationen zu den einzelnen Klassen: Diese Klasse stellt die Funktionen zum Darstellen von Tortendiagrammen zur Verfügung. Die Daten der Torte werden in einer vektorähnlichen Struktur verwaltet. Die maximale Anzahl von Tortenstücken beträgt 1999. Methoden: · CPie2DNode::AddPie · CPie2DNode::DelPie · CPie2DNode::SetData · CPie2DNode::SetNodeAtt · CPie2DNode::GetNodeAtt © XOn Siftware GmbH, 2008 163 Referenzhandbuch 1.2.3.8.1 CPie2DNode::AddPie Syntax: int AddPie(double fSize,int nInd = -1); int AddPie(CVector * pVector,int nInd = -1); Beschreibung: Diese Funktion erweitert ein Tortendiagramm um ein oder mehrere Tortenstücke. Die Einfügeposition wird im Parameter nInd spezifiziert. Den neuen Tortenstücken werden voreingestellte Attributwerte für Farbe, Formatstring ihrer Beschriftungen und Exposition zugewiesen. Die aktualle Größe der Torte ist gegebenenfalls mit "GetPie2DNode::GetPieNodeAtt" zu ermitteln. Parameter: · fSize: Größe des einzufügenden Tortenstücks · nInd: Einfügeindex des Tortenstücks. Der Index ist nullbasiert und es wird vor der angegebenen Indexposition eingefügt. Ein Wert von -1 an dieser Stelle bedeutet daß das neue Tortenstück, bzw die neuen Tortenstücke im Falle eines einzufügenden Vektors, an die bisher bestehenden angehängt wird. · pVector: Pointer auf einen Vektor, der die Daten enthält Rückgabewert: 0 wenn erfolgreich, sonst ein Fehlercode < 0. Siehe auch: Klassenhierarchie , CPie2DNode Übersicht 1.2.3.8.2 CPie2DNode::DelPie Syntax: int DelPie(int nInd = -1); Beschreibung: Diese Funktion löscht ein Tortenstück aus einem Tortendiagramm. Parameter: · nInd: Index des zu entfernenden Tortenstücks. Der Index ist nullbasiert und es wird an der angegebenen Indexposition gelöscht. Ein Wert von -1 an dieser Stelle bedeutet daß das jeweils letzte Tortenstück gelöscht wird. Rückgabewert: 0 wenn erfolgreich, sonst ein Fehlercode < 0. Siehe auch: Klassenhierarchie , CPie2DNode Übersicht © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 164 1.2.3.8.3 CPie2DNode::GetNodeAtt Syntax: int GetNodeAtt(int int GetNodeAtt(int int GetNodeAtt(int int GetNodeAtt(int int GetNodeAtt(int int GetNodeAtt(int int GetNodeAtt(int int GetNodeAtt(int int GetNodeAtt(int nID,int *pVal); nID,long *pVal); nID,float *pVal); nID,double *pVal); nID,char *pVal,int nSize); nID,char *nName,int *pHeight,int *pMode,int *pAng); nID,int *pStyle,int *pWidth,int *pR,int *pG,int *pB); nID,int *pStyle,int *pHatch,int *pR,int *pG,int *pB); nID,int *pR,int *pG,int *pB); Beschreibung: Die Funktion GetNodeAtt dient zum Lesen verschiedenster Attribute. Da nicht alle Attribute eines Grafikelementes vom gleichen Typ sind, gibt es diese Funktion mit verschiedenen Parameterleisten. Detaillierte Liste der Parameterleisten siehe CGrafNode::GetNodeAtt. Mögliche Attributwerte, deren Typ und Bedeutung siehe CPie2DNode::SetNodeAtt. Rückgabewert: Die Funktion liefert einen Integerwert zurück. Ist der Wert kleiner 0, ist ein Fehler aufgetreten: Wert -1 -2 -3 -4 -5 Beschreibung allgemeiner, undefinierbarer Fehler ID-Nummer unzulässig zu lesende Daten unzulässig oder nicht definiert zu schreibender Wert außerhalb des erlaubten Bereiches unzulässiger Formatstring (bei Übergabe von Formatstrings) Siehe auch: Klassenhierarchie , CPie2DNode Übersicht 1.2.3.8.4 CPie2DNode::SetData Syntax: int SetData(double * lpf,int nSize); int SetData(CF8Vector * pVector); int SetData(const char *lpszPoolname); Beschreibung: Diese Funktion setzt den Datenvektor eines Tortendiagramms. Sollte bereits ein Datenvektor für dieses Tortendiagramm existieren, so wird dieser überschrieben. Entsprechende Attributwerte für Tortenstücke bleiben soweit es möglich ist erhalten. Sollte sich die Torte durch einen "SetData" - Aufruf vergrößern erhalten die neu hinzugekommenen Stücke, abgesehen von ihrer Größe, voreingestellte Werte zugewiesen. Bei einer Verkleinerung gehen nicht mehr benötigte Tortenstückattribute verloren. Parameter: · lpf: Pointer auf einen doublearray · nSize: Anzahl der Einträge des doublearrays · Vektor: Pointer auf ein Objekt der Klasse CVector © XOn Siftware GmbH, 2008 165 Referenzhandbuch · lpszPoolname: Name eines Datenpoolelements des Typs Vektorx Rückgabewert: 0 wenn erfolgreich, sonst ein Fehlercode < 0. Siehe auch: Klassenhierarchie , CPie2DNode Übersicht 1.2.3.8.5 CPie2DNode::SetNodeAtt Syntax: int SetNodeAtt(int int SetNodeAtt(int int SetNodeAtt(int int SetNodeAtt(int int SetNodeAtt(int int SetNodeAtt(int int SetNodeAtt(int int SetNodeAtt(int int SetNodeAtt(int nID,int nVal); nID,long nVal); nID,float nVal); nID,double nVal); nID,char *nVal); nID,char *nName,int nHeight,int Mode,int nAng); nID,int nStyle,int nWidth,int nR,int nG,int nB); nID,int nStyle,int nHatch,int nR,int nG,int nB); nID,int nR,int nG,int nB); Beschreibung: Die Funktion SetNodeAtt dient zum Setzen verschiedenster Attribute. Da nicht alle Attribute eines Grafikelementes vom gleichen Typ sind, gibt es diese Funktion mit verschiedenen Parameterleisten. Eine detaillierte Liste der Parameterleisten finden sie unter CGrafNode::SetNodeAtt. Mögliche Attributwerte, deren Argumenttyp, Bedeutung, zulässige Wertebereiche bzw. Werte, sowie deren Voreinstellungen: Typ ID 1000 1100 1101 Integer 1102 1103 1104 1105 3100 Float 3150 3151 Bedeutung Wertebereich Sichtbarkeit des 0=unsichtbar, Grafikelementes ein/ 1=sichtbar aus Winkel der Perspektive in Zehntel Grad Startwinkel des ersten Stückes 0=absolut, Interpretationsmodus 1=prozentual 0=transparent, Texthintergrundmodus 1=opaque Anzahl der Tortenstücke (nur lesen!) aktuelles Tortenstück Verhältnis der Tortenhöhe zur größer/gleich 0 Tortenbreite Größe des aktuellen Tortenstücks (siehe ID 1105) Exposition des aktuellen Tortenstücks (siehe ID 1105) © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 4000 String 4150 4151 Font 5000 Linienart 6000 7000 Füllmuster 7150 8000 8001 Farbe 8150 166 Name des Bezeichner Grafikelementes Name des aktuellen Tortenstücks (siehe ID 1105) Formatstring des aktuellen Tortenstücks (siehe ID 1105) Standardschriftart für eine Liste der Standard-Linienart Linienarten siehe GrafNode:SetNodeAtt Standard-Füllmuster Füllmuster des aktuellen Tortenstücks (siehe ID 1105) Hintergrundfarbe Farbe der Standardschriftart Hintergrundfarbe des aktuellen Tortenstücks (siehe ID 1105) Für weitere Attribute siehe CGrafNode::SetNodeAtt. Rückgabewert: Die Funktion liefert einen Integerwert zurück. Ist der Wert kleiner 0, ist ein Fehler aufgetreten: Wert Beschreibung -1 allgemeiner, undefinierbarer Fehler -2 ID-Nummer unzulässig -3 zu lesende Daten unzulässig oder nicht definiert zu schreibender Wert außerhalb des erlaubten -4 Bereiches unzulässiger Formatstring (bei Übergabe von -5 Formatstrings) Siehe auch: Klassenhierarchie , CPie2DNode Übersicht 1.2.3.9 CPlaneNode Klicken Sie auf die Felder der Hierarchie für detaillierte Informationen zu den einzelnen Klassen: © XOn Siftware GmbH, 2008 167 Referenzhandbuch Eine Plane ist eine zweidimensionale Transformation, wie man sie für krummlinige Koordinatensysteme benötigt. Methoden: · CPlaneNode::SetNodeAtt · CPlaneNode::GetNodeAtt 1.2.3.9.1 CPlaneNode::GetNodeAtt Syntax: int GetNodeAtt(int int GetNodeAtt(int int GetNodeAtt(int int GetNodeAtt(int int GetNodeAtt(int int GetNodeAtt(int int GetNodeAtt(int int GetNodeAtt(int int GetNodeAtt(int nID,int *pVal); nID,long *pVal); nID,float *pVal); nID,double *pVal); nID,char *pVal,int nSize); nID,char *nName,int *pHeight,int *pMode,int *pAng); nID,int *pStyle,int *pWidth,int *pR,int *pG,int *pB); nID,int *pStyle,int *pHatch,int *pR,int *pG,int *pB); nID,int *pR,int *pG,int *pB); Beschreibung: Die Funktion GetNodeAtt dient zum Lesen verschiedenster Attribute. Da nicht alle Attribute eines Grafikelementes vom gleichen Typ sind, gibt es diese Funktion mit verschiedenen Parameterleisten. Detaillierte Liste der Parameterleisten siehe CGrafNode::GetNodeAtt. Mögliche Attributwerte, deren Typ und Bedeutung siehe CPlaneNode::SetNodeAtt. Rückgabewert: Die Funktion liefert einen Integerwert zurück. Ist der Wert kleiner 0, ist ein Fehler aufgetreten: Wert -1 -2 -3 -4 -5 Beschreibung allgemeiner, undefinierbarer Fehler ID-Nummer unzulässig zu lesende Daten unzulässig oder nicht definiert zu schreibender Wert außerhalb des erlaubten Bereiches unzulässiger Formatstring (bei Übergabe von Formatstrings) Siehe auch: Klassenhierarchie , CPlaneNode Übersicht © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 168 1.2.3.9.2 CPlaneNode::SetNodeAtt Syntax: int SetNodeAtt(int int SetNodeAtt(int int SetNodeAtt(int int SetNodeAtt(int int SetNodeAtt(int int SetNodeAtt(int int SetNodeAtt(int int SetNodeAtt(int int SetNodeAtt(int int SetNodeAtt(int nID,short nVal); nID,long nVal); nID,float nVal); nID,double nVal); nID,char *nVal); nID,double nVal); nID,char *nName,int nHeight,int Mode,int nAng); nID,int nStyle,int nWidth,int nR,int nG,int nB); nID,int nStyle,int nHatch,int nR,int nG,int nB); nID,int nR,int nG,int nB); Beschreibung: Die Funktion SetNodeAtt dient zum Setzen verschiedenster Attribute. Da nicht alle Attribute eines Grafikelementes vom gleichen Typ sind, gibt es diese Funktion mit verschiedenen Parameterleisten. Eine detaillierte Liste der Parameterleisten finden sie unter CGrafNode::SetNodeAtt. Mögliche Attributwerte, deren Argumenttyp, Bedeutung, zulässige Wertebereiche bzw. Werte, sowie deren Voreinstellungen : Typ ID 1000 1100 Abbildungsfunktion 1200 Position der X-Achse 1201 Position der Y-Achse Integer 1202 1203 1204 1205 1206 1207 1208 1209 3100 Float 3101 © XOn Siftware GmbH, 2008 Bedeutung Sichtbarkeit des Grafikelementes ein/ aus Wertebereich 0=unsichtbar, 1=sichtbar 0=linear/linear, 1=linear/Bogenmaß, 2=linear/Gradmaß, 3=Weibul, 4=polar/ Bogenmaß, 5=polar/ Gradmaß 0=oben, 1=mittig, 2=unten 0=links, 1=mittig, 2=rechts Position der Pfeilspitze 0=rechts, 1=links an der X-Achse Position der Pfeilspitze 0=oben, 1=unten an der Y-Achse 0=kein Gitter, 1=grobes Gitter der X-Achse Gitter, 2=feines Gitter 0=kein Gitter, 1=grobes Gitter der Y-Achse Gitter, 2=feines Gitter Anzahl der X-Ticks größer/gleich 0 Anzahl der Y-Ticks größer/gleich 0 Anzahl der X-Subticks größer/gleich 0 Anzahl der Y-Subticks größer/gleich 0 X0, Anfangswert der XAchse DX, Breite der X-Achse (Endwert=X0+DX) 169 Referenzhandbuch 3102 3103 4000 4200 4201 String 4202 4203 Font 5000 Linienart 6000 Füllmuster 7000 8000 Farbe 8001 Y0, Anfangswert der YAchse DY, Breite der Y-Achse (Endwert=Y0+DY) Name des Bezeichner Grafikelementes Name der X-Achse Name der Y-Achse Formatstring für die Beschriftung der XAchse Formatstring für die Beschriftung der XAchse Standardschriftart für eine Liste der Standard-Linienart Linienarten siehe GrafNode:SetNodeAtt Standard-Füllmuster Hintergrundfarbe Farbe der Standardschriftart Für weitere Attribute siehe CGrafNode::SetNodeAtt , CTransform2D::SetNodeAtt . Rückgabewert: Die Funktion liefert einen Integerwert zurück. Ist der Wert kleiner 0, ist ein Fehler aufgetreten: Wert -1 -2 -3 -4 -5 Beschreibung allgemeiner, undefinierbarer Fehler ID-Nummer unzulässig zu lesende Daten unzulässig oder nicht definiert zu schreibender Wert außerhalb des erlaubten Bereiches unzulässiger Formatstring (bei Übergabe von Formatstrings) Siehe auch: Klassenhierarchie , CPlaneNode Übersicht 1.2.3.10 CRectNode Klicken Sie auf die Felder der Hierarchie für detaillierte Informationen zu den einzelnen Klassen: © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 170 1.2.3.10.1 CRectNode::GetNodeAtt Syntax: int GetNodeAtt(int int GetNodeAtt(int int GetNodeAtt(int int GetNodeAtt(int int GetNodeAtt(int int GetNodeAtt(int int GetNodeAtt(int int GetNodeAtt(int int GetNodeAtt(int nID,int *pVal); nID,long *pVal); nID,float *pVal); nID,double *pVal); nID,char *pVal,int nSize); nID,char *nName,int *pHeight,int *pMode,int *pAng); nID,int *pStyle,int *pWidth,int *pR,int *pG,int *pB); nID,int *pStyle,int *pHatch,int *pR,int *pG,int *pB); nID,int *pR,int *pG,int *pB); Beschreibung: Die Funktion GetNodeAtt dient zum Lesen verschiedenster Attribute. Da nicht alle Attribute eines Grafikelementes vom gleichen Typ sind, gibt es diese Funktion mit verschiedenen Parameterleisten. Detaillierte Liste der Parameterleisten siehe: CGrafNode::SetNodeAtt Mögliche Attributwerte, deren Typ und Bedeutung siehe: CRectNode::SetNodeAtt Rückgabewert: Die Funktion liefert einen Integerwert zurück. Ist der Wert kleiner 0, ist ein Fehler aufgetreten: Wert -1 -2 -3 Beschreibung allgemeiner, undefinierbarer Fehler ID-Nummer unzulässig zu lesende Daten unzulässig oder nicht definiert zu schreibender Wert außerhalb des erlaubten Bereiches unzulässiger Formatstring (bei Übergabe von Formatstrings) -4 -5 1.2.3.10.2 CRectNode::SetNodeAtt Syntax: int SetNodeAtt(int int SetNodeAtt(int int SetNodeAtt(int int SetNodeAtt(int int SetNodeAtt(int int SetNodeAtt(int int SetNodeAtt(int int SetNodeAtt(int int SetNodeAtt(int int SetNodeAtt(int nID,short nVal); nID,long nVal); nID,float nVal); nID,double nVal); nID,char *nVal); nID,double nVal); nID,char *nName,int nHeight,int Mode,int nAng); nID,int nStyle,int nWidth,int nR,int nG,int nB); nID,int nStyle,int nHatch,int nR,int nG,int nB); nID,int nR,int nG,int nB); Beschreibung: Die Funktion SetNodeAtt dient zum Setzen verschiedenster Attribute. Da nicht alle Attribute eines Grafikelementes vom gleichen Typ sind, gibt es diese Funktion mit verschiedenen Parameterleisten. Liste der Parameterleisten siehe: CGrafNode::SetNodeAtt © XOn Siftware GmbH, 2008 171 Referenzhandbuch Mögliche Attributwerte, deren Argumenttyp, Bedeutung, zulässige Wertebereiche bzw. Werte, sowie deren Voreinstellungen : Typ ID 1000 1100 Abbildungsfunktion 1200 Position der X-Achse 1201 Position der Y-Achse Integer 1202 1203 1204 1205 1206 1207 1208 1209 3100 3101 Float 3102 3103 4000 4200 4201 String Bedeutung Sichtbarkeit des Grafikelementes ein/ aus 4202 4203 Font 5000 Linienart 6000 Füllmuster 7000 Wertebereich 0=unsichtbar, 1=sichtbar 0=linear/linear, 1=linear/Bogenmaß, 2=linear/Gradmaß, 3=Weibul, 4=polar/ Bogenmaß, 5=polar/ Gradmaß 0=oben, 1=mittig, 2=unten 0=links, 1=mittig, 2=rechts Position der Pfeilspitze 0=rechts, 1=links an der X-Achse Position der Pfeilspitze 0=oben, 1=unten an der Y-Achse 0=kein Gitter, 1=grobes Gitter der X-Achse Gitter, 2=feines Gitter 0=kein Gitter, 1=grobes Gitter der Y-Achse Gitter, 2=feines Gitter Anzahl der X-Ticks größer/gleich 0 Anzahl der Y-Ticks größer/gleich 0 Anzahl der X-Subticks größer/gleich 0 Anzahl der Y-Subticks größer/gleich 0 X0, Anfangswert der XAchse DX, Breite der X-Achse (Endwert=X0+DX) Y0, Anfangswert der YAchse DY, Breite der Y-Achse (Endwert=Y0+DY) Name des Bezeichner Grafikelementes Name der X-Achse Name der Y-Achse Formatstring für die Beschriftung der XAchse Formatstring für die Beschriftung der XAchse Standardschriftart für eine Liste der Standard-Linienart Linienarten siehe GrafNode:SetNodeAtt Standard-Füllmuster © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 8000 Farbe 8001 172 Hintergrundfarbe Farbe der Standardschriftart Für weitere Attribute siehe CGrafNode::SetNodeAtt . Rückgabewert: Die Funktion liefert einen Integerwert zurück. Ist der Wert kleiner 0, ist ein Fehler aufgetreten: Wert Beschreibung -1 allgemeiner, undefinierbarer Fehler -2 ID-Nummer unzulässig -3 zu lesende Daten unzulässig oder nicht definiert zu schreibender Wert außerhalb des erlaubten -4 Bereiches unzulässiger Formatstring (bei Übergabe von -5 Formatstrings) 1.2.3.11 CSzene Klicken Sie auf die Felder der Hierarchie für detaillierte Informationen zu den einzelnen Klassen: Diese Basisklasse stellt ein dreidimensionales Koordinatensystem und Methoden zu dessen Konfiguration zur Verfügung, Alle dreidimensionalen Grafikelemente (z.B. der 3D-Graf) basieren auf dieser Klasse. Methoden: · CSzene::SetNodeAtt · CSzene::GetNodeAtt 1.2.3.11.1 CSzene::GetNodeAtt Syntax: int GetNodeAtt(int int GetNodeAtt(int int GetNodeAtt(int int GetNodeAtt(int int GetNodeAtt(int int GetNodeAtt(int int GetNodeAtt(int int GetNodeAtt(int int GetNodeAtt(int nID,int *pVal); nID,long *pVal); nID,float *pVal); nID,double *pVal); nID,char *pVal,int nSize); nID,char *nName,int *pHeight,int *pMode,int *pAng); nID,int *pStyle,int *pWidth,int *pR,int *pG,int *pB); nID,int *pStyle,int *pHatch,int *pR,int *pG,int *pB); nID,int *pR,int *pG,int *pB); Beschreibung: Die Funktion GetNodeAtt dient zum Lesen verschiedenster Attribute. Da nicht alle Attribute eines Grafikelementes vom gleichen Typ sind, gibt es diese Funktion mit verschiedenen Parameterleisten. © XOn Siftware GmbH, 2008 173 Referenzhandbuch Detaillierte Liste der Parameterleisten siehe CGrafNode::GetNodeAtt. Mögliche Attributwerte, deren Typ und Bedeutung siehe CSzene::SetNodeAtt. Rückgabewert: Die Funktion liefert einen Integerwert zurück. Ist der Wert kleiner 0, ist ein Fehler aufgetreten: Wert -1 -2 -3 Beschreibung allgemeiner, undefinierbarer Fehler ID-Nummer unzulässig zu lesende Daten unzulässig oder nicht definiert zu schreibender Wert außerhalb des erlaubten Bereiches unzulässiger Formatstring (bei Übergabe von Formatstrings) -4 -5 Siehe auch: Klassenhierarchie , CSzene Übersicht 1.2.3.11.2 CSzene::SetNodeAtt Syntax: int SetNodeAtt(int int SetNodeAtt(int int SetNodeAtt(int int SetNodeAtt(int int SetNodeAtt(int int SetNodeAtt(int int SetNodeAtt(int int SetNodeAtt(int int SetNodeAtt(int nID,int nVal); nID,long nVal); nID,float nVal); nID,double nVal); nID,char *nVal); nID,char *nName,int nHeight,int Mode,int nAng); nID,int nStyle,int nWidth,int nR,int nG,int nB); nID,int nStyle,int nHatch,int nR,int nG,int nB); nID,int nR,int nG,int nB); Beschreibung: Die Funktion SetNodeAtt dient zum Setzen verschiedenster Attribute. Da nicht alle Attribute eines Grafikelementes vom gleichen Typ sind, gibt es diese Funktion mit verschiedenen Parameterleisten. Eine detaillierte Liste der Parameterleisten finden sie unter CGrafNode::SetNodeAtt. Mögliche Attributwerte, deren Argumenttyp, Bedeutung, zulässige Wertebereiche bzw. Werte, sowie deren Voreinstellungen: Typ ID 1000 1100 Integer 1101 1102 Bedeutung Sichtbarkeit des Grafikelementes ein/ aus Fest vorgegebene Beschriftungen ( FixTicks) an der XAchse verwenden Fest vorgegebene Beschriftungen ( FixTicks) an der YAchse verwenden Fest vorgegebene Beschriftungen ( FixTicks) an der Z- Wertebereich 0=unsichtbar, 1=sichtbar 1=ja, 0=nein 1=ja, 0=nein 1=ja, 0=nein © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 Float 3100 3101 3102 3103 3104 3105 3106 3107 3108 3109 4000 4100 String 4101 4102 © XOn Siftware GmbH, 2008 Achse verwenden X-Achse automatisch 1=ja, 0=nein skalieren Y-Achse automatisch 1=ja, 0=nein skalieren Z-Achse automatisch 1=ja, 0=nein skalieren Gitter parallet zur X0=keines, 1=grob, Achse 2=fein Gitter parallet zur Y0=keines, 1=grob, Achse 2=fein Gitter parallet zur Z0=keines, 1=grob, Achse 2=fein Clipping durch obere 1=ja, 0=nein und untere XY-Ebene Clipping durch linke 1=ja, 0=nein und rechte ZX-Ebene Clipping durch linke 1=ja, 0=nein und rechte YZ-Ebene Gehäuse um Szene 1=ja, 0=nein zeichnen XY- Begrenzungsebene 1=ja, 0=nein der Szene zeichnen YZ- Begrenzungsebene 1=ja, 0=nein der Szene zeichnen ZX- Begrenzungsebene 1=ja, 0=nein der Szene zeichnen Anfangswert X-Achse Endwert X-Achse Anfangswert Y-Achse Endwert Y-Achse Anfangswert Z-Achse Endwert Z-Achse Perspektive 0=keine, 20=stark Blickwinkel der X0..2PI Achse in Radiant Blickwinkel der Y0..2PI Achse in Radiant Blickwinkel der Z0..2PI Achse in Radiant Name des Bezeichner Grafikelementes Formatstring für Beschriftung der XAchse Formatstring für Beschriftung der YAchse Formatstring für Beschriftung der Z- 174 175 Referenzhandbuch Font 4103 4104 4105 5000 Achse Titel der X-Achse Titel der Y-Achse Titel der Z-Achse Standardschriftart Linienart 6000 Standard-Linienart Muster 7000 8000 für eine Liste der Linienarten siehe GrafNode:SetNodeAtt Standard-Füllmuster Hintergrundfarbe Farbe Farbe der 8001 Standardschriftart Für weitere Attribute siehe CGrafNode::SetNodeAtt Rückgabewert: Die Funktion liefert einen Integerwert zurück. Ist der Wert kleiner 0, ist ein Fehler aufgetreten: Wert -1 -2 -3 -4 -5 Beschreibung allgemeiner, undefinierbarer Fehler ID-Nummer unzulässig zu lesende Daten unzulässig oder nicht definiert zu schreibender Wert außerhalb des erlaubten Bereiches unzulässiger Formatstring (bei Übergabe von Formatstrings) Siehe auch: Klassenhierarchie , CSzene Übersicht 1.2.3.12 CTabNode Klicken Sie auf die Felder der Hierarchie für detaillierte Informationen zu den einzelnen Klassen: Diese Klasse stellt die Funktionen zum Darstellen von Tabellen zur Verfügung. Die Daten der Tabelle werden in einer matrixähnlichen Struktur verwaltet. Diese Matrix kann maximal 16250 Einträge aufweisen. Die jeweiligen Maximas für Reihen sind 1998 und für Spalten 199. Die Breite der zugrundeliegenden CGrafNode bleibt immer erhalten, während die Höhe auf den tatsächlichen Inhalt angepasst wird. Die Breite der Spalten ist durch die Methode CTabNode:: SetNodeAtt pro Spalte manipulierbar. In den einzelnen Zellen der Tabelle wird ein Zeilenumbruch an Wortgrenzen durchgeführt, jedoch kein Trennalgorithmus innerhalb von Worten. Es stehen 3 Schriftarten für Tabellenüberschrift, normalen Tabellentext sowie hervorgehobenen Tabellentext zur Verfügung. Diese sind alle mit der Standardschriftart vorbesetzt. Methoden: · CTabNode::SetData © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 176 · CTabNode::GetData · CTabNode::SetNodeAtt · CTabNode::GetNodeAtt 1.2.3.12.1 CTabNode::GetData Syntax: int GetData(int nRow,int nCol,char * lpszDataVal,int nSize); Beschreibung: Liefert den Stringwert einer existierende Zelle der Tabelle. Parameter: · nRow: Nullbasierter Index der zu setzenden Reihe · nCol: Nullbasierter Index der zu setzenden Spalte · lpszDataVal: Pointer auf char für Rüchgabe eines · Tabellenzelleneintrags · nSize: Größe des Buffers des Rückgabestrings Rückgabewert: 0 wenn erfolgreich, sonst ein Fehlercode < 0. Siehe auch: Klassenhierarchie , CTabNode Übersicht 1.2.3.12.2 CTabNode::GetNodeAtt Syntax: int GetNodeAtt(int int GetNodeAtt(int int GetNodeAtt(int int GetNodeAtt(int int GetNodeAtt(int int GetNodeAtt(int int GetNodeAtt(int int GetNodeAtt(int int GetNodeAtt(int nID,int *pVal); nID,long *pVal); nID,float *pVal); nID,double *pVal); nID,char *pVal,int nSize); nID,char *nName,int *pHeight,int *pMode,int *pAng); nID,int *pStyle,int *pWidth,int *pR,int *pG,int *pB); nID,int *pStyle,int *pHatch,int *pR,int *pG,int *pB); nID,int *pR,int *pG,int *pB); Beschreibung: Die Funktion GetNodeAtt dient zum Lesen verschiedenster Attribute. Da nicht alle Attribute eines Grafikelementes vom gleichen Typ sind, gibt es diese Funktion mit verschiedenen Parameterleisten. Detaillierte Liste der Parameterleisten siehe CGrafNode::GetNodeAtt. Mögliche Attributwerte, deren Typ und Bedeutung siehe CTabNode::SetNodeAtt. Rückgabewert: Die Funktion liefert einen Integerwert zurück. Ist der Wert kleiner 0, ist ein Fehler aufgetreten: Wert -1 -2 -3 -4 -5 © XOn Siftware GmbH, 2008 Beschreibung allgemeiner, undefinierbarer Fehler ID-Nummer unzulässig zu lesende Daten unzulässig oder nicht definiert zu schreibender Wert außerhalb des erlaubten Bereiches unzulässiger Formatstring (bei Übergabe von 177 Referenzhandbuch Formatstrings) Siehe auch: Klassenhierarchie , CTabNode Übersicht 1.2.3.12.3 CTabNode::SetData Syntax: int SetData(int nRow,int nCol,char * lpszDataVal); Beschreibung: Setzt einen Stringwert in eine existierende Zelle der Tabelle. Parameter: nRow: Nullbasierter Index der zu setzenden Reihe nCol: Nullbasierter Index der zu setzenden Spalte lpszDataVal: Pointer auf char, weist auf String für Tabellenzelle Rückgabewert: 0 wenn erfolgreich, sonst ein Fehlercode < 0. Siehe auch: Klassenhierarchie , CTabNode Übersicht 1.2.3.12.4 CTabNode::SetNodeAtt Syntax: int SetNodeAtt(int int SetNodeAtt(int int SetNodeAtt(int int SetNodeAtt(int int SetNodeAtt(int int SetNodeAtt(int int SetNodeAtt(int int SetNodeAtt(int int SetNodeAtt(int nID,int nVal); nID,long nVal); nID,float nVal); nID,double nVal); nID,char *nVal); nID,char *nName,int nHeight,int Mode,int nAng); nID,int nStyle,int nWidth,int nR,int nG,int nB); nID,int nStyle,int nHatch,int nR,int nG,int nB); nID,int nR,int nG,int nB); Beschreibung: Die Funktion SetNodeAtt dient zum Setzen verschiedenster Attribute. Da nicht alle Attribute eines Grafikelementes vom gleichen Typ sind, gibt es diese Funktion mit verschiedenen Parameterleisten. Eine detaillierte Liste der Parameterleisten finden sie unter CGrafNode::SetNodeAtt. Mögliche Attributwerte, deren Argumenttyp, Bedeutung, zulässige Wertebereiche bzw. Werte, sowie deren Voreinstellungen : Typ ID 1000 1100 Integer 1101 1102 Bedeutung Sichtbarkeit des Grafikelementes ein/ aus Anzahl der Zeilen in der Tabelle Anzahl der Spalten in der Tabelle aktive Zeile Wertebereich 0=unsichtbar, 1=sichtbar größer 0 größer 0 Mit den Attributen 1102 und 1103 wird die aktive Zelle © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 1103 1104 1105 1106 Float 3160 4000 String 4100 Font 5100 Linienart 6100 © XOn Siftware GmbH, 2008 178 festgelegt. Ist das Attribut 1103 auf 0 gesetzt, so wird der Basisstiel einer ganze Zeile selektiert. Sind die Attribute 1102 und 1103 auf 0 gesetzt, so wird der Basisstiel der ganzen Tabelle selektiert. Attribute wie Rahmen, Farben, Fonts e.t.c. werden in die hier selektierte Zelle oder Basisstiel geschrieben. Ist für eine Zelle kein Stiel festgelegt, so wird der zugehörige Basisstiel verwendet, falls vorhanden. siehe Beschreibung von ID aktuelle Spalte 1102 1. alle Kanten 2. linke Kante 3. rechte Kante 4. obere Kante aktive Zellenkante 5. untere Kante Linienattribute (ID 6100) beziehen sich auf die hier festgelegte Kante einer Zelle. 0=aus, 1=ein Der Inhalt dieser Zelle kann bei Bedarf in Nachbarzellen Fließende Zelle (float) fließen, falls diese leer sind und das flood- Atrribut (ID 1106) gesetzt haben 0=aus, 1=ein Diese Zelle kann bei Bedarf von Nachbarzellen Fließende Zelle (flood) überschrieben werden falls diese float- Attribut (ID 1105) gesetzt haben relative Spaltenbreite größer 0 der aktuellen Spalte Name des Bezeichner Grafikelementes Legt den Text einer Zelle fest. Die Zelle wird mit Attribut 1102/1103 ausgewählt. Legt die Schriftart einer Zelle fest. Die Zelle wird mit Schriftart Attribut 1102/1103 ausgewählt. Kante-Linienart Legt die Linienart fest, mit der eine Zellenkante gezeichnet wird. Legen sie 179 Referenzhandbuch Füllmuster 7100 Zellen- Füllmuster 8100 Hintergrundfarbe 8101 Textfarbe Farbe vorher mit dem Attribut 1104 fest, welche Zellenkante sie beschreiben wollen und mit den Attributen 1102 und 1103, auf welche Zelle sie sich beziehen. Legt das Füllmuster fest, mit dem eine Zelle ausgemalt wird. Die Zelle wird mit Attribut 1102/1103 ausgewählt Legt die Hintergrundfarbe einer Zelle fest. Die Zelle wird mit Attribut 1102/1103 ausgewählt Legt die Textfarbe einer Zelle fest. Die Zelle wird mit Attribut 1102/1103 ausgewählt. Für weitere Attribute siehe CGrafNode::SetNodeAtt . Rückgabewert: Die Funktion liefert einen Integerwert zurück. Ist der Wert kleiner als 0, ist ein Fehler aufgetreten. Liste der Rückgabewerte. Beispiel: int method::OnRun() { int i,j; Tab.Clear(); Tab.SetNodeAtt(1100,11); Tab.SetNodeAtt(1101,2); //Font und Schriftfarbe in der ersten Zeile setzen Tab.SetNodeAtt(1102,1); // Zeile 1 auswählen Tab.SetNodeAtt(1103,0); // alle Spalten auswählen // Font setzen Tab.SetNodeAtt(5100, "Arial", // szName="Arial" // nHeight=18 18, // nMode=3: 0x01 | 0x02 (Bit1 und Bit zwei gesetzt) 3, // bold, italic // nAngle=0 0); Tab.SetNodeAtt(8101,0,0,255); // Fontfarbe=blau //Zellen der ersten Zeile verbinden for (i=1;i<3;i++) { Tab.SetNodeAtt(1103,i);//Spalte i Tab.SetNodeAtt(8100,192,192,192); Tab.SetNodeAtt(1105,1);//Zelle ist "float" Tab.SetNodeAtt(1106,1);//Zelle ist "flood" } //Text in die erste Zeile Tab.SetNodeAtt(1103,1); Tab.SetNodeAtt(4100,"Tabellentitel"); //Allgemeine Einstellungen für alle Zellen Tab.SetNodeAtt(1102,0); // alle Zeilen Tab.SetNodeAtt(1103,0); // alle Spalten © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 180 Tab.SetNodeAtt(1104,-1);// alle Kanten //Linienart für die Kanten: Tab.SetNodeAtt(6100, //Durchgezigene Linie 1, //Dicke 0 0, 0,0,0); //Farbe schwarz // Font setzen Tab.SetNodeAtt(5100, "Arial", // szName="Arial" // nHeight=12 12, // nMode=0 0, // nAngle=0 0); char buf[256]; for (i=1;i<3;i++) { Tab.SetNodeAtt(1103,i);//Spalte i for (j=2;j<12;j++) { sprintf(buf,"Zeile %i, Spalte %i",j,i); //Text in die Zeile (i,j) schreiben Tab.SetNodeAtt(1102,j);//Zeile j auswählen Tab.SetNodeAtt(4100,buf); } } //Darstellung erneuern GetDocument()->Invalidate(); return 1; } Siehe auch: Klassenhierarchie , CTabNode Übersicht 1.2.3.13 CTextNode Klicken Sie auf die Felder der Hierarchie für detaillierte Informationen zu den einzelnen Klassen: TextNode ist die Interface- Klasse zu Textelementen auf einer Grafik. Diese Klasse bietet die Möglichkeit zur Manipulation von Text, Font, Farbe... Methoden: · CTextNode::SetText · CTextNode::Add · CTextNode::AddDate · CTextNode::AddTime · CTextNode::SetNodeAtt · CTextNode::GetNodeAtt © XOn Siftware GmbH, 2008 181 Referenzhandbuch 1.2.3.13.1 CTextNode::Add Syntax: void CTextNode::Add(char); void CTextNode::Add(short); void CTextNode::Add(long); void CTextNode::Add(float); void CTextNode::Add(double); void CTextNode::Add(char*); Beschreibung: An den Text eines Textfeldes wird weiterer Text angehängt. Je nach Typ des Parameters kann dies ein einzelnes Zeichen, eine ganze Zahl, eine Gleitkommazahl oder ein String sein. Siehe auch: Klassenhierarchie , CTextNode Übersicht 1.2.3.13.2 CTextNode::AddTime Syntax: void CTextNode::AddTime(); Beschreibung: Erweitert den bestehenden Text um die aktuelle Uhrzeit. Siehe auch: Klassenhierarchie , CTextNode Übersicht 1.2.3.13.3 CTextNode::AddDate Syntax: void CTextNode::AddDate(); Beschreibung: Erweitert den bestehenden Text um das aktuelle Datum. Siehe auch: Klassenhierarchie , CTextNode Übersicht 1.2.3.13.4 CTextNode::GetNodeAtt Syntax: int GetNodeAtt(int int GetNodeAtt(int int GetNodeAtt(int int GetNodeAtt(int int GetNodeAtt(int int GetNodeAtt(int int GetNodeAtt(int int GetNodeAtt(int int GetNodeAtt(int nID,int *pVal); nID,long *pVal); nID,float *pVal); nID,double *pVal); nID,char *pVal,int nSize); nID,char *nName,int *pHeight,int *pMode,int *pAng); nID,int *pStyle,int *pWidth,int *pR,int *pG,int *pB); nID,int *pStyle,int *pHatch,int *pR,int *pG,int *pB); nID,int *pR,int *pG,int *pB); Beschreibung: Die Funktion GetNodeAtt dient zum Lesen verschiedenster Attribute. Da nicht alle Attribute eines Grafikelementes vom gleichen Typ sind, gibt es diese Funktion mit verschiedenen Parameterleisten. Detaillierte Liste der Parameterleisten siehe CGrafNode::GetNodeAtt. © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 182 Mögliche Attributwerte, deren Typ und Bedeutung siehe CTextNode::SetNodeAtt. Rückgabewert: Die Funktion liefert einen Integerwert zurück. Ist der Wert kleiner 0, ist ein Fehler aufgetreten: Wert -1 -2 -3 Beschreibung allgemeiner, undefinierbarer Fehler ID-Nummer unzulässig zu lesende Daten unzulässig oder nicht definiert zu schreibender Wert außerhalb des erlaubten Bereiches unzulässiger Formatstring (bei Übergabe von Formatstrings) -4 -5 Siehe auch: Klassenhierarchie , CTextNode Übersicht 1.2.3.13.5 CTextNode::SetNodeAtt Syntax: int SetNodeAtt(int int SetNodeAtt(int int SetNodeAtt(int int SetNodeAtt(int int SetNodeAtt(int int SetNodeAtt(int int SetNodeAtt(int int SetNodeAtt(int int SetNodeAtt(int int SetNodeAtt(int nID,short nVal); nID,long nVal); nID,float nVal); nID,double nVal); nID,char *nVal); nID,double nVal); nID,char *nName,int nHeight,int Mode,int nAng); nID,int nStyle,int nWidth,int nR,int nG,int nB); nID,int nStyle,int nHatch,int nR,int nG,int nB); nID,int nR,int nG,int nB); Beschreibung: Die Funktion SetNodeAtt dient zum Setzen verschiedenster Attribute. Da nicht alle Attribute eines Grafikelementes vom gleichen Typ sind, gibt es diese Funktion mit verschiedenen Parameterleisten. Eine detaillierte Liste der Parameterleisten finden sie unter CGrafNode::SetNodeAtt. Mögliche Attributwerte, deren Argumenttyp, Bedeutung, zulässige Wertebereiche bzw. Werte, sowie deren Voreinstellungen : Bedeutun Wertebere Typ ID g ich Sichtbarkei t des 0=unsichtb 1000 Grafikelem ar, entes ein/ 1=sichtbar aus Ausrichtun 0=links Integer 1100 g des 1=zentriert Textes 2=rechts Typ der Datenquell 1=explizit 1101 e für das 2=Pool Texteleme nt © XOn Siftware GmbH, 2008 183 Referenzhandbuch Name des Grafikelem Bezeichner entes bei explizitem Typ: Text des Elementes, bei PoolTyp: Name des PoolLinks Standardsc hriftart für eine Liste der Standard- Linienarten Linienart siehe GrafNode: SetNodeAtt StandardFüllmuster Hintergrun dfarbe Farbe der Standardsc hriftart 4000 String 4100 Font 5000 Linienart 6000 Füllmuster 7000 8000 Farbe 8001 Für weitere Attribute siehe CGrafNode::SetNodeAtt. Rückgabewert: Die Funktion liefert einen Integerwert zurück. Ist der Wert kleiner 0, ist ein Fehler aufgetreten: Wert -1 -2 -3 -4 -5 Beschreibung allgemeiner, undefinierbarer Fehler ID-Nummer unzulässig zu lesende Daten unzulässig oder nicht definiert zu schreibender Wert außerhalb des erlaubten Bereiches unzulässiger Formatstring (bei Übergabe von Formatstrings) Siehe auch: Klassenhierarchie , CTextNode Übersicht 1.2.3.13.6 CTextNode::SetText Syntax: void CTextNode::SetText(char *text); Beschreibung: Der Text eines Textfeldes wird erstezt durch den Inhalt der Variable text. Parameter: · text: String, der angezeigt werden soll Siehe auch: © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 184 Klassenhierarchie , CTextNode Übersicht 1.2.3.14 CTransform1D Klicken Sie auf die Felder der Hierarchie für detaillierte Informationen zu den einzelnen Klassen: Diese Klasse dient als Basis für eindimensionale Transformationen, wie sie etwa Achsen durchführen. Methoden: · CTransform1D::GetPhys · CTransform1D::SetPhys · CTransform1D::SetMapMode · CTransform1D::SetNodeAtt · CTransform1D::GetNodeAtt · CTransform1D::PUtoLU 1.2.3.14.1 CTransform1D::GetNodeAtt Syntax: int GetNodeAtt(int int GetNodeAtt(int int GetNodeAtt(int int GetNodeAtt(int int GetNodeAtt(int int GetNodeAtt(int int GetNodeAtt(int int GetNodeAtt(int int GetNodeAtt(int nID,int *pVal); nID,long *pVal); nID,float *pVal); nID,double *pVal); nID,char *pVal,int nSize); nID,char *nName,int *pHeight,int *pMode,int *pAng); nID,int *pStyle,int *pWidth,int *pR,int *pG,int *pB); nID,int *pStyle,int *pHatch,int *pR,int *pG,int *pB); nID,int *pR,int *pG,int *pB); Beschreibung: Die Funktion GetNodeAtt dient zum Lesen verschiedenster Attribute. Da nicht alle Attribute eines Grafikelementes vom gleichen Typ sind, gibt es diese Funktion mit verschiedenen Parameterleisten. Detaillierte Liste der Parameterleisten siehe CGrafNode::GetNodeAtt. Mögliche Attributwerte, deren Typ und Bedeutung siehe CTransform1D::SetNodeAtt. Rückgabewert: Die Funktion liefert einen Integerwert zurück. Ist der Wert kleiner 0, ist ein Fehler aufgetreten: Wert -1 -2 -3 -4 © XOn Siftware GmbH, 2008 Beschreibung allgemeiner, undefinierbarer Fehler ID-Nummer unzulässig zu lesende Daten unzulässig oder nicht definiert zu schreibender Wert außerhalb des erlaubten Bereiches 185 Referenzhandbuch -5 unzulässiger Formatstring (bei Übergabe von Formatstrings) Siehe auch: Klassenhierarchie , CTransform1D Übersicht 1.2.3.14.2 CTransform1D::GetPhys Syntax: void CTransform1D::GetPhys(double *pW0, double *pW1); Beschreibung: Liest den Wertebereich der Transformation. Für die Von CTransform1D abgeleitete Klasse CAxisNode liest diese Methode also z.B. den Skalenbereich der Achse aus. Parameter: · pW0: unterer Rand des Wertebereiches · pW1: oberer Rand des Wertebereiches Siehe auch: Klassenhierarchie , CTransform1D Übersicht 1.2.3.14.3 CTransform1D::PUtoLU Syntax: int PUtoLU(double x); int PUtoLU(long t); Parameter: · x: Physikalischer Wert als Gleitkommazahl · t: Physikalischer Wert (Zeitpunkt) als ganze Zahl Beschreibung: wandelt eine physikalische Koordinate in eine Bildschirmkoordinate um. Ist die Abbildungsfunktion der Transformation Datum/Zeit (Item 1100, Wert 2), dann muß der physikalische Wert als Zeitpunkt (Sekunden seit 1.1.1970 als long) vorgegeben werden, andernfalls als Gleitkommazahl. Rückgabewert: logische Koordinate in 1/100 mm. Siehe auch: Klassenhierarchie , CTransform1D Übersicht 1.2.3.14.4 CTransform1D::SetMapMode Syntax: void CTransform1D::SetMapMode(int mode); Beschreibung: Legt die Abbildungsfunktion einer Transformation fest. Parameter: · mode: Abbildungsmodus 0: Werte im Bereich [w0,w1] werden linear auf den Bildbereich transformiert 1: Werte im Bereich [w0,w1] werden logarithmisch auf den Bildbereich transformiert. Es muß gelten 0<w0<w1! Siehe auch: © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 186 Klassenhierarchie , CTransform1D Übersicht 1.2.3.14.5 CTransform1D::SetNodeAtt Syntax: int SetNodeAtt(int int SetNodeAtt(int int SetNodeAtt(int int SetNodeAtt(int int SetNodeAtt(int int SetNodeAtt(int int SetNodeAtt(int int SetNodeAtt(int int SetNodeAtt(int nID,int nVal); nID,long nVal); nID,float nVal); nID,double nVal); nID,char *nVal); nID,char *nName,int nHeight,int Mode,int nAng); nID,int nStyle,int nWidth,int nR,int nG,int nB); nID,int nStyle,int nHatch,int nR,int nG,int nB); nID,int nR,int nG,int nB); Beschreibung: Die Funktion SetNodeAtt dient zum Setzen verschiedenster Attribute. Da nicht alle Attribute eines Grafikelementes vom gleichen Typ sind, gibt es diese Funktion mit verschiedenen Parameterleisten. Eine detaillierte Liste der Parameterleisten finden sie unter CGrafNode::SetNodeAtt. Mögliche Attributwerte, deren Argumenttyp, Bedeutung, zulässige Wertebereiche bzw. Werte, sowie deren Voreinstellungen: Typ ID 1000 Integer Float © XOn Siftware GmbH, 2008 Bedeutung Sichtbarkeit des Grafikelementes ein/ aus 1100 Abbildungsfunktion 1101 1102 Anzahl der Ticks Anzahl der Subticks 3100 Anfangswert des Skalierungsintervalls Wertebereich 0=unsichtbar, 1=sichtbar 0=linear 1=logarithmisch 2=Weibulverteilung 3=Normalverteilung 4=Zeitachse 5=Reziprok 6=Reziprok verschoben 7=Logit größer/gleich 0 größer/gleich 0 Mit diesem Attribut wird der Anfangswert des Skalierungsintervalls gesetzt. Der Wert wird erst übernommen, wenn der Endwert des Skalierungsintervalls (3101) gesetzt wird. Falls das Wertepaar nicht zur eingestellten Skalierung paßt wird die Skalierung entsprechend angepaßt. Zum Beispiel sind Werte kleiner oder gleich Null bei logarithmischer Skalierung unzulässig. 187 Referenzhandbuch 3101 3102 String 4000 Font 5000 Linienart 6000 Füllmuster 7000 8000 Farbe 8001 Mit diesem Attribut wird der Endwert des Skalierungsintervalls gesetzt und Angangswert (3100) und Endwert (3101) werden in die Skalierung übernommen. Sie müssen also unbedingt das Attribut 3100 Endwert des gesetzt haben bevor Skalierungsintervalls Sie das Attribut 3101 festlegen! Falls das Wertepaar nicht zur eingestellten Skalierung paß wird die Skalierung entsprechend angepaßt. Zum Beispiel sind Werte kleiner oder gleich Null bei logarithmischer Skalierung unzulässig. Mit SetNodeAtt setzen sie eine physikalische Koordinate x. Mit Temporäre Koordinate GetNodeAtt erhalten sie die zugehörige logische Koordinate y = p2l(x) Name des Bezeichner Grafikelementes Standardschriftart für eine Liste der Standard-Linienart Linienarten siehe GrafNode:SetNodeAtt Standard-Füllmuster Hintergrundfarbe Farbe der Standardschriftart Für weitere Attribute siehe CGrafNode::SetNodeAtt. Rückgabewert: Die Funktion liefert einen Integerwert zurück. Ist der Wert kleiner 0, ist ein Fehler aufgetreten: Wert -1 -2 -3 -4 -5 Beschreibung allgemeiner, undefinierbarer Fehler ID-Nummer unzulässig zu lesende Daten unzulässig oder nicht definiert zu schreibender Wert außerhalb des erlaubten Bereiches unzulässiger Formatstring (bei Übergabe von Formatstrings) © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 188 Siehe auch: Klassenhierarchie , CTransform1D Übersicht 1.2.3.14.6 CTransform1D::SetPhys Syntax: void CTransform1D::SetPhys(double w0, double w1); Beschreibung: Legt den Wertebereich der Transformation fest. Für die Von CTransform1D abgeleitete Klasse CAxisNode legt diese Methode also z.B. den Skalenbereich der Achse fest. Parameter: · w0: unterer Rand des Wertebereiches · w1: oberer Rand des Wertebereiches Siehe auch: Klassenhierarchie , CTransform1D Übersicht 1.2.3.15 CTransform2D Klicken Sie auf die Felder der Hierarchie für detaillierte Informationen zu den einzelnen Klassen: Diese Klasse dient als Basis für zweidimensionale Transformationen, wie sie etwa Planes durchführen. Methoden: · CTransform2D::SetTyp · CTransform2D::GetTyp · CTransform2D::SetPhys · CTransform2D::GetPhys · CTransform2D::SetNodeAtt · CTransform2D::GetNodeAtt · CTransform2D::PUtoLU 1.2.3.15.1 CTransform2D::GetNodeAtt Syntax: int GetNodeAtt(int int GetNodeAtt(int int GetNodeAtt(int int GetNodeAtt(int int GetNodeAtt(int int GetNodeAtt(int int GetNodeAtt(int int GetNodeAtt(int int GetNodeAtt(int Beschreibung: © XOn Siftware GmbH, 2008 nID,int *pVal); nID,long *pVal); nID,float *pVal); nID,double *pVal); nID,char *pVal,int nSize); nID,char *nName,int *pHeight,int *pMode,int *pAng); nID,int *pStyle,int *pWidth,int *pR,int *pG,int *pB); nID,int *pStyle,int *pHatch,int *pR,int *pG,int *pB); nID,int *pR,int *pG,int *pB); 189 Referenzhandbuch Die Funktion GetNodeAtt dient zum Lesen verschiedenster Attribute. Da nicht alle Attribute eines Grafikelementes vom gleichen Typ sind, gibt es diese Funktion mit verschiedenen Parameterleisten. Detaillierte Liste der Parameterleisten siehe CGrafNode::GetNodeAtt. Mögliche Attributwerte, deren Typ und Bedeutung siehe CTransform2D::SetNodeAtt. Rückgabewert: Die Funktion liefert einen Integerwert zurück. Ist der Wert kleiner 0, ist ein Fehler aufgetreten: Wert -1 -2 -3 -4 -5 Beschreibung allgemeiner, undefinierbarer Fehler ID-Nummer unzulässig zu lesende Daten unzulässig oder nicht definiert zu schreibender Wert außerhalb des erlaubten Bereiches unzulässiger Formatstring (bei Übergabe von Formatstrings) Siehe auch: Klassenhierarchie , CTransform2D Übersicht 1.2.3.15.2 CTransform2D::GetPhys Syntax: int GetPhys(double *pfx0,double *pfx1,double *pfy0,double *pfy1); Beschreibung: Liefert die aktuellen Bereiche der Transformation. Parameter: · pfx0: Pointer auf einen double zur Speicherung des ersten Wertes des X- Bereichs · pfx1: Pointer auf einen double zur Speicherung des zweiten Wertes des X- Bereichs · pfy0: Pointer auf einen double zur Speicherung des ersten Wertes des Y- Bereichs · pfy1: Pointer auf einen double zur Speicherung des zweiten Wertes des Y- Bereichs Rückgabewert: 0 wenn erfolgreich, sonst ein Fehlercode < 0. Siehe auch: Klassenhierarchie , CTransform2D Übersicht 1.2.3.15.3 CTransform2D::GetTyp Synatx: int GetTyp(int * pIntT) Beschreibung: Liefert den aktuellen Tranformationstyp. Parameter: · pIntT: Pointer auf Integer zur Speicherung des Rückgabewertes Rückgabewert: 0 wenn erfolgreich, sonst ein Fehlercode < 0. Siehe auch: © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 190 Klassenhierarchie , CTransform2D Übersicht 1.2.3.15.4 CTransform2D::PUtoLU Syntax: void PUtoLU(double x,double y,int *pix,int *piy); Parameter: · x: Physikalische X- Koordinate · y: Physikalische Y- Koordinate · pix: Ergebnisbuffer für die logische X- Koordinate · piy: Ergebnisbuffer für die logische Y- Koordinate Beschreibung: wandelt einen physikalischen Punkt (x,y) bezüglich der Abbildungsfunktion in einen logischen Punkt um. Die Einheit der logischen Koordinaten beträgt 1/100 mm. Siehe auch: Klassenhierarchie , CTransform2D Übersicht 1.2.3.15.5 CTransform2D::SetNodeAtt Syntax: int SetNodeAtt(int int SetNodeAtt(int int SetNodeAtt(int int SetNodeAtt(int int SetNodeAtt(int int SetNodeAtt(int int SetNodeAtt(int int SetNodeAtt(int int SetNodeAtt(int int SetNodeAtt(int nID,short nVal); nID,long nVal); nID,float nVal); nID,double nVal); nID,char *nVal); nID,double nVal); nID,char *nName,int nHeight,int Mode,int nAng); nID,int nStyle,int nWidth,int nR,int nG,int nB); nID,int nStyle,int nHatch,int nR,int nG,int nB); nID,int nR,int nG,int nB); Beschreibung: Die Funktion SetNodeAtt dient zum Setzen verschiedenster Attribute. Da nicht alle Attribute eines Grafikelementes vom gleichen Typ sind, gibt es diese Funktion mit verschiedenen Parameterleisten. Eine detaillierte Liste der Parameterleisten finden sie unter CGrafNode::SetNodeAtt. Mögliche Attributwerte, deren Argumenttyp, Bedeutung, zulässige Wertebereiche bzw. Werte, sowie deren Voreinstellungen: Typ ID Integer 1000 Float © XOn Siftware GmbH, 2008 Bedeutung Sichtbarkeit des Grafikelementes ein/ aus 1100 Abbildungsfunktion 3100 X0, Anfangswert der Wertebereich 0=unsichtbar, 1=sichtbar · · · · · · · 0: linear/linear 1: linear/Bogenmaß 2: linear/Gradmaß 3: Weibul 4: polar/Bogenmaß 5: polar/Gradmaß 6: Smith- Chart 191 Referenzhandbuch String 4000 Font 5000 X-Achse DX, Breite der XAchse (Endwert=X0 +DX) Y0, Anfangswert der Y-Achse DY, Breite der YAchse (Endwert=Y0 +DY) Name des Grafikelementes Standardschriftart Linienart 6000 Standard-Linienart Füllmuster Farbe 7000 8000 3101 3102 3103 Bezeichner für eine Liste der Linienarten siehe GrafNode:SetNodeAtt Standard-Füllmuster Hintergrundfarbe Farbe der 8001 Standardschriftart Für weitere Attribute siehe CGrafNode::SetNodeAtt. Rückgabewert: Die Funktion liefert einen Integerwert zurück. Ist der Wert kleiner 0, ist ein Fehler aufgetreten: Wert -1 -2 -3 -4 -5 Beschreibung allgemeiner, undefinierbarer Fehler ID-Nummer unzulässig zu lesende Daten unzulässig oder nicht definiert zu schreibender Wert außerhalb des erlaubten Bereiches unzulässiger Formatstring (bei Übergabe von Formatstrings) Siehe auch: Klassenhierarchie , CTransform2D Übersicht 1.2.3.15.6 CTransform2D::SetPhys Synatx: int SetPhys(double x0,double x1,double y0,double y1) Beschreibung: Setzt die Bereiche für die Transformation. Sollten die angegebenen Werte mit der gewählten Transformation nicht vereinbar sein werden geeignete Voreinstellungen gewählt. Die Werte der Voreinstellungen sind in der Beschreibung von SetTyp angegeben. Parameter: · x0: Erster Wert des abzubildenden X - Bereichs · x1: Zweiter Wert des abzubildenden X - Bereichs · y0: Erster Wert des abzubildenden Y - Bereichs · y1: Zweiter Wert des abzubildenden Y - Bereichs Rückgabewert: 0 wenn erfolgreich, sonst ein Fehlercode < 0. © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 192 Siehe auch: Klassenhierarchie , CTransform2D Übersicht 1.2.3.15.7 CTransform2D::SetTyp Syntax: int SetTyp(int T) Beschreibung: Legt den Typ der Transformation fest.Mögliche Parameterwerte für den Abbildungstyp und dessen Bedeuting sind in der folgenden Tabelle aufgeführt. Wert 0 Bedeutung lineare Abbildung(Voreinstellung) polare Koordinaten in kartesischem System. Die X - Koordinaten beschreiben den Radius, die Y Koordinaten den Winkel des Ortsvektors zum 1 aktuellen Datenpunkt mit der X - Achse im Polarsystem.Y -Werte werden im Bogenmaß errechnet. 2 wie 1, jedoch Y - Werte im Gradmaß Weibultransformation.Die X - Werte werden logarithmisch , die Y - Werte 3 doppellogarithmisch abgebildet. Der zugrunde liegende Logarithmnus ist der Zehnerlogarithmus. Polartransformation. Die X - Werte werden als 4 Radius, die Y - Werte als Winkel zur X - Achse angezeigt. Y - Werte sind im Bogenmaß. 5 wie 4, jedoch Y - Werte im Bogenmaß. Smith- Chart. Die Positive complexe Halbebene 6 (Re > 0) wird abgebildet auf den complexen einheitskreis mit der Abbildung Z' = (z-1)/(z+1) Gleichzeitig werden Vorbesetzungen für die X und Y - Bereiche vorgenommen. Die Werte für die jeweiligen Transformationstypen sind : Typ 1 2 3 4 5 6 x0 0 0 0 0.1 0 0 x1 100 100 100 100 100 100 Rückgabewert: 0 wenn erfolgreich, sonst ein Fehlercode < 0. Siehe auch: Klassenhierarchie , CTransform2D Übersicht © XOn Siftware GmbH, 2008 y0 0 0 0 0.1 0.5 90 y1 100 2 360 99.9 0.5 90 193 Referenzhandbuch 1.2.4 Kurvenelemente Das Konzept von X1 sieht vor, daß die Inhalte eines Diagramms (z.B. Kurven, Balken,... ) unabhängig vom eigentlichen Diagramm (Achsen, Ebene, Szene) sind. Die nachfolgend beschriebenen Klassen sind die Programmierschnittstellen zu den unterschidlichen Diagramminhalten. Allen Klassen gemeinsam ist eine große Menge von Attributierungsfunktionen. Diese sind in der Basisklasse CPaintObj implementiert. Eine Beschreibung der Funktionsweise dieser Attributierungsfunktionen findet sich in CPaintObj:: SetTraceAtt. Klicken Sie auf die Felder der Hierarchie für detaillierte Informationen zu den einzelnen Klassen: 1.2.4.1 CBar2DTrace Klicken Sie auf die Felder der Objekthierarchie für detaillierte Informationen zu den einzelnen Klassen: Methoden: · SetTraceAtt · GetTraceAtt · AddLayer · RemoveLayer © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 194 1.2.4.1.1 CBar2DTrace::AddLayer Syntax: void AddLayer(int Idx,char* Name); Parameter: · Idx: Index an dem die neue Schicht eingefügt werden soll · Name: Name der neuen Schicht Beschreibung: Fügt eine neue Schicht in eine Stapelbalkenkurve ein und macht diese Schicht aktiev. Folgende Attributierungsbefehle beziehen sich dann auf diese Schicht. Beispiel: siehe CBar2DTrace::SetTraceAtt . 1.2.4.1.2 CBar2DTrace::GetTraceAtt Syntax: Für die verschiedenen Parameterleisten siehe CPaintObj::GetTraceAtt . Beschreibung: Die Liste der Attribute findet sich in CBar2DTrace::SetTraceAtt . 1.2.4.1.3 CBar2DTrace::RemoveLayer Syntax: void RemoveLayer(int nLayer); Parameter: · nLayer: Index der Schicht Beschreibung: Entfernt eine Schicht aus einer Stapelbalkenkurve. Beispiel: siehe CBar2DTrace::SetTraceAtt . 1.2.4.1.4 CBar2DTrace::SetTraceAtt Typ ID 1200 Integer 1201 © XOn Siftware GmbH, 2008 Bedeutung Wertebereich Layer: Dieses Attribut gibt den aktiven Layer eines mehrschichtigen Stapelbalkens an. Angaben wie Schichtfarbe, Schichtfüllmuster ... beziehen sich dann auf diese Schicht der Stapelbalkenkurve Orientierung: Mit diesem Attribut 0,1 geben Sie an ob die Balken vertikal (0) oder 195 Referenzhandbuch 1202 1203 Float 3200 4200 String 4201 Font 5200 Linienart 6200 Muster 7200 horizontal (1) ausgerichtet werden. Stapelung: Mit diesem Attribut legen Sie bei Stapelbalken fest, ob 0,1 die Balken nebeneinander (0) oder übereinander (1) gezeichnet werden Beschriftungsmodus: Legt fest ob die Beschriftung der Balkenschichten transparent (0) oder opaque (1) ist. Keine 0,1 Beschriftung erhalten Sie, wenn Sie einen leeren Formatstring übergeben (Attribut 4200) Balkenbreite in Einheiten des verwendeten Diagramms Balkenbeschriftung: Formatstring für die Höhenbeschriftung in den Balken. Ein Formatstring "%.1f" gibt die Balkenhöhe mit einer Nachkommastelle aus Schichtname: Name der aktiven Balkenschicht (siehe 1200). Dieser Name wird in der Legende Verwendet. Wird kein Name eingetragen, dann wird die Schicht auch in der Legende nicht beschrieben. Font für die Beschriftung in den Balken Balkenrand: Linienart für die umrandung der aktiven Balkenschicht (siehe 1200) Balkenmuster: Füllmuster für die Balken der aktiven Schicht (siehe 1200) © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 8200 Farbe 8201 8202 10000 Vector 10001 196 Balkenhintergrund: Hintergrundfarbe für die Balken der aktiven Schicht (siehe 1200) Farbe der Schrift für die Beschriftung in den Balken Hintergrundfarbe der Beschriftung in den Balken Koordinaten für die Balkenmittelpunkte. Ist die Ausrichtung der Balken vertikal, dann werden diese Werte als X- Koordinaten betrachtet, sonst als YKoordinate. Balkenhöhen der aktiven Schicht (siehe 1200) Weitere Attribute siehe CPaintObj::SetTraceAtt. Beispiel: In einem X1- Dokument sind eine X-Achse Namens AX, eine Y-Achse Namens AY und eine Legende mit Namen LEG definiert. Die nachfolgende Methode zeichnet zweischichtige Balken von zufälliger Höhe in das Diagramm ein. int method::OnRun() { CBar2DTrace *pB=new CBar2DTrace(); pB->SetTraceAtt(3200,0.5); pB->SetTraceAtt(4150,"AX"); pB->SetTraceAtt(4151,"AY"); pB->SetTraceAtt(1201,0); pB->SetTraceAtt(1202,1); pB->SetTraceAtt(1203,1); pB->SetTraceAtt(3200,0.8); pB->SetTraceAtt(8201,255,0,0); pB->SetTraceAtt(10000,0.5,1.0,10L); CVector V; V.GaussWhiteNoise(10,5.0); pB->AddLayer(0,"Männer"); pB->SetTraceAtt(10001,&V); pB->SetTraceAtt(7200,0,0,0,0,255); V.GaussWhiteNoise(10,5.0); pB->AddLayer(1,"Frauen"); pB->SetTraceAtt(10001,&V); pB->SetTraceAtt(7200,0,0,255,192,255); LEG.Clear(); LEG.AddTrace(pB); return 1; } © XOn Siftware GmbH, 2008 197 Referenzhandbuch 1.2.4.2 CBar3DTrace Klicken Sie auf die Felder der Objekthierarchie für detaillierte Informationen zu den einzelnen Klassen: Methoden: · SetTraceAtt · GetTraceAtt · AddLayer · RemoveLayer 1.2.4.2.1 CBar3DTrace::AddLayer Syntax: void AddLayer(int Idx,char* Name); Parameter: · Idx: Index an dem die neue Schicht eingefügt werden soll · Name: Name der neuen Schicht Beschreibung: Fügt eine neue Schicht in eine Stapelbalkenkurve ein und macht diese Schicht aktiev. Folgende Attributierungsbefehle beziehen sich dann auf diese Schicht. Beispiel: siehe CBar3DTrace::SetTraceAtt. 1.2.4.2.2 CBar3DTrace::GetTraceAtt Syntax: Für die verschiedenen Parameterleisten siehe CPaintObj::GetTraceAtt . Beschreibung: Die Liste der Attribute findet sich in CBar3DTrace::SetTraceAtt . 1.2.4.2.3 CBar3DTrace::RemoveLayer Syntax: void RemoveLayer(int nLayer); Parameter: · nLayer: Index der Schicht Beschreibung: Entfernt eine Schicht aus einer Stapelbalkenkurve. © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 1.2.4.2.4 CBar3DTrace::SetTraceAtt Typ ID 1260 Integer 1261 3260 Float 3261 String 4260 Linienart 6200 © XOn Siftware GmbH, 2008 Bedeutung Layer: Dieses Attribut gibt den aktiven Layer eines mehrschichtigen Stapelbalkens an. Angaben wie Schichtfarbe, Schichtfüllmuster ... beziehen sich dann auf diese Schicht der Stapelbalkenkurve Layout: Mit diesem Attribut stellen sie die Darstellung der Balken ein. Zur Auswahl stehen · Balken: Die Elemente werden als Quader dargestellt · Zylinder: Die Elemente werden als Zylinder dargestellt · Kegel: Die Elemente werden als Kegel dargestellt · Band-X: Die Schichten werden als Bänder entlang der X-Achse gezeichnet · Band-Y: Die Schichten werden als Bänder entlang der Y-Achse gezeichnet Balkenbreite (X-Richtung) in Einheiten des verwendeten Koordinatensystems Balkentiefe (Y-Richtung) in Einheiten des verwendeten Koordinatensystems Schichtname: Name der aktiven Balkenschicht (siehe 1260). Dieser Name wird in der Legende Verwendet. Wird kein Name eingetragen, dann wird die Schicht auch in der Legende nicht beschrieben. Balkenrand: Linienart für die umrandung der aktiven Wertebereich 0: Balken 1: Zylinder 2: Kegel 3: Band-X 4: Band-Y 198 199 Referenzhandbuch Muster 7200 Farbe 8200 10060 Vector 10061 Matrix 11060 Balkenschicht (siehe 1260) Balkenmuster: Füllmuster für die Balken der aktiven Schicht (siehe 1260) Balkenhintergrund: Hintergrundfarbe für die Balken der aktiven Schicht (siehe 1260) Koordinaten der Balkenmitte in X- Richtung Koordinaten der Balkenmitte in Y- Richtung Balkenhöhen der aktiven Schicht (siehe 1260) Weitere Attribute siehe CPaintObj::SetTraceAtt. Beispiel: In einem X1- Dokument sind eine Szene Namens SZENE eine Legende mit Namen LEG definiert. Die nachfolgende Methode zeichnet in die Szene dreischichtige Stapelbalken ein. int method::OnRun() { double[100]; int i,j; CBar3DTrace *pB=new CBar3DTrace(); pB->SetTraceAtt(4153,"SZENE"); pB->SetTraceAtt(3260,0.7); pB->SetTraceAtt(3261,0.7); for (i=0;i<10;i++) for (j=0;j<10;j++) f[10*i+j]=(4.5-i)*(4.5-j)/5; pB->AddLayer(0,"Schicht- Arbeit"); pB->SetTraceAtt(6260,1,0,255,255,255); pB->SetTraceAtt(7260,0,0,0,0,255); pB->SetTraceAtt(11060,f,10,10); for (i=0;i<100;i++) f[i]=ran1(&j)-0.5; pB->AddLayer(0,"Schicht- Dienst"); pB->SetTraceAtt(6260,1,0,255,255,255); pB->SetTraceAtt(7260,0,0,0,255,0); pB->SetTraceAtt(11060,f,10,10); for (i=0;i<100;i++) f[i]=ran1(&j)-0.5; pB->AddLayer(0,"Schicht- im Schacht"); pB->SetTraceAtt(6260,1,0,255,255,255); pB->SetTraceAtt(7260,0,0,255,0,0); pB->SetTraceAtt(11060,f,10,10); LEG.Clear(); LEG.AddTrace(pB); return 1; } © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 1.2.4.3 CGraf3DTrace Klicken Sie auf die Felder der Objekthierarchie für detaillierte Informationen zu den einzelnen Klassen: Methoden: · SetTraceAtt · GetTraceAtt 1.2.4.3.1 CGraf3DTrace::GetTraceAtt Syntax: Für die verschiedenen Parameterleisten siehe CPaintObj::GetTraceAtt . Beschreibung: Die Liste der Attribute findet sich in CGraf3DTrace::SetTraceAtt. 1.2.4.3.2 CGraf3DTrace::SetTraceAtt Typ ID 1280 Wertebereich 0: konstant 1: linear 2: Bikubisch 0: Oberfläche 1: Wasserfall 2: Gitter 0: diskret 1: kontinuierlich 1281 Style Darstellungsart 1282 Fill 1283 Wasserfall X Wasserfalldiagramm entlang der X-Achse darstellen Dieses 0,1 Attribut hat nur Auswirkungen, wenn als Darstellungsart Wasserfall gewählt ist. 1284 Wasserfall Y Wasserfalldiagramm entlang der Y-Achse darstellen. Dieses Attribut hat nur Auswirkungen, wenn als Darstellungsart Integer © XOn Siftware GmbH, 2008 Bedeutung Interpolationsfunktion Dieses Attribut gibt an, mit welcher Funktion die Stützpunkte einer Kurve interpoliert werden 0,1 200 201 Referenzhandbuch 1285 1286 Double 2280 Wasserfall gewählt ist. Projektion Projektion der Oberfläche auf die X/YEbene der Szene. Die Projektion zeigt die Färbung der Oberfläche als Intensity Chart. Dieses Attribut hat nur Auswirkungen, wenn als Darstellungsart Oberfläche gewählt ist. Symbol Dieses Attribut gibt an, ob und mit welchem Symbol die Stützstellen markiert werden Symbolgröße Dieses Attribut gibt an, wie groß die Symbole an den Stützpunkten gezeichnet werden Wasserfall X, Name 4281 Wasserfall Y, Name 6280 Linienart der Gitterlinien Linienart Wasserfall X Dieses Attribut legt die WasserfallBegrenzungslinien für Wasserfalldiagramme entlang der X-Achse fest. Linienart Wasserfall Y Dieses Attribut legt die WasserfallBegrenzungslinien für Wasserfalldiagramme entlang der Y-Achse fest. String Linienart 6282 Color 8280 0: keine Markierung 1: Würfel 2: Kugel 3: Kegel 4: Zylinder Prozentuale Größe (0100) in Relation zur Szene Bezeichner des Wasserfalldiagramms in X-Richtung. Erscheint in der Legende Bezeichner des Wasserfalldiagramms in Y-Richtung. Erscheint in der Legende 4280 6281 0,1 Symbolfarbe Wenn sie die Stützpunkte mit einem Symbol markieren (Attribut 1286), können sie über dieses Attribut die Symbolfarbe © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 8281 Color 8282 10080 Vector 10081 Matrix 11080 ColorMap 12080 Material 12081 vorgeben Wasserfall X Farbe Farbe der Wasserfallfläche entlang der X- Achse Wasserfall Y Farbe Farbe der Wasserfallfläche entlang der Y- Achse X- Koordinaten (Xi) der Oberflächenstzpunkte Y- Koordinaten (Yj) der Oberflächenstzpunkte Z- Koordinaten (Zi,j) der Oberflächenstzpunkte Ein Stützpunkt Pi,j ist definiert als (Xi,Yj,Zi,j) Farbtabelle zur färbung der Oberfläche. Eigenschaften der dargestellten Oberfläche. Mit diesem Parameter können sie Eigenschaften der dargestellten Oberfläche einstellen. Dies sind z.B. metallischer Glanz, Reflektion, Leuchtstärke, Mattigkeit ... Weitere Attribute siehe CPaintObj::SetTraceAtt. Beispiel: In einem X1- Dokument ist eine Szene mit Namen SZENE und eine Legende mit Namen LEG definiert. Die nachfolgende Methode zeichnet einen Sombrero in die Szene. int method::OnRun() { double z[50][50]; double x,y,d; //Daten erzeugen for (int i=0;i<50;i++) { x=i/49.0-0.5; for (int j=0;j<50;j++) { y=j/49.0-0.5; d=18*sqrt(x*x+y*y); z[i][j]=cos(d)*2/(d+2.0); } } //Alte Darstellung entfernen LEGENDE.Clear(); //neuen 3D- Graf anlegen CGraf3DTrace *pG=new CGraf3DTrace(); © XOn Siftware GmbH, 2008 202 203 Referenzhandbuch //3D-Graf parametrieren pG->SetTraceAtt(11080,z,50,50); pG->SetTraceAtt(4153,"SZENE"); //3D-Graf mit der Legende verknüpfen LEGENDE.AddTrace(pG); //Darstellung der Seite aktualisieren GetDocument()->Invalidate(); return 1; } 1.2.4.4 CKurve2DTrace Klicken Sie auf die Felder der Objekthierarchie für detaillierte Informationen zu den einzelnen Klassen: Methoden: · SetTraceAtt · GetTraceAtt 1.2.4.4.1 CKurve2DTrace::GetTraceAtt Syntax: Für die verschiedenen Parameterleisten siehe CPaintObj::GetTraceAtt . Beschreibung: Die Liste der Attribute findet sich in CKurve2DTrace::SetTraceAtt . 1.2.4.4.2 CKurve2DTrace::SetTraceAtt Typ ID 1150 Integer 1151 Bedeutung Interpolationsfunktion Dieses Attribut gibt an, mit welcher Funktion die Stützpunkte einer Kurve interpoliert werden Punktmarkierung: Mit diesem Attribut wird das Symbol der Punkmarkierung vorgegeben, falls es sich um eines der Zeichen 32,...,47 aus dem Font X1-Sym handelt. Mit dem Attribut 9220 können Wertebereich 0: konstant 1: linear 2: Spline 3: Akima 0,...,15 0: keine Markierung 1: Quadrat ..... 15: Linie © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 1152 1155 Linienart 6220 6221 Muster 7220 8220 Farbe 8221 Symbol 9220 10020 Vector 10021 Sie ebenfalls das Symbol festlegen. Punktgröße: Größe des Symbols zur Punktmarkierung in [1/100 mm]. Siehe auch Attribut 9220. Linienfüllung: Gibt an, ob bei unterbrochenen Linientypen (gestrichelt, gepunktet ..., siehe Attribut 6221) die Zwischenräume mit der Füllfarbe (Attribut 8221) gefüllt werden sollen. Linienart für die Umrandung der Markierungssymbole Linienart für die Kurve Füllmuster für die Markierungssymbole Hintergrundfarbe für die Markierungssymbole Füllfarbe für unterbrochene Linien (siehe Attribut 1155) Symbol für die Markierung der Stützpunkte Koordinaten der Stützpunkte in XRichtung Koordinaten der Stützpunkte in YRichtung 204 0: Zwischenräume nicht füllen 1: Zwischenräume farbig füllen Weitere Attribute siehe CPaintObj::SetTraceAtt. Beispiel: In einem X1- Dokument sind eine X-Achse Namens AX, eine Y-Achse Namens AY und eine Legende mit Namen LEG definiert. Die nachfolgende Methode zeichnet eine Zufallskurve in das Diagramm ein. Die Stützpunkte werden mit Kaffeetassen markiert. int method::OnRun() { CVector Y; CKurve2DTrace *pK=new CKurve2DTrace(); LEG.Clear(); // Diagramm leeren Y.GaussWhiteNoise(10,10.0); // Zufallszahlen pK->SetTraceAtt(1150,3); pK->SetTraceAtt(1152,300); pK->SetTraceAtt(4150,"AX"); © XOn Siftware GmbH, 2008 205 Referenzhandbuch // Diagrammbezug X pK->SetTraceAtt(4151,"AY"); // Diagrammbezug Y pK->SetTraceAtt(4154,"Java- Test"); pK->SetTraceAtt(10020,0.0,1.0,10L); //X-Werte implizit pK->SetTraceAtt(10021,&Y); //Y-Werte explizit pK->SetTraceAtt(9220,"X1-Sym",132); // Symbol pK->SetTraceAtt(7220,0,0,255,0,0); pK->SetTraceAtt(6220,1,0,0,0,255); pK->SetTraceAtt(6221,1,40,0,255,0); LEG.AddTrace(pK); return 1; } 1.2.4.5 CKurve3DTrace Klicken Sie auf die Felder der Objekthierarchie für detaillierte Informationen zu den einzelnen Klassen: Methoden: · SetTraceAtt · GetTraceAtt 1.2.4.5.1 CKurve3DTrace::GetTraceAtt Syntax: Für die verschiedenen Parameterleisten siehe CPaintObj::GetTraceAtt . Beschreibung: Die Liste der Attribute findet sich in CKurve3DTrace::SetTraceAtt . 1.2.4.5.2 CKurve3DTrace::SetTraceAtt Typ ID Bedeutung Wertebereich 1251 Interpolationsfunktion Dieses Attribut gibt an, mit welcher Funktion die Stützpunkte einer Kurve interpoliert werden 0: konstant 1: linear 2: Spline 3: Akima 1252 Symbol Dieses Attribut gibt an, ob und mit welchem Symbol die Stützstellen 0: keine Markierung 1: Würfel 2: Kugel 3: Kegel Integer © XOn Siftware GmbH, 2008 1.2 Programmierreferenz Double 2250 6250 6251 Linienart 6252 6253 8250 Color markiert werden Symbolgröße Dieses Attribut gibt an, wie groß die Symbole an den Stützpunkten gezeichnet werden Linienart für die räumliche Kurve. Soll die räumliche Kurve nicht gezeichnet werden sondern nur ihre Projektionen auf die Begrenzungsflächen der verwendeten Szene, dann tragen Sie als Linienart keine Linie ein. Linienart für die Projektion der räumlichen Kurve auf die X/Y- Ebene. Soll die Projektion nicht gezeichnet werden, dann tragen Sie als Linienart keine Linie ein. Linienart für die Projektion der räumlichen Kurve auf die Y/Z- Ebene. Soll die Projektion nicht gezeichnet werden, dann tragen Sie als Linienart keine Linie ein. Linienart für die Projektion der räumlichen Kurve auf die X/Z- Ebene. Soll die Projektion nicht gezeichnet werden, dann tragen Sie als Linienart keine Linie ein. Symbolfarbe Wenn sie die Stützpunkte mit einem Symbol markieren (Attribut 1252), können sie über dieses Attribut die Symbolfarbe vorgeben Linienart für die Projektion der © XOn Siftware GmbH, 2008 206 4: Zylinder Prozentuale Größe (0100) in Relation zur Szene 207 Referenzhandbuch 10050 Vector 10051 10052 räumlichen Kurve auf die Z/X- Ebene. Soll die Projektion nicht gezeichnet werden, dann tragen Sie als Linienart keine Linie ein. X- Koordinaten der Kurvenstützpunkte Y- Koordinaten der Kurvenstützpunkte Z- Koordinaten der Kurvenstützpunkte Weitere Attribute siehe CPaintObj::SetTraceAtt. Beispiel: In einem X1- Dokument ist eine Szene mit Namen SZENE und eine Legende mit Namen LEG definiert. Die nachfolgende Methode zeichnet eine Schraubenlinie in die Szene und Projeziert die Schraubenlinie auf die Begrenzungsflächen. int method::OnRun() { CKurve3DTrace *pT=new CKurve3DTrace(); double X[1000],Y[1000]; for (int i=0;i<1000;i++) { X[i]=cos(i*0.03); Y[i]=sin(i*0.03); } pT->SetTraceAtt(4153,"SZENE"); pT->SetTraceAtt(4154,"3D-Kurve"); pT->SetTraceAtt(10050,X,1000L); // X explizit pT->SetTraceAtt(10051,Y,1000L); // Y explizit pT->SetTraceAtt(10052,-1.0,0.002,1000L); // Z implizit pT->SetTraceAtt(6250,1,50,0,0,0); // alle Projektionen pT->SetTraceAtt(6251,1,100,255,0,0); pT->SetTraceAtt(6252,1,100,0,255,0); pT->SetTraceAtt(6253,1,100,0,0,255); LEG.Clear(); LEG.AddTrace(pT); return 1; } 1.2.4.6 CPaintObj CPaintObj ist die Basisklasse aller Kurventypen. In diese Klasse sind alle Attributierungsmethoden implementiert. Eine Beschreibung finden Sie auf den folgenden Seiten. Jedoch bietet diese Klasse nur für wenige allgemeine Attribute ein Interface (Diagrammbezug, Name). Die allermeisten Attribute werden von den abgeleiteten Klassen zur Verfügung gestellt. Eine Beschreibung finden Sie in den entsprechenden Kapiteln. © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 208 Methoden: · SetTraceAtt · GetTraceAtt 1.2.4.6.1 CPaintObj::GetTraceAtt Syntax: int GetTraceAtt(int int GetTraceAtt(int int GetTraceAtt(int int GetTraceAtt(int int GetTraceAtt(int int GetTraceAtt(int int GetTraceAtt(int int GetTraceAtt(int int GetTraceAtt(int int GetTraceAtt(int int GetTraceAtt(int nID,short* nVal); nID,int* nVal); nID,float* nVal); nID,double* nVal); nID,char* nVal,int nSize); nID,char* nName,int* nHeight,int* Mode,int* nAng); nID,int* nStyle,int* nWidth,int* nR,int* nG,int* nB); nID,int* nStyle,int* nHatch,int* nR,int* nG,int* nB); nID,int* nR,int* nG,int* nB); nID,char* face,int* symb); nID,CColorMap* pMap); Beschreibung: Die Funktion GetTraceAtt dient zum Lesen verschiedenster Attribute. Für die unterschiedlichen Typen von Attributen gibt es die Methode mit entsprechendem Header. Rückgabewert: Die Funktion liefert einen Integerwert zurück. Ist der Wert kleiner 0, ist ein Fehler aufgetreten: Wert -1 -2 -3 -4 -5 © XOn Siftware GmbH, 2008 Beschreibung allgemeiner, undefinierbarer Fehler ID-Nummer unzulässig zu lesende Daten unzulässig oder nicht definiert zu schreibender Wert außerhalb des erlaubten Bereiches unzulässiger Formatstring (bei Übergabe von Formatstrings) 209 Referenzhandbuch 1.2.4.6.2 CPaintObj::SetTraceAtt Syntax: int SetTraceAtt(int int SetTraceAtt(int int SetTraceAtt(int int SetTraceAtt(int int SetTraceAtt(int int SetTraceAtt(int int SetTraceAtt(int int SetTraceAtt(int int SetTraceAtt(int int SetTraceAtt(int int SetTraceAtt(int int SetTraceAtt(int int SetTraceAtt(int int SetTraceAtt(int int SetTraceAtt(int int SetTraceAtt(int int SetTraceAtt(int nID,short nVal); nID,int nVal); nID,float nVal); nID,double nVal); nID,char *nVal); nID,char *nName,int nHeight,int Mode,int nAng); nID,int nStyle,int nWidth,int nR,int nG,int nB); nID,int nStyle,int nHatch,int nR,int nG,int nB); nID,int nR,int nG,int nB); nID,char* face,int symb) nID,double v0,double dv,int len); nID,double* pf,int len); nID,CF8Vector* pV); nID,double v0,double dvc,double dvr,int lenc,int lenr); nID,double* pf,int lenc,int lenr); nID,CF8Matrix* pM); nID,CColorMap* pMap); Beschreibung: Die Methode SetTraceAtt dient zum Setzen verschiedenster Attribute. Da nicht alle Attribute eines Grafikelementes vom gleichen Typ sind, gibt es diese Methode mit verschiedenen Parameterleisten. Im Anschluß finden Sie eine Liste aller möglichen Parameterleisten mit der Beschreibung ihrer Parameter. Siehe auch CGrafNode::SetNodeAtt. Rückgabewert: Die Funktion liefert einen Integerwert zurück. Ist der Wert kleiner 0, ist ein Fehler aufgetreten: Wert -1 -2 -3 -4 -5 Beschreibung allgemeiner, undefinierbarer Fehler ID-Nummer unzulässig zu lesende Daten unzulässig oder nicht definiert zu schreibender Wert außerhalb des erlaubten Bereiches unzulässiger Formatstring (bei Übergabe von Formatstrings) siehe auch: · Integer · int · Float · String · Font · Stift · Füllmuster · Farben · Symbol · Vector · Matrix · ColorMap Liste möglicher Parameterwerte: © XOn Siftware GmbH, 2008 1.2 Programmierreferenz Typ ID 1153 Integer 1154 4150 4151 String 4152 4153 4154 © XOn Siftware GmbH, 2008 Bedeutung Darstellungsreferenz Dieses Attribut gibt an, bezüglich welches Typs von Koordinaten das Objekt dargestellt werden soll. Mögliche Werte sind Sichtbarkeit Mit diesem Attribut kann man das Objekt ein- oder ausblenden X-Achse Name der X-Achse, bezüglich der das Objekt gezeichnet werden soll. Dieser Parameter macht nur bei zweidimensionalen Objekten Sinn. Außerdem muß eine YAchse angegeben werden. Y-Achse Name der Y-Achse, bezüglich der das Objekt gezeichnet werden soll. Dieser Parameter macht nur bei zweidimensionalen Objekten Sinn. Außerdem muß eine XAchse angegeben werden. 2D-Szene Name der 2D-Szene, bezüglich der das Objekt gezeichnet werden soll. Dieser Parameter macht nur bei zweidimensionalen Objekten Sinn. 3D-Szene Name der 3D-Szene, bezüglich der das Objekt gezeichnet werden soll. Dieser Parameter macht nur bei dreidimensionalen Objekten Sinn. Name Dieser Name dient dazu das Objekt zu identifizieren bei einem Zugriff mit der Wertebereich 0: kein Bezug 1: Achsenpaar 2: 2D-Szene (Plane) 3: 3D- Szene 0: unsichtbar 1: sichtbar 210 211 Referenzhandbuch Methode CGraf2DNode:: GetTrace(char *Name). Weiterhin erscheint der Name in der Legende. 1.2.4.6.3 Attribute 1.2.4.6.3.1 Attribute Attribute: Mögliche Attributwerte, deren Argumenttyp, Bedeutung, zulässige Wertebereiche bzw. Werte, sowie deren Voreinstellungen finden Sie in den Beschreibungen der abgeleiteten Klassen. Die Basisklasse CPaintObj bietet nur für einige allgemeine Attribute ein Interface. Diese Attribute können von allen abgeleiteten Klassen verwendet werden. Typ ID 1153 Integer 1154 4150 String 4151 4152 Bedeutung Darstellungsreferenz Dieses Attribut gibt an, bezüglich welches Typs von Koordinaten das Objekt dargestellt werden soll. Mögliche Werte sind Sichtbarkeit Mit diesem Attribut kann man das Objekt ein- oder ausblenden X-Achse Name der X-Achse, bezüglich der das Objekt gezeichnet werden soll. Dieser Parameter macht nur bei zweidimensionalen Objekten Sinn. Außerdem muß eine YAchse angegeben werden. Y-Achse Name der Y-Achse, bezüglich der das Objekt gezeichnet werden soll. Dieser Parameter macht nur bei zweidimensionalen Objekten Sinn. Außerdem muß eine XAchse angegeben werden. 2D-Szene Name der 2D-Szene, bezüglich der das Objekt gezeichnet werden soll. Dieser Wertebereich 0: kein Bezug 1: Achsenpaar 2: 2D-Szene (Plane) 3: 3D- Szene 0: unsichtbar 1: sichtbar © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 4153 4154 212 Parameter macht nur bei zweidimensionalen Objekten Sinn. 3D-Szene Name der 3D-Szene, bezüglich der das Objekt gezeichnet werden soll. Dieser Parameter macht nur bei dreidimensionalen Objekten Sinn. Name Dieser Name dient dazu das Objekt zu identifizieren bei einem Zugriff mit der Methode CGraf2DNode:: GetTrace(char *Name). Weiterhin erscheint der Name in der Legende. 1.2.4.6.3.2 Farben Syntax: int SetTraceAtt(int nID,int nR,int nG,int nB); Beschreibung: setzt eine Farbe. Parameter: nID: ID-Nummer des Attributes (siehe Tabelle) nR: Schraffurfarbe Rotanteil (0..255) nG: Schraffurfarbe Grünanteil (0..255) nB: Schraffurfarbe Blauanteil (0..255) Hinweis: Mit der Definition von Farbwerten über die RGB-Werte stehen die gesamten 16.7 Millionen Farben eines True-Color-Systems zur Verfügung. Da es auf Systemen mit geringerer Farbauflösung zu Problemen bei der Darstellung von Mischfarben kommen kann, ist in diesem Falle die Verwendung von Systemfarben vorzuziehen. Diese werden immer korrekt dargestellt. Einige Systemfarben: Farbe Rot-Wert Grün-Wert Blau-Wert schwarz blau grün aquamarin rot lila braun grau hellgrau 0 0 128 128 0 0 128 128 192 0 128 0 128 0 128 0 128 192 © XOn Siftware GmbH, 2008 0 0 0 0 128 128 128 128 192 213 Referenzhandbuch hellblau hellgrün cyan hellrot magenta gelb weiß 0 0 0 255 255 255 255 0 255 255 0 0 255 255 255 0 255 0 255 0 255 1.2.4.6.3.3 Float Syntax: int SetTraceAtt(int nID,float nVal); Beschreibung: setzt eine Gleitkommazahl-Attribut Parameter: · nID: ID-Nummer des Attributes (siehe Tabelle) · nVal: der zu setzende Wert 1.2.4.6.3.4 Font Syntax: int SetTraceAtt(int nID,char *nName,int nHeight,int Mode,int nAng); Beschreibung: setzt ein Schriftart-Attribut Parameter: · nID: ID-Nummer des Attributes (siehe Tabelle) · nName: Name der Schriftart (z.B. "Arial"). Bitte verwenden Sie nur Truetype-Schriftarten · nHeight: Größe der Schriftart in Punkten · nMode: Bit1 fett Bit2 kursiv Bit3 unterstrichen Bit4 durchgestrichen · nAng: Winkel der Textdarstellung in Zehntel Grad (0...3600), 0 entspricht waagerechter Darstellung 1.2.4.6.3.5 Füllmuster Syntax: int SetTraceAtt(int nID,int nStyle,int nHatch,int nR,int nG,int nB); Beschreibung: setzt ein Füllmuster. Parameter: · nID: ID-Nummer des Attributes (siehe Tabelle) · nStyle: 0 = ohne Schraffur, 1 = mit Schraffur, 2: transparent · nHatch: Schraffurtyp (siehe Tabelle) · nR: Schraffurfarbe Rotanteil (0..255) · nG: Schraffurfarbe Grünanteil (0..255) © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 214 · nB: Schraffurfarbe Blauanteil (0..255) Bedeutung des Parameters nHatch: nHatch Schraffur 0 1 2 3 4 5 diagonal -45° senkrecht gekreuzt diagonal gekreuzt diagonal 45° horizontal vertikal 1.2.4.6.3.6 Integer Syntax: int SetTraceAtt(int nID,int nVal); Beschreibung: setzt ein ganzzahliges Attribut. Parameter: · nID: ID-Nummer des Attributes (siehe Tabelle) · nVal: der zu setzende Wert 1.2.4.6.3.7 Long Syntax: int SetTraceAtt(int nID,long nVal); Beschreibung: setzt einen ganzzahliges (langes) Attribut. Parameter: · nID: ID-Nummer des Attributes (siehe Tabelle) · nVal: der zu setzende Wert 1.2.4.6.3.8 Matrix Syntax: int SetTraceAtt(int int SetTraceAtt(int int SetTraceAtt(int int SetTraceAtt(int nID,double v0,double dvc,double dvr,long lenc,long lenr); nID,double* pf,int lenc,int lenr); nID,CF8Matrix* pM); nID,char* Pool); Beschreibung: Implizite Matrix: · nID: ID-Nummer des Attributes (siehe Tabelle) · v0: Anfangswert · dvc: Offset in Spaltenrichtung · dvr: Offset in Zeilenrichtung · lenc: Anzahl der Spalten · lenr: Anzahl der Zeilen Explizite Matrix: © XOn Siftware GmbH, 2008 215 Referenzhandbuch · nID: ID-Nummer des Attributes (siehe Tabelle) · pf: Zeiger auf ein Array von double- Werten. Dieses Array muß · mindestens lenc*lenr werte enthalten · lenc: Anzahl der Spalten · lenr: Anzahl der Zeilen oder · nID: ID-Nummer des Attributes (siehe Tabelle) · pM: Zeiger auf ein Objekt vom Typ CF8Matrix Matrix aus dem Datenpool: · nID: ID-Nummer des Attributes (siehe Tabelle) · Pool: Name des Datenpoolelementes vom Typ CF8Matrix 1.2.4.6.3.9 Stift Syntax: int SetTraceAtt(int nID,int nStyle,int nWidth,int nR,int nG,int nB); Beschreibung: setzt eine Linienart. Parameter: · nID: ID-Nummer des Attributes (siehe Tabelle) · nStyle: Linientyp (0..5) siehe Tabelle · nWidth: Linienstärke in Hundertstel Millimetter · nR: Linienfarbe Rotanteil (0..255) · nG: Linienfarbe Grünanteil (0..255) · nB: Linienfarbe Blauanteil (0..255) Bedeutung von Linienart-Attributen: Wert 0 1 2 3 4 5 Bedeutung keine Linie durchgezogene Linie gestrichelte Linie gepunktete Linie Strich- Punkt- Linie Strich- Punkt- Punkt- Linie Diese Linienarten lassen sich nur für Linien der Dicke 0 einstellen, Andernfalls werden die Linien durchgezogen. Im Falle einer Liniendicke von0 wird die dünnste mögliche Linie des Ausgabemediums verwendet. 1.2.4.6.3.10 String Syntax: int SetTraceAtt(int nID,char *nVal); Beschreibung: setzt ein Text-Attribut. Parameter: · nID: ID-Nummer des Attributes (siehe Tabelle) · nVal: der zu setzende Text © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 216 1.2.4.6.3.11 Symbol Syntax: int SetTraceAtt(int nID,char* face,int symb) Parameter: · nID: ID-Nummer des Attributes (siehe Tabelle) · face: Name des Fonts. Akzeptiert werden nur TrueType-Fonts · symb: Zeichen innerhalb des Fonts Beschreibung: Mit Dieser Methode können Sie beliebige Zeichen aus TrueType- Fonts als Markierungssymbole angeben. Wenn Sie Symbole möglichst schnell ausgeben möchten, dann verwenden Sie eines der Zeichen 32-47 aus dem Font X1-Sym. 1.2.4.6.3.12 Vector Syntax: int SetTraceAtt(int int SetTraceAtt(int int SetTraceAtt(int int SetTraceAtt(int nID,double v0,double dv,long len); nID,double* pf,long len); nID,CF8Vector* pV); nID,char* Pool); Beschreibung: Impliziten Vectors: · nID: ID-Nummer des Attributes (siehe Tabelle) · v0: Anfangswert · dv: Offset · len: Anzahl der Werte Expliziter Vector: · nID: ID-Nummer des Attributes (siehe Tabelle) · pf: Zeiger auf ein Array von double- Werten · len: Anzahl der Werte im Array pf oder · nID: ID-Nummer des Attributes (siehe Tabelle) · pv: Zeiger auf ein Objekt vom Typ CVector Vector aus dem Datenpool: · nID: ID-Nummer des Attributes (siehe Tabelle) · Pool: Name des Datenpoolelementes vom Typ CVector 1.2.4.7 CPPolyTrace Klicken Sie auf die Felder der Objekthierarchie für detaillierte Informationen zu den einzelnen Klassen: © XOn Siftware GmbH, 2008 217 Referenzhandbuch Methoden: · SetTraceAtt · GetTraceAtt 1.2.4.7.1 CPPolyTrace::GetTraceAtt Syntax: Für die verschiedenen Parameterleisten siehe CPaintObj::GetTraceAtt . Beschreibung: Die Liste der Attribute findet sich in CPPolyTrace::SetTraceAtt . 1.2.4.7.2 CPPolyTrace::SetTraceAtt Typ ID Integer 1240 Linienart 6240 Muster 7240 Farbe 8240 10040 Vector 10041 10042 Bedeutung Wertebereich Layout: - Bit1: 0 Winding, 1 Alternate 0,...,3 - Bit2: 0 umgandet, 1 gefüllt Polygonrand: Linienart für die Umrandung der Polygone Polygonmuster: Muster für die Füllung der Polygone Hintergrundfarbe: Hintergrundfarbe für die Füllung der Polygone Polygonkoordinaten in X- Richtung Polygonkoordinaten in Y- Richtung Längen der einzelnen Koordinatenvektoren bei PolyPolygonen Weitere Attribute siehe CPaintObj::SetTraceAtt. Beispiel: In einem X1- Dokument sind eine X-Achse Namens AX, eine Y-Achse Namens AY und eine Legende mit Namen LEG definiert. Die nachfolgende Methode zeichnet zehn gefüllte Polygone im alternierend, d.h Schnittflächen werden nicht gefüllt. int method::OnRun() { double X[1000], Y[1000]; for (int i=0;i<10;i++) for (int j=0;j<100;j++) { X[100*i+j]=i+0.5*(2+cos(j/3.183))* (0.2+i*0.1)*cos(j/15.91); © XOn Siftware GmbH, 2008 1.2 Programmierreferenz Y[100*i+j]=i+0.5*(2+cos(j/3.183))* (0.2+i*0.1)*sin(j/15.91); } CPPolyTrace *pPP=new CPPolyTrace(); pPP->SetTraceAtt(1240,3); pPP->SetTraceAtt(4154,"PolyPolygon"); pPP->SetTraceAtt(4150,"AX"); pPP->SetTraceAtt(4151,"AY"); pPP->SetTraceAtt(6240,1,0,255,0,0); pPP->SetTraceAtt(7240,1,0,255,255,255); pPP->SetTraceAtt(8240,255,0,255); //Koordinaten der Polygone in einem Array pPP->SetTraceAtt(10040,X,1000L); pPP->SetTraceAtt(10041,Y,1000L); //Einzellängen der Polygone: 100,...,100 (zehn mal) pPP->SetTraceAtt(10042,100.0,0.0,10L); LEG.Clear(); LEG.AddTrace(pPP); return 1; } 1.2.4.8 CVect2DTrace Klicken Sie auf die Felder der Objekthierarchie für detaillierte Informationen zu den einzelnen Klassen: Methoden: · SetTraceAtt · GetTraceAtt 1.2.4.8.1 CVect2DTrace::GetTraceAtt Syntax: Für die verschiedenen Parameterleisten siehe CPaintObj::GetTraceAtt . Beschreibung: Die Liste der Attribute findet sich in CVect2DTrace::SetTraceAtt . 1.2.4.8.2 CVect2DTrace::SetTraceAtt Typ ID 6210 Linienart 6211 © XOn Siftware GmbH, 2008 Bedeutung Pfeilstift: Diese Linienart wird verwendet um das Pfeilsymbol zu umranden Zentrumsstift: Wertebereich 218 219 Referenzhandbuch 7210 Muster 7211 8210 Farbe 8211 9210 Symbol 9211 10010 Vector 10011 11010 Matrix 11011 Diese Linienart wird verwendet um das Symbol an der Pfeilmitte zu umranden Pfeilmuster: Diese Muster wird verwendet um das Pfeilsymbol zu füllen Zentrumsmuster: Diese Muster wird verwendet um das Symbol an der Pfeilmitte zu füllen Pfeilfarbe: Hintergrundfarbe für das Pfeilsymbol Zentralfarbe: Hintergrundfarbe für das Symbol an der Pfeilmitte Pfeilsymbol: Dieses Symbol kann in der Größe verändert und um den Gitterpunkt rotiert werden Zentralsymbol: Dieses Symbol wird am Gitterpunkt gezeichnet. Es markiert die Pfeilmitte Koordinaten der Gitterpunkte in XRichtung Koordinaten der Gitterpunkte in YRichtung Pfeillänge in metrischen Einheiten des verwendeten Diagramms. Pfeilwinkel zur X-Achse im Bogenmaß Weitere Attribute siehe CPaintObj::SetTraceAtt . Beispiel: In einem X1- Dokument sind eine X-Achse Namens AX, eine Y-Achse Namens AY und eine Legende mit Namen LEG definiert. Die nachfolgende Methode zeichnet in das Diagramm ein Vektorfeld mit variabler Länge und Richtung ein. int method::OnRun() { int i,j; double f[10][10]; for (i=0;i<10;i++) for (j=0;j<10;j++) © XOn Siftware GmbH, 2008 1.2 Programmierreferenz f[i][j]=6.28*(i*j)/99.0; CVect2DTrace *pVT=new CVect2DTrace(); pVT->SetTraceAtt(4154,"wohin gehts"); pVT->SetTraceAtt(4150,"AX"); pVT->SetTraceAtt(4151,"AY"); pVT->SetTraceAtt(10000,0.0,1.0,10); pVT->SetTraceAtt(10001,0.0,1.0,10); pVT->SetTraceAtt(11010,0.0,0.05,0.05,10,10); pVT->SetTraceAtt(11011,f,10,10); pVT->SetTraceAtt(3210,0.8); pVT->SetTraceAtt(1213,8); pVT->SetTraceAtt(1212,50); pVT->SetTraceAtt(6210,1,0,0,0,0); pVT->SetTraceAtt(7210,0,0,0,0,0); pVT->SetTraceAtt(6211,1,0,255,0,0); pVT->SetTraceAtt(9210,"X1-Sym",68); LEG.Clear(); LEG.AddTrace(pVT); return 1; } 1.2.4.9 CWhiskTrace Klicken Sie auf die Felder der Objekthierarchie für detaillierte Informationen zu den einzelnen Klassen: Methoden: · SetTraceAtt · GetTraceAtt 1.2.4.9.1 CWhiskTrace::GetTraceAtt Syntax: Für die verschiedenen Parameterleisten siehe CPaintObj::GetTraceAtt . Beschreibung: Die Liste der Attribute findet sich in CWhiskTrace::SetTraceAtt . 1.2.4.9.2 CWhiskTrace::SetTraceAtt Typ ID 1230 Integer 1231 Float © XOn Siftware GmbH, 2008 3230 Bedeutung Wertebereich Layout: Bit 0: Intervall 0,...,3 Bit 1: Whisker Symbolgröße in [1/100 mm] Breite der Whiskerbox 220 221 Referenzhandbuch 3231 4230 4231 String 4232 4233 4234 6230 6231 Linienart 6232 6233 6234 6235 in Einheiten des verwendeten Koordinatensystems Einrückung in der Whiskermitte in [%] Name des oberen Intervallsymbols für die Legende. Wird kein Name angegeben, dann wird das Symbol nicht in der Legende beschrieben. Name des mittleren Intervallsymbols für die Legende. Wird kein Name angegeben, dann wird das Symbol nicht in der Legende beschrieben. Name des unteren Intervallsymbols für die Legende. Wird kein Name angegeben, dann wird das Symbol nicht in der Legende beschrieben. Name des oberen Whiskerfeldes für die Legende. Wird kein Name angegeben, dann wird das Symbol nicht in der Legende beschrieben. Name des unteren Whiskerfeldes für die Legende. Wird kein Name angegeben, dann wird das Symbol nicht in der Legende beschrieben. Stift für die Umrandung des oberen Intervallsymbols Stift für die Umrandung des mittleren Intervallsymbols Stift für die Umrandung des unteren Intervallsymbols Stift für die Intervallinie Stift für die Umrandung der oberen Whiskerbox Stift für die Umrandung der unteren © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 7230 7231 Muster 7232 7233 7234 8230 8231 Farbe 8232 8234 8235 9230 Symbol 9231 9232 10030 10031 10032 Vector 10033 10034 10035 10036 Whiskerbox Füllmuster für das obere Intervallsymbol Füllmuster für das mittlere Intervallsymbol Füllmuster für das untere Intervallsymbol Füllmuster für die obere Whiskerbox Füllmuster für die untere Whiskerbox Hintergrundfarbe für das obere Intervallsymbol Hintergrundfarbe für das mittlere Intervallsymbol Hintergrundfarbe für das untere Intervallsymbol Hintergrundfarbe der oberen Whiskerbox Hintergrundfarbe der unteren Whiskerbox Oberes Intervallsymbol Mittleres Intervallsymbol Unteres Intervallsymbol X- Koordinaten Untere Intervallkoordinate Mittlere Intervallkoordinate Obere Intervallkoordinate Unterer Whiskerboxwert Mittlerer Whiskerboxwert Oberer Whiskerboxwert Weitere Attribute siehe CPaintObj::SetTraceAtt. Beispiel: In einem X1- Dokument sind eine X-Achse Namens AX, eine Y-Achse Namens AY und eine Legende mit Namen LEG definiert. Die nachfolgende Methode zeichnet in das Diagramm eine Boxwhiskerkurve mit Intervall. int method::OnRun() { double v0[10],v1[10],v2[10],v3[10],v4[10],v5[10],v; int j; //Zufallsdaten erzeugen © XOn Siftware GmbH, 2008 222 223 Referenzhandbuch for (int i=0;i<10;i++) { v=10+25*ran1(&j); v0[i]=v-10*ran1(&j); v1[i]=v; v2[i]=v+10*ran1(&j); v+=6*ran1(&j)-3; v3[i]=v-8*ran1(&j); v4[i]=v; v5[i]=v+8*ran1(&j); } CWhiskTrace* pWT=new CWhiskTrace(); pWT->SetTraceAtt(1230,3); pWT->SetTraceAtt(1231,200); pWT->SetTraceAtt(3230,7.0); pWT->SetTraceAtt(4154,"Whisker&Intervall"); //Diagrammbezug pWT->SetTraceAtt(4150,"AX"); // X-Achse pWT->SetTraceAtt(4151,"AY"); // Y-Achse pWT->SetTraceAtt(4230,"Maximalwert"); pWT->SetTraceAtt(4231,"Mittelwert"); pWT->SetTraceAtt(4232,"Minimalwert"); pWT->SetTraceAtt(4233,"50-90%"); pWT->SetTraceAtt(4234,"10-50%t"); //Daten übergeben pWT->SetTraceAtt(10030,10.0,10.0,10L); pWT->SetTraceAtt(10031,v0,10L); pWT->SetTraceAtt(10032,v1,10L); pWT->SetTraceAtt(10033,v2,10L); pWT->SetTraceAtt(10034,v3,10L); pWT->SetTraceAtt(10035,v4,10L); pWT->SetTraceAtt(10036,v5,10L); //Layout von Intervall und Box pWT->SetTraceAtt(6234,1,0,255,0,0); pWT->SetTraceAtt(7234,0,0,255,255,0); pWT->SetTraceAtt(8234,255,255,255); pWT->SetTraceAtt(6235,1,0,0,0,255); pWT->SetTraceAtt(7235,0,1,255,0,255); pWT->SetTraceAtt(8235,255,255,255); pWT->SetTraceAtt(9230,"X1-Sym",39); pWT->SetTraceAtt(6230,1,0,128,0,0); pWT->SetTraceAtt(7230,0,0,255,192,192); pWT->SetTraceAtt(9231,"X1-Sym",44); pWT->SetTraceAtt(6231,1,0,0,128,0); pWT->SetTraceAtt(7231,0,0,192,255,192); pWT->SetTraceAtt(9232,"X1-Sym",38); pWT->SetTraceAtt(6232,1,0,0,0,128); pWT->SetTraceAtt(7232,0,0,192,192,255); pWT->SetTraceAtt(6233,1,50,255,0,0); //Kurve an Legende übergeben LEG.Clear(); LEG.AddTrace(pWT); return 1; } © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 1.2.5 224 Datenelemente Klicken Sie auf die Felder der Hierarchie für detaillierte Informationen zu den einzelnen Klassen: Dies ist die Objekthierarchie der Klassen des Dateninterfaces. Die Basisklasse ist CNamedObj. Alle anderen Klassen sind von ihr abgeleitet. Alle abgeleiteten Klassen besitzen insbesondere alle Methoden der Basisklassen, von denen sie abstammen. So kann z.B. der Name eines jeden Poolelementes mit der Methode SetName gesetzt werden. Diese Methode ist in der Klasse CNamedObj vereinbart. 1.2.5.1 CText 1.2.5.1.1 CText::GetData Syntax: char *GetData(); Beschreibung: liefert einen Zeiger auf den Textbuffer eines Text- Elementes. Achtung, der Zeiger ist temporär, er ist nur gültig bis zur nächsten Ausführung einer SetData- Methode des Textelementes. Legen Sie also umgehend eine Kopie des Strings an, falls Sie später auf seinen Inhalt zugreifen wollen Beispiel: © XOn Siftware GmbH, 2008 225 Referenzhandbuch int method::OnRun() { CText* pTxt; pTxt=GetPoolText(0); if (pTxt) { char buf[100]; if (pTxt->GetLen()<100) //Text- Buffer kopieren strcpy(buf,pTxt->GetData()); } return 1; } 1.2.5.1.2 CText::GetLen Syntax: int GetLen(); Beschreibung: Liefert die Länge des Text- Buffers. 1.2.5.1.3 CText::SetData Syntax: void SetData(char* txt); Beschreibung: kopiert den Inhalt der Variablen txt in das Textelement Beispiel: int method::OnRun() { CText Txt; char buf[100]; Txt.SetText("Hallo"); sprintf(buf,"Inhalt von Txt:%s",Txt.GetText()); Txt.SetText(buf); return 1; } 1.2.5.2 CDia Klicken Sie auf die Felder der Hierarchie für detaillierte Informationen zu den einzelnen Klassen: Die Klasse CDia verwaltet einen globalen Header und eine Liste von Kanalheadern. Jeder Header besitzt eine Reihe von Items, die durch ihre Nummer gekennzeichnet sind. Eine Liste der Items findet sich in den folgenden Tabellen. © XOn Siftware GmbH, 2008 1.2 Programmierreferenz Allgemeine Dateiheadereinträge: Item 101 102 103 104 105 110 111 130 131 132 133 Bedeutung Datensatzbezeichnung Datensatzkommentar Sachbearbeiter Datum Uhrzeit Zeitformat bei ASCII-Dateien Wert der NoValues Reserve1 Reserve2 Reserve3 Reserve4 Datentyp char* char* char* char* char* char* float char* char* char* char* Kanalbeschreibung Kanalname Kommentar Kanalart Dateiname Speicherart Datentyp Anzahl der Werte Zeiger auf 1.Wert Offset 1) lokaler ASCII- Zeiger Separator Dezimalzeichen Exponentialzeichen Startwert/ Offset Schrittweite/Kalibrierfaktor Minimalwert des Kanals Maximalwert des Kanals NoValues 2) Darstellungsform 3) Reserve 1 Reserve 2 Datentyp char* char* long char* long long long long long long char char char float float float float long long char* char* Kanalheaderdaten: Item 200 201 210 211 213 214 220 221 222 223 230 231 232 240 241 250 251 252 260 300 301 1) Offset für ASCII- Blockdateien mit Separator CR/LF oder Binär- Blockdateien mit Header 2) Kenner ob der Kanal NoValues enthält. 3) Darstellungsform der Daten an der Oberfläche. Für einige Items besitzen die Werte eine spezielle Bedeutung: Kanalart (210): · 0: Implizit · 1: Explitit © XOn Siftware GmbH, 2008 226 227 Referenzhandbuch Speicherart (213): · 0: Kanalweise · 1: Blockweise Datentyp (214): · 0: INT16 · 1: REAL48 · 2: ASCII · 3: WORD8 · 4: WORD16 · 5: INT32 · 6: REAL32 · 7: MSREAL32 · 8: TWOC12 · 9: TWOC16 Methoden : CDia::Read CDia::GoFirst CDia::GoNext CDia::GoTo CDia::GetItem CDia::SetItem CDia::GetData 1.2.5.2.1 CDia::GetData Syntax: double* GetData(); Beschreibung: Liest die zum aktuell fokusierten Kanal gehörenden Daten und liefet einen Zeiger auf diese zurück. Rückgabewert: Zeiger auf die Daten oder Null- Zeiger, falls die Operation nicht erfolgreich war. Beispiel: Das folgende Beispiel erfragt einen Dateinamen. Die angegebene Datei wird als Dia- Headerfile gelesen und die beiden ersten Kanäle des Headers werden als X- und Y- Koordinaten eingelesen und in ein Diagram eingetragen. int method::OnRun() { double *Y; long len; CDia dia; char name[100],buf[100]; CVector VX,VY; //Dia- Headerdatei laden if (FileDialog(1,name,"","*.dat")!=5) return 1; if (!dia.Read(name)) return 1; if (!dia.GoFirst()) return 1; dia.GetItem(202,name); sprintf(buf,"%.0f %s",name); XAchse.SetNodeAtt(4201,buf); dia.GetItem(220,&len); VX.SetData((int)len,dia.GetData()); double xmin= VX.Min(); © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 228 double xmax= VX.Max(); if (!dia.GoNext()) return; dia.GetItem(202,name); sprintf(buf,"%.0f %s",name); YAchse.SetNodeAtt(4201,buf); dia.GetItem(220,&len); VY.SetData((int)len,dia.GetData()); double ymin= VY.Min(); double ymax= VY.Max(); Graf.Clear(); XAchse.SetPhys(xmin,xmax); YAchse.SetPhys(ymin,ymax); dia.GetItem(200,name); Graf.AddTrace("XAchse","YAchse",name); Graf.SetTraceData(0,&VX); Graf.SetTraceData(1,&VY); Graf.SetNodeAtt(6150,1,0,255,0,0); //Farbe setzen return 1; } 1.2.5.2.2 CDia::GetItem Syntax: int CDia::GetItem(int int CDia::GetItem(int int CDia::GetItem(int int CDia::GetItem(int itemNr,char* result); itemNr,long* result); itemNr,float* result); itemNr,double* result); Parameter: itemNr: Nummer des Dia- Items result: Ergebnisbufferzeiger Beschreibung: Liest einen Item aus dem Dia- Header, falls 99<itemNr<200 oder aus dem aktuell focusierten Kanalheader, falls 200<=itemNr<303. Je nach Item muß ein Ergebniszeiger von geeignetem Typ verwendet werden. Auskunft über den Ergebnistyp geben die Tabellen am Anfang des Kapitels. Rückgabewert: · 0: OK · -1: unzulässige Item- Nummer oder unzulässiger Ergebnistyp · -2: kein Kanal fokusiert (z.B. bei leerer Kanalliste) · -3: DiaHeader nicht definiert 1.2.5.2.3 CDia::GoFirst Syntax: int GoFirst(); Beschreibung: Legt den Focus auf den ersten Kanalheader. Die Methoden GetItem, SetItem und GetData beziehen sich auf den jeweils fokusierten Kanal. Rückgabewert: 1 falls mindestens ein Kanal in der Kanalliste aufgeführt ist, sonst 0. © XOn Siftware GmbH, 2008 229 Referenzhandbuch 1.2.5.2.4 CDia::GoNext Syntax: int GoNext(); Beschreibung: Legt den Focus auf den nächsten Kanalheader. Die Methoden GetItem, SetItem und GetData beziehen sich auf den jeweils fokusierten Kanal. Rückgabewert: 1 falls erfolgreich, 0 wenn das Ende der Kanalliste überschritten ist. 1.2.5.2.5 CDia::GoTo Syntax: int GoTo(char *name); Parameter: · name: Kanalname Beschreibung: Fokusiert den Kanal mit Namen name. Die Methoden GetItem, SetItem und GetData beziehen sich auf den jeweils fokusierten Kanal. Rückgabewert: 1 falls ein Kanal mit dem gewünschten Name vorhanden ist, sonst 0. 1.2.5.2.6 CDia::Read Syntax: int Read(char* name); Parameter: · name: Dateiname Beschreibung: Liest eine Dia- Headerdatei des betreffenden Namens ein. Rückgabewert: 1 falls OK, sonst 0. Beispiel: int method::OnRun() { CDia DiaHeader; DiaHeader.Read("C:\\Daten\\Messhead.dat"); return 1; } 1.2.5.2.7 CDia::SetItem Syntax: int CDia::SetItem(int int CDia::SetItem(int int CDia::SetItem(int int CDia::SetItem(int int CDia::SetItem(int itemNr,char value); itemNr,char* value); itemNr,long value); itemNr,float value); itemNr,double value); Parameter: © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 230 · itemNr : Nummer des Dia- Items · value: Wert, der gesetzt werden soll Beschreibung: Schreibt einen Item in den Dia- Header, falls 99<itemNr<200 oder in den aktuell focusierten Kanalheader, falls 200<=itemNr<303. Auskunft über den Ergebnistyp geben die Tabellen am Anfang des Kapitels. Rückgabewert: · 0: OK · -1: unzulässige Item- Nummer oder unzulässiger Wertetyp · -2: kein Kanal fokusiert (z.B. bei leerer Kanalliste) · -3: DiaHeader nicht definiert 1.2.5.3 CODBC Klicken Sie auf die Felder der Hierarchie für detaillierte Informationen zu den einzelnen Klassen: Diese Klasse stellte Methoden zum Zugriff auf ODBC-Datenbanken zur Verfügung. Es können aus einer Datenbank Tabellen selektiert werden, und aus einer selektierten Tabelle Spalten als PoolVektoren eingelesen werden. Die Methoden dieser Klasse stellen nur grundlegende Datenbankfunktionen zur Verfügung. Für volle ODBC- und SQL-Unterstützung können sie von der XOn Software GmbH eine zusätzliche Datenbank-Bibliothek beziehen. Methoden : · CODBC::GetDSN · CODBC::SetDSN · CODBC::Open · CODBC::Close · CODBC::GoFirstTable · CODBC::GoNextTable · CODBC::GetTableName · CODBC::GetNrCols · CODBC::GetColumnName · CODBC::GetColumnType · CODBC::LoadColumn 1.2.5.3.1 CODBC::Close Syntax: void Close(); Beschreibung: Schließt die mit dem ODBC-Datenpoolelement verknüpfte ODBC-Datenbank. 1.2.5.3.2 CODBC::GetColumnName Syntax: int GetColumnName(int Nr, char* Buf, int Size); Parameter: © XOn Siftware GmbH, 2008 231 Referenzhandbuch · Nr: Nummer der Spalte · Buf: Buffer, in den der Name der Spalte kopiert wird · Size: maximal zu kopierende Zeichen (Größe des Buffers) Beschreibung: Liefert den Namen der mit Nr spezifizierten Spalte der aktuell fokusierten Tabelle der mit dem ODBC-Datenpoolelement verknüpften ODBC-Datenbank und kopiert ihn in den String-Buffer Buf. Rückgabewert: <0 Fehler bei der Ermittlung des Spaltennamens >=0 Operation erfolgreich (Patient tot) 1.2.5.3.3 CODBC::GetColumnType Syntax: int GetColumnType(int Nr, int* Type); Parameter: Nr: Nummer der Spalte Type: Buffer, in den der Typ der Spalte kopiert wird Beschreibung: Liefert den Typ der mit Nr spezifizierten Spalte der aktuell fokusierten Tabelle der mit dem ODBCDatenpoolelement verknüpften ODBC-Datenbank. Rückgabewert: · <0 Fehler bei der Ermittlung des Spaltennamens · >=0 Operation erfolgreich (Patient tot) 1.2.5.3.4 CODBC::GetDSN Syntax: void GetDSN(char *Buf, int Size); Parameter: · Buf : Buffer, in den der Name der Datenbank kopiert wird · Size: maximal zu kopierende Zeichen (Größe des Buffers) Beschreibung: Liefert den Namen der ODBC-Datenbank, die mit dem Datenpoolelement verknüpft ist und kopiert ihn in den String-Buffer Buf. 1.2.5.3.5 CODBC::GetNrCols Syntax: int GetNrCols(int* Buf); Parameter: · Buf: Buffer, in den die Anzahl der Spalten kopiert wird Beschreibung: Liefert die Anzahl der Spalten in der aktuell fokusierten Tabelle der mit dem ODBCDatenpoolelement verknüpften ODBC-Datenbank und kopiert ihn in den Integer-Buffer Buf. Rückgabewert: · <0 Fehler bei der Ausführung · >=0 Operation erfolgreich (Patienrt tot) © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 232 1.2.5.3.6 CODBC::GetTableName Syntax: int GetTableName(char* Buf, int Size); Parameter: · Buf: Buffer, in den der Name der Tabelle kopiert wird · Size: maximal zu kopierende Zeichen (Größe des Buffers) Beschreibung: Liefert den Namen der aktuell fokusierten Tabelle der mit dem ODBC-Datenpoolelement verknüpften ODBC-Datenbank und kopiert ihn in den String-Buffer Buf. Rückgabewert: · <0 Fehler bei der Ermittlung des Tabellennamens · >=0 Operation erfolgreich (Patient tot) 1.2.5.3.7 CODBC::GoFirstTable Syntax: int GoFirstTable(); Beschreibung: Positioniert den Fokus auf die erste Tabelle der mit dem ODBC-Datenpoolelement verknüpften ODBC-Datenbank. Rückgabewert: · <0 Fehler beim positionieren · >=0 Operation erfolgreich (Patient tot) 1.2.5.3.8 CODBC::GoNextTable Syntax: int GoNextTable(); Beschreibung: Positioniert den Fokus auf die nächste Tabelle der mit dem ODBC-Datenpoolelement verknüpften ODBC-Datenbank. Rückgabewert: · <0 Fehler beim positionieren · >=0 Operation erfolgreich (Patienrt tot) 1.2.5.3.9 CODBC::LoadColumn Syntax: int GetColumnType(int Nr, char* Name); Parameter: · Nr: Nummer der Spalte · Name: Name des Vektors im Datenpool Beschreibung: Lädt die mit Nr spezifizierte Spalte der aktuell fokusierten Tabelle der mit dem ODBCDatenpoolelement verknüpften ODBC-Datenbank als Pool -Vektor. Es können numerische und Datum/Zeit-Spalten geladen werden. Rückgabewert: © XOn Siftware GmbH, 2008 233 Referenzhandbuch · <0 Fehler bei der Ermittlung des Spaltennamens · >=0 Operation erfolgreich (Patient tot) 1.2.5.3.10 CODBC::Open Syntax: int Open(); Beschreibung: Öffnet die mit dem ODBC-Datenpoolelement verknüpfte ODBC-Datenbank. Wurde mit SetDSN keine ODBC-Datenbank verknüpft wird der ODBC-Dialog geöffnet. Rückgabewert: · <0 Fehler beim öffnen der ODBC-Datenbank · >=0 Operation erfolgreich (Patient tot) 1.2.5.3.11 CODBC::SetDSN Syntax: void SetDSN(char* Value); Parameter: · Value : Buffer, der den Namen der Datenbank enthält Beschreibung: Ordnet dem ODBC-Datenpoolelement den Namen der ODBC-Datenbank Value zu. 1.2.5.4 CI4Vector Klicken Sie auf die Felder der Hierarchie für detaillierte Informationen zu den einzelnen Klassen: Methoden: · CI4Vector::Append · CI4Vector::Copy · CI4Vector::Edit · CI4Vector::FreeExtra · CI4Vector::GetAt · CI4Vector::GetSize · CI4Vector::GetUpperBound · CI4Vector::InsertAt · CI4Vector::Min · CI4Vector::Max · CI4Vector::RemoveAll · CI4Vector::RemoveAt · CI4Vector::SetAt · CI4Vector::SetAtGrow · CI4Vector::SetSize · CI4Vector::GetData · CI4Vector::SetData · CI4Vector::Sort · CI4Vector::MinMax © XOn Siftware GmbH, 2008 1.2 Programmierreferenz · CI4Vector::CI4Vector 1.2.5.4.1 CI4Vector::Append Header: int CI4Vector::Append(int newElement); Beschreibung: Fügt einen neuen Wert newElement an den nächstmöglichen Index in den Vector ein. Rückgabewert: Gibt den Index des eingefügten Elements zurück. Siehe auch: CI4Vector Übersicht | Hierarchie 1.2.5.4.2 CI4Vector::CI4Vector Header: CI4Vector* CI4Vector::CI4Vector(); Beschreibung: Konstruktor. Siehe auch: CI4Vector Übersicht | Hierarchie 1.2.5.4.3 CI4Vector::Copy Header: CI4Vector* CI4Vector::Copy(); Beschreibung: Kopiert einen Vektor. Rückgabewert: Gibt Pointer auf die Kopie zurück. Siehe auch: CI4Vector Übersicht | Hierarchie 1.2.5.4.4 CI4Vector::Edit Header: int CI4Vector::Edit(char* text); Parameter: · text: Titel der Dialogbox Beschreibung: Ruft einen Dialog, der die Daten des Elementes zeigt und eine Änderung durch den Nutzer erlaubt. Rückgabewert: int-Wert, ob erfolgreich oder nicht. Siehe auch: CI4Vector Übersicht | Hierarchie © XOn Siftware GmbH, 2008 234 235 Referenzhandbuch 1.2.5.4.5 CI4Vector::FreeExtra Header: void CI4Vector::FreeExtra(); Beschreibung: Gibt Speicherplatz frei, der nicht benötigt wird, nachdem der Vector vergrössert wurde. Siehe auch: CI4Vector Übersicht | Hierarchie 1.2.5.4.6 CI4Vector::GetAt Header: int CI4Vector::GetAt(int nIndex,int* nVar); int CI4Vector::GetAt(int nIndex); Parameter: · nIndex: Intergerwert für den Index innerhalb des Vectors · nVar: Zeiger auf Ergebnisbuffer Beschreibung: · Variante 1: Kopiert den Wert des durch nIndex beschriebenen Vektorelementes in den Ergebnisbuffer nVar. Ist nIndex unzulässig, wird 0 zurückgegeben, sonst 1. · Variante 2: Es wird der Wert beim Index nIndex zurückgegeben. Rückgabewert: · Variante 1: 0, wenn nIndex unzulässig 1, sonst · Variante 2: Wert beim Index nIndex Beispiel: int method::OnRun() { CI4Vector V; V.Append(5); V.Append(7); V.Append(80); int i; int j; //Variante 1 V.GetAt(1,&i); //Variante 2 j = V.GetAt(2); printf("%i %i\n",i,j); return 1; } Siehe auch: CI4Vector Übersicht | Hierarchie 1.2.5.4.7 CI4Vector::GetSize Header: int CI4Vector::GetSize(); Beschreibung: Gibt die Grösse des Vectors zurück. Beginnt der Index bei 0, ist die Grösse um 1 grösser als der höchste Index. © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 236 Rückgabewert: Grösse als int-Wert Beispiel: int method::OnRun() { CI4Vector V; V.Append(5); V.Append(7); V.Append(80); int j; j=V.GetSize(); printf("%i \n",j); //3 return 1; } Siehe auch: CI4Vector Übersicht | Hierarchie 1.2.5.4.8 CI4Vector::GetUpperBound Header: int CI4Vector::GetUpperBound(); Beschreibung: gibt den momentan größten Index zurück. Beispiel: int method::OnRun() { CI4Vector V; V.Append(5); V.Append(7); V.Append(80); int j; j=V.GetUpperBound(); printf("%i \n",j); return 1; } Siehe auch: CI4Vector Übersicht | Hierarchie 1.2.5.4.9 CI4Vector::InsertAt Header: int CI4Vector::InsertAt(int nIndex, CI4Vector* vVec); int CI4Vector::InsertAt(int nIndex,int newElement,int nCount = 1); Parameter: · nIndex: Index, ab dem neu eingefügt werden soll. Darf auch größer sein, als der Wert, den GetUpperBound() liefert. · vVec: Zeiger auf den Vector, dessen Elemente kopiert werden sollen. · newElement: das Element im Vector, das ersetzt werden soll. · nCount: die Anzahl, wie oft das newElement in den Vector eingefügt werden soll. DEFAULT 1 mal. Beschreibung: © XOn Siftware GmbH, 2008 237 Referenzhandbuch · Variante 1: Ab dem Index nIndex sollen die Werte des Vectors vVec eigefügt werden. · Variante 2: Ab dem Index nIndex soll der Wert newElement nCount mal in den Vector eingefügt werden. Im Gegensatz zur SetAt()-Methode werden hier die Elemente innerhalb des Vectors geshiftet. Rückgabewert: Variante 1: zurückgegeben wird die Anzahl der neu eingefügten Elemente. Beispiel: int method::OnRun() { CI4Vector V,W,*X; V.Append(6); V.Append(7); V.Append(12); W.Append(120); W.Append(90); W.Append(130); W.Append(130); W.Append(130); W.Append(130); W.Append(130); W.Append(130); W.Append(130); W.Append(130); X=&W; int i,j; //Variante 1 i = V.InsertAt(2,X); j = V.GetUpperBound(); printf("%i %i\n",i,j); return 1; } Siehe auch: CI4Vector Übersicht | Hierarchie 1.2.5.4.10 CI4Vector::Min Header: int CI4Vector::Min(); Beschreibung: Min liefert das kleinste Element im Vector. Rückgabewert: Minimum als int-Wert. Siehe auch: CI4Vector Übersicht | Hierarchie 1.2.5.4.11 CI4Vector::Max Header: int CI4Vector::Max(); Beschreibung: Max liefert das wertmässig grösste Element im Vector. © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 238 Rückgabewert: Maximum als int-Wert. Siehe auch: CI4Vector Übersicht | Hierarchie 1.2.5.4.12 CI4Vector::RemoveAll Header: void CI4Vector::RemoveAll(); Beschreibung: Entfernt alle Werte aus dem Vector. Ist der Vector schon leer, funktioniert die Methode auch. Beispiel: int method::OnRun() { CI4Vector V; V.Append(5); V.Append(7); V.Append(80); int j; int i; V.RemoveAll(); V.Append(90); j = V.GetAt(9,&i); printf("%i \n",j); return 1; } Siehe auch: CI4Vector Übersicht | Hierarchie 1.2.5.4.13 CI4Vector::RemoveAt Header: void CI4Vector::RemoveAt(int nIndex,int nCount); Parameter: · nIndex: ein Integerindex, der grösser 0 ist und kleiner als der Wert, den GetUpperBound liefert. · nCount: Anzahl der zu entfernenden Elemente. Beschreibung: Entfernt ein oder mehrere Elemente im Vector, beginnend bei nIndex. Dabei werden die Elemente, die nach dem(n) zu entfernenden Element(en) stehen, nach vorne geshiftet. Der Upper-Bound Index wird dekrementiert, aber es wird kein Speicher freigegeben. Beispiel: int method::OnRun() { CI4Vector V; V.Append(5); V.Append(7); V.Append(80); V.Append(90); V.Append(3); V.Append(5); int j; V.RemoveAt(1,2); © XOn Siftware GmbH, 2008 239 Referenzhandbuch j = V.GetUpperBound(); //3 printf("%i \n",j); return 1; } Siehe auch: CI4Vector Übersicht | Hierarchie 1.2.5.4.14 CI4Vector::SetAt Header: void CI4Vector::SetAt(int nIndex,int newElement); Parameter: · nIndex: Index im Vector · newElement: neuer Integerwert, der den alten am Index nIndex ersetzt. Beschreibung: Am Index nIndex wird ein neuer Wert newElement eingesetzt, dabei wird der alte Wert überschrieben. SetAt() sorgt nicht dafür, dass der Vector wächst. Um dies zu erreichen, dient die Funktion SetAtGrow(). Beispiel: int method::OnRun() { CI4Vector V; V.Append(5); V.Append(7); V.Append(80); V.SetAt(1,150); int j; j=V.GetAt(1); printf("%i \n",j); return 1; } Siehe auch: CI4Vector Übersicht | Hierarchie 1.2.5.4.15 CI4Vector::SetAtGrow Header: void CI4Vector::SetAtGrow(int nIndex ,int newElement); Parameter: · nIndex: Index grösser gleich 0 · newElement: neu einzufügender Wert, NULL ist auch erlaubt. Beschreibung: Das newElement wird an den entsprechenden nIndex eingefügt. Der Vector wächst automatisch, wenn notwendig. Der Upper-Bound wird inkrementiert. Beispiel: int method::OnRun() { CI4Vector V; V.Append(5); © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 240 V.Append(7); V.Append(80); V.SetAtGrow(3,150); V.SetAtGrow(5,1509); int j; j=V.GetAt(5); printf("%i \n",j); return 1; } Siehe auch: CI4Vector Übersicht | Hierarchie 1.2.5.4.16 CI4Vector::SetSize Header: void CI4Vector::SetSize(int nNewSize,int nGrowBy=-1); Parameter: · nNewSize: neue Größe des Vectors (Anzahl Elemente); muss größer oder gleich 0 sein. · nGrowBy: minimale Anzahl der Einschub-Elemente, die belegt werden müssen, wenn eine Vergrösserung notwendig ist. DEFAULT -1 Beschreibung: Legt die Größe eines leeren oder bereits existierende Vectors fest, reserviert Speicher, wenn nötig. Ist die neue Größe kleiner als die alte, wird der Vector verkleinert. Unbenötigter Speicher wird freigegeben. Es empfielt sich, diese Funktion zu verwenden, bevor der Vector benutzt wird. Wird SetSize() nicht verwendet, wird beim Hinzufügen von Elementen umverteilt und kopiert. Häfiges Umverteilen und Kopieren sind unrationell und fragentieren den Speicher. Wird für nGrowBy der DEFAULT-Wert -1 benutzt, wird Speicher so reserviert, dass Fragmentierung vermieden wird. Siehe auch: CI4Vector Übersicht | Hierarchie 1.2.5.4.17 CI4Vector::GetData Header: int* CI4Vector::GetData(); Beschreibung: Diese Funktion ermöglicht direkten Zugriff auf die Elemente des Vectors. Wenn es keine Elemente gibt, wird 0 zurückgegeben. Direkter Zugriff auf die Vectorelemente ermöglicht schnelleres Arbeiten, allerdings wirken sich alle Fehler direkt auf den Vector aus. Rückgabewert: Pointer auf ein Vectorelement. Siehe auch: CI4Vector Übersicht | Hierarchie © XOn Siftware GmbH, 2008 241 Referenzhandbuch 1.2.5.4.18 CI4Vector::SetData Header: int CI4Vector::SetData(int len,int val); int CI4Vector::SetData(int len,int* pval); Parameter: · len: gewünschte Vektorlänge. · val: Einzelwert zur Vorbelegung · pval: Array von Werten zur Vorbelegung Beschreibung: Variante 1: es wird eine Vectorlänge len festgelegt und der Wert val hinzugefügt. Variante 2: es wird eine Vectorlänge len festgelegt und Werte aus dem Vector pval hinzugefügt. Rückgabewert: 1 wenn erfolgreich. Siehe auch: CI4Vector Übersicht | Hierarchie 1.2.5.4.19 CI4Vector::MinMax Header: int CI4Vector::MinMax(int* nMin,int* nMax); Parameter: · nMin: Zeiger auf minimalen Wert im Vector · nMax: Zeiger auf maximalen Wert im Vector Beschreibung: Nach Aufruf der Funktion zeigt nMin auf den minimalen Wert im Vector, nMax auf den maximalen Wert im Vector. Rückgabewert: 0, wenn nicht erfolgreich 1, wenn erfolgreich Beispiel: int method::OnRun() { CI4Vector V; int a,b,*i,*j; a = 9; b = 6; i = &a; j = &b; V.Append(144); V.Append(4); V.Append(54); V.Append(2); V.Append(90); int k; k=V.MinMax(i,j); printf("%i %i %i \n",*i,*j,k); return 1; } Siehe auch: CI4Vector Übersicht | Hierarchie © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 242 1.2.5.4.20 CI4Vector::Sort Header: int CI4Vector::Sort(int flag); Parameter: flag: typ int Bedeutung von flag Bezeichner Wert SORT_DESC 1 Beschreibung Sortierung in fallender Reihenfolge Beschreibung: Diese Methode sortiert die Elemente des CI4Vectors. Ist das Flag SORT_DESC gesetzt, erfolgt die Sortierung absteigend, sonst aufsteigend. Beispiel: int method::OnRun() { CI4Vector V; V.Append(4); V.Append(6); V.Append(33); V.Append(77); int j; j=V.Sort(CI4Vector::SORT_DESC); V.Edit(""); return 1; } Siehe auch: CI4Vector Übersicht | Hierarchie 1.2.5.5 CF4Vector Klicken Sie auf die Felder der Hierarchie für detaillierte Informationen zu den einzelnen Klassen: Methoden: · CF4Vector::Append · CF4Vector::Copy · CF4Vector::Edit · CF4Vector::FreeExtra · CF4Vector::GetAt · CF4Vector::GetSize · CF4Vector::GetUpperBound · CF4Vector::InsertAt · CF4Vector::Min · CF4Vector::Max · CF4Vector::RemoveAll · CF4Vector::RemoveAt · CF4Vector::SetAt · CF4Vector::SetAtGrow · CF4Vector::SetSize © XOn Siftware GmbH, 2008 243 Referenzhandbuch · · · · · CF4Vector::GetData CF4Vector::SetData CF4Vector::Sort CF4Vector::MinMax CF4Vector::CF4Vector 1.2.5.5.1 CF4Vector::Append Header: int CF4Vector::Append(float newElement); Beschreibung: Fügt einen neuen float-Wert newElement an den nächstmöglichen Index in den Vector ein. Rückgabewert: Gibt den Index des eingefügten Elements zurück. Beispiel: int method::OnRun() { CF4Vector F; float f = 6.001; int i = F.Append(f); printf("%i\n",i); return 1; } Siehe auch: CF4Vector Übersicht | Hierarchie 1.2.5.5.2 CF4Vector::CF4Vector Header: CF4Vector* CF4Vector::CF4Vector(); Beschreibung: Konstruktor. Siehe auch: CF4Vector Übersicht | Hierarchie 1.2.5.5.3 CF4Vector::Copy Header: CF4Vector* CF4Vector::Copy(); Beschreibung: Kopiert einen Vector. Rückgabewert: Gibt Pointer auf die Kopie zurück. Siehe auch: CF4Vector Übersicht | Hierarchie © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 244 1.2.5.5.4 CF4Vector::Edit Header: int CF4Vector::Edit(char* text); Parameter: text: Titel der Dialogbox Beschreibung: Ruft einen Dialog, der die Daten des Elementes zeigt und eine Änderung durch den Nutzer erlaubt. Rückgabewert: int-Wert, ob erfolgreich oder nicht. Siehe auch: CF4Vector Übersicht | Hierarchie 1.2.5.5.5 CF4Vector::FreeExtra Header: void CF4Vector::FreeExtra(); Beschreibung: Gibt Speicherplatz frei, der nicht benötigt wird, nachdem der Vector vergrössert wurde. Siehe auch: CF4Vector Übersicht | Hierarchie 1.2.5.5.6 CF4Vector::GetAt Header: int CF4Vector::GetAt(int nIndex,float* nVar); float CF4Vector::GetAt(int nIndex); Parameter: · nIndex: Intergerwert für den Index innerhalb des Vectors · nVar: Zeiger auf Ergebnisbuffer Beschreibung: · Variante 1: Kopiert den Wert des durch nIndex beschriebenen Vektorelementes in den Ergebnisbuffer nVar. Ist nIndex unzulässig, wird 0 zurückgegeben, sonst 1. · Variante 2: Es wird der Wert beim Index nIndex zurückgegeben. Rückgabewert: Variante 1: 0, wenn nIndex unzulässig 1, sonst Variante 2: Wert beim Index nIndex Siehe auch: CF4Vector Übersicht | Hierarchie 1.2.5.5.7 CF4Vector::GetData Header: float* CF4Vector::GetData(); Beschreibung: Diese Funktion ermöglicht direkten Zugriff auf die Elemente des Vectors. Wenn es keine Elemente gibt, wird 0 zurückgegeben. © XOn Siftware GmbH, 2008 245 Referenzhandbuch Direkter Zugriff auf die Vectorelemente ermöglicht schnelleres Arbeiten, allerdings wirken sich alle Fehler direkt auf den Vector aus. Rückgabewert: Pointer auf ein Vectorelement. Siehe auch: CF4Vector Übersicht | Hierarchie 1.2.5.5.8 CF4Vector::GetSize Header: int CF4Vector::GetSize(); Beschreibung: Gibt die Größe des Vectors zurück. Beginnt der Index bei 0, ist die Größe um 1 grösser als der höchste Index. Rückgabewert: Grösse als int-Wert. Beispiel: int method::OnRun() { CF4Vector V; float a,b,c; a=2.3; b=5,6; c=9.1; V.Append(a); V.Append(b); V.Append(c); V.Append(a*b); int j; j=V.GetSize(); printf("%i \n",j); //4 return 1; } Siehe auch: CF4Vector Übersicht | Hierarchie 1.2.5.5.9 CF4Vector::GetUpperBound Header: int CF4Vector::GetUpperBound(); Beschreibung: gibt den momentan größten Index zurück. Beispiel: int method::OnRun() { CF4Vector V; float a,b,c; a=1.1; b=2.2; c=0.56; V.Append(a); © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 246 V.Append(c); V.Append(c*c); V.Append(b); int j; j=V.GetUpperBound(); printf("%i \n",j); return 1; } Siehe auch: CF4Vector Übersicht | Hierarchie 1.2.5.5.10 CF4Vector::InsertAt Header: int CF4Vector::InsertAt(int nIndex, CF4Vector* vVec); int CF4Vector::InsertAt(int nIndex,int newElement,int nCount = 1); Parameter: · nIndex: Index, ab dem neu eingefügt werden soll. Darf auch größer sein, als der Wert, den GetUpperBound() liefert. · vVec: Zeiger auf den Vector, dessen Elemente kopiert werden sollen. · newElement: das Element im Vector, das ersetzt werden soll. · nCount: die Anzahl, wie oft das newElement in den Vector eingefügt werden soll. DEFAULT 1 mal. Beschreibung: · Variante 1: Ab dem Index nIndex sollen die Werte des Vectors vVec eigefügt werden. · Variante 2: Ab dem Index nIndex soll der Wert newElement nCount mal in den Vector eingefügt werden. Im Gegensatz zur SetAt()-Methode werden hier die Elemente innerhalb des Vectors geshiftet. Rückgabewert: Variante 1: zurückgegeben wird die Anzahl der neu eingefügten Elemente. Beispiel: int method::OnRun() { CF4Vector V,W,*X; float a,b,c,d; a=5.5; b=8.9; c=1.23; d=55.9; V.Append(a); V.Append(b); V.Append(c); W.Append(a); W.Append(a*a); W.Append(c); W.Append(d); W.Append(b); W.Append(a); W.Append(a+d); W.Append(d); W.Append(d); W.Append(b); X=&W; © XOn Siftware GmbH, 2008 247 Referenzhandbuch int i,j,k,l; float m; i = V.InsertAt(2,X); j = V.GetUpperBound(); k = W.InsertAt(10,d,8); m = W.GetAt(11); l = W.GetUpperBound(); printf("%i %i %i %i %.3f\n",i,j,k,l,(double)m); return 1; } Siehe auch: CF4Vector Übersicht | Hierarchie 1.2.5.5.11 CF4Vector::Max Header: float CF4Vector::Max(); Beschreibung: liefert den maximalen Wert des Vectors. Rückgabewert: Maximum als float. Siehe auch: CF4Vector Übersicht | Hierarchie 1.2.5.5.12 CF4Vector::Min Header: float CF4Vector::Min(); Beschreibung: liefert den minimalen Wert des Vectors. Rückgabewert: Minimum in float. Beispiel: int method::OnRun() { CF4Vector V,W,*X; float a,b,c,d; a=5.5; b=8.9; c=1.23; d=55.9; V.Append(a); V.Append(b); V.Append(c); V.Append(d); float m; m =V.Min(); printf("%.3f\n",(double)m); return 1; } Siehe auch: CF4Vector Übersicht | Hierarchie © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 248 1.2.5.5.13 CF4Vector::MinMax Header: int CF4Vector::MinMax(float* nMin,float* nMax); Parameter: · nMin: Zeiger auf minimalen Wert im Vector · nMax: Zeiger auf maximalen Wert im Vector Beschreibung: Nach Aufruf der Funktion zeigt nMin auf den minimalen Wert im Vector, nMax auf den maximalen Wert im Vector. Rückgabewert · 0, wenn nicht erfolgreich · 1, wenn erfolgreich Siehe auch: CF4Vector Übersicht | Hierarchie 1.2.5.5.14 CF4Vector::RemoveAll Header: void CF4Vector::RemoveAll(); Beschreibung: Entfernt alle Werte aus dem Vector. Ist der Vector schon leer, funktioniert die Methode auch. Siehe auch: CF4Vector Übersicht | Hierarchie 1.2.5.5.15 CF4Vector::RemoveAt Header: void CF4Vector::RemoveAt(int nIndex,int nCount); Parameter: · nIndex: ein Integerindex, der grösser 0 ist und kleiner als der Wert, den GetUpperBound liefert. · nCount: Anzahl der zu entfernenden Elemente. Beschreibung: Entfernt ein oder mehrere Elemente im Vector, beginnend bei nIndex. Dabei werden die Elemente, die nach dem(n) zu entfernenden Element(en) stehen, nach vorne geshiftet. Der Upper-Bound Index wird dekrementiert, aber es wird kein Speicher freigegeben. Beispiel: int method::OnRun() { CF4Vector V; float a,b,c; a=1.2; b=45.2; c=9.5; V.Append(a); V.Append(b); V.Append(c); V.Append(c); V.Append(b); V.Append(a); int j; © XOn Siftware GmbH, 2008 249 Referenzhandbuch V.RemoveAt(1,2); j = V.GetUpperBound(); //3 printf("%i \n",j); return 1; } Siehe auch: CF4Vector Übersicht | Hierarchie 1.2.5.5.16 CF4Vector::SetAt Header: void CF4Vector::SetAt(int nIndex ,float newElement); Parameter: · nIndex: Index im Vector · newElement: neuer Floatwert, der den alten am Index nIndex ersetzt. Beschreibung: Am Index nIndex wird ein neuer Wert newElement eingesetzt, dabei wird der alte Wert überschrieben. SetAt() sorgt nicht dafür, dass der Vector wächst. Um dies zu erreichen, dient die Funktion SetAtGrow(). Beispiel: int method::OnRun() { CF4Vector V; float f,g; f=5.56; g=4.1; V.Append(f); V.Append(f*f); V.Append(f); V.SetAt(1,g); float h; h=V.GetAt(1); printf("%f \n",(double)h); return 1; } Siehe auch: CF4Vector Übersicht | Hierarchie 1.2.5.5.17 CF4Vector::SetAtGrow Header: void CF4Vector::SetAtGrow(int nIndex,float newElement); Parameter: · nIndex: Index grösser gleich 0 · newElement: neu einzufügender Wert, NULL ist auch erlaubt. Beschreibung: Das newElement wird an den entsprechenden nIndex eingefügt. Der Vector wächst automatisch, wenn notwendig. Der Upper-Bound wird inkrementiert. Beispiel: © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 250 int method::OnRun() { CF4Vector V; float a,b; a=44.5; b=778.1; V.Append(a); V.Append(b); V.Append(a); V.SetAtGrow(3,b); V.SetAtGrow(5,b*b); float c,d; c=V.GetAt(3); d=V.GetAt(5); printf("%.2f %.2f\n",(double)c,(double)d); return 1; } Siehe auch: CF4Vector Übersicht | Hierarchie 1.2.5.5.18 CF4Vector::SetData Header: int CF4Vector::SetData(int len,float val); int CF4Vector::SetData(int len,float* pval); Parameter: · len: gewünschte Vektorlänge. · val: Einzelwert zur Vorbelegung · pval: Array von Werten zur Vorbelegung Beschreibung: Variante 1: es wird eine Vectorlänge len festgelegt und der Wert val hinzugefügt. Variante 2: es wird eine Vectorlänge len festgelegt und Werte aus dem Vector pval hinzugefügt. Rückgabewert 1 wenn erfolgreich Siehe auch: CF4Vector Übersicht | Hierarchie 1.2.5.5.19 CF4Vector::SetSize Header: void CF4Vector::SetSize(int nNewSize,int nGrowBy); Parameter: · nNewSize: neue Größe des Vectors (Anzahl Elemente); muss größer oder gleich 0 sein. · nGrowBy: minimale Anzahl der Einschub-Elemente, die belegt werden müssen, wenn eine Vergrösserung notwendig ist. DEFAULT -1 Beschreibung: Legt die Größe eines leeren oder bereits existierende Vectors fest, reserviert Speicher, wenn nötig. Ist die neue Größe kleiner als die alte, wird der Vector verkleinert. Unbenötigter Speicher wird freigegeben. © XOn Siftware GmbH, 2008 251 Referenzhandbuch Es empfielt sich, diese Funktion zu verwenden, bevor der Vector benutzt wird. Wird SetSize() nicht verwendet, wird beim Hinzufügen von Elementen umverteilt und kopiert. Häfiges Umverteilen und Kopieren sind unrationell und fragentieren den Speicher. Wird für nGrowBy der DEFAULT-Wert -1 benutzt, wird Speicher so reserviert, dass Fragmentierung vermieden wird. Siehe auch: CF4Vector Übersicht | Hierarchie 1.2.5.5.20 CF4Vector::Sort Header: void CF4Vector::Sort(int flag); Parameter: flag: typ int Bedeutung von flag Bezeichner Wert SORT_ASC 0 SORT_DESC 1 Beschreibung Sortierung in aufsteigender Reihenfolge Sortierung in fallender Reihenfolge Beschreibung: Diese Methode sortiert die Elemente des CF4Vectors. Ist das Flag SORT_DESC gesetzt, erfolgt die Sortierung absteigend, sonst aufsteigend. Beispiel: Ist das Flag SORT_DESC gesetzt, erfolgt die Sortierung absteigend, sonst aufsteigend. Beispiel: int method::OnRun() { CF4Vector V; V.Append(4.6); V.Append(6.6); V.Append(33.3); V.Append(6.6); int j; j=V.Sort(CF4Vector::SORT_DESC); V.Edit(""); return 1; } Siehe auch: CF4Vector Übersicht | Hierarchie 1.2.5.6 CDTVector Klicken Sie auf die Felder der Hierarchie für detaillierte Informationen zu den einzelnen Klassen: Methoden: · CDTVector::Append · CDTVector::Copy © XOn Siftware GmbH, 2008 1.2 Programmierreferenz · · · · · · · · · · · · · · · · · · 252 CDTVector::Edit CDTVector::FreeExtra CDTVector::GetAt CDTVector::GetSize CDTVector::GetUpperBound CDTVector::InsertAt CDTVector::Min CDTVector::Max CDTVector::RemoveAll CDTVector::RemoveAt CDTVector::SetAt CDTVector::SetAtGrow CDTVector::SetSize CDTVector::GetData CDTVector::SetData CDTVector::Sort CDTVector::MinMax CDTVector::CDTVector 1.2.5.6.1 CDTVector::Append Header: int CDTVector::Append(DATETIME newElement); Beschreibung: Fügt einen neuen DATETIME-Wert newElement an den nächstmöglichen Index in den Vector ein. Rückgabewert: Gibt den Index des eingefügten Elements zurück. Beispiel: int method::OnRun() { CDTVector C; C.Append(2.3); DATETIME f; f=C.GetAt(0); printf("%f\n",f); return 1; } Siehe auch: CDTVector Übersicht | Hierarchie 1.2.5.6.2 CDTVector::CDTVector Header: CDTVector* CDTVector::CDTVector(); Beschreibung: Konstruktor. Siehe auch: CDTVector Übersicht | Hierarchie © XOn Siftware GmbH, 2008 253 Referenzhandbuch 1.2.5.6.3 CDTVector::Copy Header: CDTVector* CDTVector::Copy(); Beschreibung: Kopiert den Vektor und liefert einen Zeiger auf die Kopie zurück. Siehe auch: CDTVector Übersicht | Hierarchie 1.2.5.6.4 CDTVector::Edit Header: int CDTVector::Edit(char* text); Parameter: · text: Titel der Dialogbox. Beschreibung: Ruft einen Dialog, der die Daten des Elementes zeigt und eine Änderung durch den Nutzer erlaubt. Rückgabewert: int-Wert, ob erfolgreich oder nicht. Siehe auch: CDTVector Übersicht | Hierarchie 1.2.5.6.5 CDTVector::FreeExtra Header: void CDTVector::FreeExtra(); Beschreibung: Gibt Speicherplatz frei, der nicht benötigt wird, nachdem der Vector vergrössert wurde. Siehe auch: CDTVector Übersicht | Hierarchie 1.2.5.6.6 CDTVector::GetAt Header: int CDTVector::GetAt(int nIndex,DATETIME* nVal); DATETIME CDTVector::GetAt(int nIndex); Parameter: · nIndex: Intergerwert für den Index innerhalb des Vectors · nVar: Zeiger auf Ergebnisbuffer vom Typ double Beschreibung: · Variante 1: Kopiert den Wert des durch nIndex beschriebenen Vektorelementes in den Ergebnisbuffer nVar. Ist nIndex unzulässig, wird 0 zurückgegeben, sonst 1. · Variante 2: Es wird der Wert beim Index nIndex zurückgegeben. Rückgabewert: Variante 1: 0, wenn nIndex unzulässig 1, sonst Variante 2: Wert beim Index nIndex © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 254 Beispiel: int method::OnRun() { CDTVector C; C.Append(2.3); C.Append(2.22); C.Append(6.76); int i; DATETIME f,g; f=C.GetAt(2); i=C.GetAt(1,&g); printf("%f %f %i\n",f,g,i); return 1; } Siehe auch: CDTVector Übersicht | Hierarchie 1.2.5.6.7 CDTVector::GetData Header: DATETIME* CDTVector::GetData(); Beschreibung: Diese Funktion ermöglicht direkten Zugriff auf die Elemente des Vectors. Wenn es keine Elemente gibt, wird 0 zurückgegeben. Direkter Zugriff auf die Vectorelemente ermöglicht schnelleres Arbeiten, allerdings wirken sich alle Fehler direkt auf den Vector aus. Rückgabewert: Pointer auf ein Vectorelement. Siehe auch: CDTVector Übersicht | Hierarchie 1.2.5.6.8 CDTVector::GetSize Header: int CDTVector::GetSize(); Beschreibung: Gibt die Größe des Vectors zurück. Beginnt der Index bei 0, ist die Größe um 1 grösser als der höchste Index. Rückgabewert: Grösse als int-Wert. Beispiel: int method::OnRun() { CDTVector V; V.Append(4.6); V.Append(6.6); V.Append(33.3); V.Append(6.6); int j; j=V.GetSize(); printf("%i \n",j); © XOn Siftware GmbH, 2008 255 Referenzhandbuch return 1; } Siehe auch: CDTVector Übersicht | Hierarchie 1.2.5.6.9 CDTVector::GetUpperBound Header: int CDTVector::GetUpperBound(); Beschreibung: gibt den momentan größten Index zurück. Beispiel: int method::OnRun() { CDTVector V; V.Append(2.2); V.Append(4.4); V.Append(54.6); V.Append(77.0); int j; j=V.GetUpperBound(); printf("%i \n",j); return 1; } Siehe auch: CDTVector Übersicht | Hierarchie 1.2.5.6.10 CDTVector::InsertAt Header: int CDTVector::InsertAt(int nIndex, CDTVector* vVec); int CDTVector::InsertAt(int nIndex,DATETIME newElement,int nCount = 1); Parameter: · nIndex: Index, ab dem neu eingefügt werden soll. Darf auch größer sein, als der Wert, den GetUpperBound() liefert. · vVec: Zeiger auf den Vector, dessen Elemente kopiert werden sollen. · newElement: das Element im Vector, das ersetzt werden soll. · nCount: die Anzahl, wie oft das newElement in den Vector eingefügt werden soll. DEFAULT 1 mal. Beschreibung: · Variante 1: Ab dem Index nIndex sollen die Werte des Vectors vVec eigefügt werden. · Variante 2: Ab dem Index nIndex soll der Wert newElement nCount mal in den Vector eingefügt werden. Im Gegensatz zur SetAt()-Methode werden hier die Elemente innerhalb des Vectors geshiftet. Rückgabewert: · Variante 1: zurückgegeben wird die Anzahl der neu eingef&ugten Elemente. Beispiel: int method::OnRun() { © XOn Siftware GmbH, 2008 1.2 Programmierreferenz CDTVector V,W,*X; V.Append(2.0); V.Append(5.5); V.Append(6.6); W.Append(2.2); W.Append(67.8); W.Append(66.6); W.Append(90.1); X=&W; int i,j,k,l; DATETIME m; i = V.InsertAt(2,X); j = V.GetUpperBound(); k = W.InsertAt(10,66.66,8); m = W.GetAt(11); l = W.GetUpperBound(); printf("%i %i %i %i %.3f\n",i,j,k,l,m); return 1; } Siehe auch: CDTVector Übersicht | Hierarchie 1.2.5.6.11 CDTVector::Max Header: DATETIME CDTVector::Max(); Beschreibung: liefert den maximalen Wert des Vectors. Rückgabewert: Maximum in DATETIME. Beispiel: int method::OnRun() { CDTVector V; V.Append(4.4); V.Append(8.0); V.Append(3.33); DATETIME max; min=V.Max(); printf("%f\n",max); return 1; } Siehe auch: CDTVector Übersicht | Hierarchie 1.2.5.6.12 CDTVector::Min Header: DATETIME CDTVector::Min(); Beschreibung: liefert den minimalen Wert des Vectors. Rückgabewert: Minimum in DATETIME. © XOn Siftware GmbH, 2008 256 257 Referenzhandbuch Beispiel: int method::OnRun() { CDTVector V; V.Append(4.4); V.Append(8.0); V.Append(3.33); DATETIME min; min=V.Min(); printf("%f\n",min); return 1; } Siehe auch: CDTVector Übersicht | Hierarchie 1.2.5.6.13 CDTVector::MinMax Header: int CF4Vector::MinMax(DATETIME* nMin,DATETIME* nMax); Parameter: · nMin: Zeiger auf minimalen Wert im Vector · nMax: Zeiger auf maximalen Wert im Vector Beschreibung: Nach Aufruf der Funktion zeigt nMin auf den minimalen Wert im Vector, nMax auf den maximalen Wert im Vector. Rückgabewert: 0, wenn nicht erfolgreich 1, wenn erfolgreich Beispiel: int method::OnRun() { DATETIME f,g; CDTVector C; C.Append(2.3); C.Append(2.22); C.Append(6.76); int i; i=C.MinMax(&f,&g); //i=C.GetAt(1,&g); printf("%f %f\n",f,g); return 1; } Siehe auch: CDTVector Übersicht | Hierarchie 1.2.5.6.14 CDTVector::RemoveAll Header: void CDTVector::RemoveAll(); Beschreibung: Entfernt alle Werte aus dem Vector. Ist der Vector schon leer, funktioniert die Methode auch. Siehe auch: © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 258 CDTVector Übersicht | Hierarchie 1.2.5.6.15 CDTVector::RemoveAt Header: void CDTVector::RemoveAt(int nIndex,int nCount); Parameter: · nIndex: ein Integerindex, der grösser 0 ist und kleiner als der Wert, den GetUpperBound liefert. · nCount: Anzahl der zu entfernenden Elemente. Beschreibung: Entfernt ein oder mehrere Elemente im Vector, beginnend bei nIndex. Dabei werden die Elemente, die nach dem(n) zu entfernenden Element(en) stehen, nach vorne geshiftet. Der Upper-Bound Index wird dekrementiert, aber es wird kein Speicher freigegeben. Beispiel: int method::OnRun() { CDTVector V; V.Append(2.2); V.Append(4.4); V.Append(22.3); V.Append(2.0); V.Append(21.1); V.Append(7.67); int j; V.RemoveAt(1,2); j = V.GetUpperBound(); printf("%i \n",j); return 1; } Siehe auch: CDTVector Übersicht | Hierarchie 1.2.5.6.16 CDTVector::SetAt Header: void CDTVector::SetAt(int nIndex,DATETIME newElement); Parameter: · nIndex: Index im Vector · newElement: neuer DATETIMEwert, der den alten am Index nIndex ersetzt. Beschreibung: Am Index nIndex wird ein neuer Wert newElement eingesetzt, dabei wird der alte Wert überschrieben. SetAt() sorgt nicht dafür, dass der Vector wächst. Um dies zu erreichen, dient die Funktion SetAtGrow(). Beispiel: int method::OnRun() { CDTVector V; V.Append(6.6); V.Append(45.5); V.Append(456.0); V.SetAt(1,2.3); DATETIME h; © XOn Siftware GmbH, 2008 259 Referenzhandbuch h=V.GetAt(1); printf("%f\n",h); return 1; } Siehe auch: CDTVector Übersicht | Hierarchie 1.2.5.6.17 CDTVector::SetAtGrow Header: void CDTVector::SetAtGrow(int nIndex,DATETIME newElement); Parameter: nIndex: Index grösser gleich 0 newElement: neu einzufügender Wert, NULL ist auch erlaubt. Beschreibung: Das newElement wird an den entsprechenden nIndex eingefügt. Der Vector wächst automatisch, wenn notwendig. Der Upper-Bound wird inkrementiert. Beispiel: int method::OnRun() { CDTVector V; V.Append(6.6); V.Append(45.5); V.Append(456.0); V.SetAtGrow(7,2.3); DATETIME h; h=V.GetAt(7); printf("%f\n",h); return 1; } Siehe auch: CDTVector Übersicht | Hierarchie 1.2.5.6.18 CDTVector::SetData Header: int CDTVector::SetData(int len,DATETIME val); int CDTVector::SetData(int len,DATETIME* pval); Parameter: len: gewünschte Vektorlänge. val: Einzelwert zur Vorbelegung pval: Array von Werten zur Vorbelegung Beschreibung: Variante 1: es wird eine Vectorlänge len festgelegt und der Wert val hinzugefügt. Variante 2: es wird eine Vectorlänge len festgelegt und Werte aus dem Vector pval hinzugefügt. Rückgabewert: 1 wenn erfolgreich Siehe auch: CDTVector Übersicht | Hierarchie © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 260 1.2.5.6.19 CDTVector::SetSize Header: void CDTVector::SetSize(int nNewSize,int nGrowBy); Parameter: · nNewSize: neue Größe des Vectors (Anzahl Elemente); muss größer oder gleich 0 sein. · nGrowBy: minimale Anzahl der Einschub-Elemente, die belegt werden müssen, wenn eine Vergrösserung notwendig ist. DEFAULT -1 Beschreibung: Legt die Größe eines leeren oder bereits existierende Vectors fest, reserviert Speicher, wenn nötig. Ist die neue Größe kleiner als die alte, wird der Vector verkleinert. Unbenötigter Speicher wird freigegeben. Es empfielt sich, diese Funktion zu verwenden, bevor der Vector benutzt wird. Wird SetSize() nicht verwendet, wird beim Hinzufügen von Elementen umverteilt und kopiert. Häfiges Umverteilen und Kopieren sind unrationell und fragentieren den Speicher. Wird für nGrowBy der DEFAULT-Wert -1 benutzt, wird Speicher so reserviert, dass Fragmentierung vermieden wird. Siehe auch: CDTVector Übersicht | Hierarchie 1.2.5.6.20 CDTVector::Sort Header: void CDTVector::SetAtGrow(int nIndex,char* newElement); Parameter: flag: typ int Bedeutung von flag Bezeichner Wert SORT_ASC 0 SORT_DESC 1 Beschreibung Sortierung in aufsteigender Reihenfolge Sortierung in fallender Reihenfolge Beschreibung: Diese Methode sortiert die Elemente des CDTVectors. Ist das Flag SORT_DESC gesetzt, erfolgt die Sortierung absteigend, sonst aufsteigend. Siehe auch: CDTVector Übersicht | Hierarchie 1.2.5.7 CF8Vector Klicken Sie auf die Felder der Hierarchie für detaillierte Informationen zu den einzelnen Klassen: Methoden : © XOn Siftware GmbH, 2008 261 Referenzhandbuch · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · CF8Vector::GetDim CF8Vector::GetData CF8Vector::SetData CF8Vector::SetAt CF8Vector::GetAt CF8Vector::Min CF8Vector::Max CF8Vector::Add CF8Vector::Sub CF8Vector::Mult CF8Vector::Div CF8Vector::Mean CF8Vector::Variance CF8Vector::Moment CF8Vector::Histogram CF8Vector::LinFit CF8Vector::PolyFit CF8Vector::ExpFit CF8Vector::AsLin CF8Vector::AsPoly CF8Vector::AsExp CF8Vector::Hanning CF8Vector::Hamming CF8Vector::Triangle CF8Vector::Blackman CF8Vector::ExactBlackman CF8Vector::BlackmanHarries CF8Vector::KaiserBessel CF8Vector::FlatTop CF8Vector::GeneralCosine CF8Vector::CosineTapered CF8Vector::Force CF8Vector::Exponential CF8Vector::FHT CF8Vector::FFT CF8Vector::IFFT CF8Vector::Power CF8Vector::Convolve CF8Vector::Sinus CF8Vector::TrianglePattern CF8Vector::Square CF8Vector::GaussWhiteNoise CF8Vector::FIRPara CF8Vector::FIR CF8Vector::IIR CF8Vector::Integral CF8Vector::Derivative CF8Vector::Copy CF8Vector::CrossPower CF8Vector::CF8Vector CF8Vector::Edit CF8Vector::FreeExtra © XOn Siftware GmbH, 2008 1.2 Programmierreferenz · · · · · · · · · · · · 262 CF8Vector::GetSize CF8Vector::GetUpperBound CF8Vector::InsertAt CF8Vector::MrqFit CF8Vector::Let CF8Vector::RemoveAll CF8Vector::RemoveAt CF8Vector::Scalarproduct CF8Vector::SetAtGrow CF8Vector::SetDim CF8Vector::SetSize CF8Vector::Sort 1.2.5.7.1 CF8Vector::Add Syntax: int Add(CF8Vector *Y); int Add(double f); Beschreibung: addiert komponentenweise diesen Vektor mit dem Vektor Y oder der Zahl f. Die neuen Werte sind also Xi +Yi oder Xi+f. Der Vektor Y muß die gleiche Dimension wie dieser Vektor haben. Das Ergebnis wird in diesem Vektor abgelegt. Rückgabewert: 0: Operation gelungen -10: unzulässiger Zeiger -11: Dimensionskonflikt Beispiel: { CF8Vector X,Y,Z; X.SetDim(100,2.0); Y.SetDim(100,1.0); Z.SetDim(99,3.0); //zwei Vektoren addieren X.Add(&Y); // Ok, Dimensionen sind gleich Y.Add(&Z); // Fehler, Dimensionskonflikt //Vektor + Zahl Y.Add(1.2); } Siehe auch: CF8Vector Übersicht | Hierarchie 1.2.5.7.2 CF8Vector::Append Synatx: int Append(CF8Vector *pV); int Append(double *pF,int nLen); Parameter: · pV: Zeiger auf den anzufügenden Vektor · pF: anzufügendes Array · nLen: Länge des anzufügenden Arrays Beschreibung: Fügt an den bestehenden Vektor den Inhalt vom Vektor pV oder dem Array pF an. © XOn Siftware GmbH, 2008 263 Referenzhandbuch Siehe auch: CF8Vector Übersicht | Hierarchie 1.2.5.7.3 CF8Vector::AsExp Syntax: int AsExp(double a,double b,double c); Parameter: · a,b,c: Parameter der Exponentialfunktion. Beschreibung: Rechnet die Werte des Vektors in eine Exponentialfunktion um. Mit dieser Funktion läßt sich besonders einfach das Ergebnis der Methode ExpFit darstellen. Die Werte xi werden umgerechnet in die Werte yi mit der Formel Siehe auch: CF8Vector Übersicht | Hierarchie 1.2.5.7.4 CF8Vector::AsLin Syntax: int AsLin(double a, double b); Parameter: · a,b: Parameter der linearen Funktion ax+b Beschreibung: Rechnet die Werte des Vektors in eine lineare Funktion um. Mit dieser Funktion läßt sich besonders einfach das Ergebnis der Methode LinFit darstellen. Die Werte xi werden umgerechnet in die Werte yi mit der Formel yi = a * xi + b Siehe auch: CF8Vector Übersicht | Hierarchie 1.2.5.7.5 CF8Vector::AsPoly Syntax: int asPoly(CF8Vector* pP); Parameter: · pP: Parameter der Polynomfunktion Beschreibung: Rechnet die Werte des Vektors in eine Polynomfunktion um. Mit dieser Funktion läßt sich besonders einfach das Ergebnis der Methode PolyFit darstellen. Die Werte xi werden umgerechnet in die Werte yi mit der Formel © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 264 Siehe auch: CF8Vector Übersicht | Hierarchie 1.2.5.7.6 CF8Vector::Blackman Syntax: int Blackman(); Beschreibung: gewichtet den Vektor mit der Blackman- Fensterfunktion. Die gewichteten Werte yi ergeben sich aus den ungewichteten Werten xi nach der Formel n ist die Länge des Vektors. Beispiel: int method::OnRun() { CF8Vector Daten; Daten.SetData(1000,1.0); Daten.Blackman(); return 1; } Rückgabewert: 0: Operation erfolgreich -1: Fehler Siehe auch: CF8Vector Übersicht | Hierarchie 1.2.5.7.7 CF8Vector::BlackmanHarries Syntax: int BlackmanHarris(); Beschreibung: gewichtet den Vektor mit der Blackman- Harries- Fensterfunktion. Die gewichteten Werte yi ergeben sich aus den ungewichteten Werten xi nach der Formel n ist die Länge des Vektors. Beispiel: int method::OnRun() { CF8Vector Daten; Daten.SetData(1000,1.0); Daten.BlackmanHarris(); return 1; } Rückgabewert: 0: Operation erfolgreich © XOn Siftware GmbH, 2008 265 Referenzhandbuch -1: Fehler Siehe auch: CF8Vector Übersicht | Hierarchie 1.2.5.7.8 CF8Vector::CF8Vector Header: CF8Vector* CF8Vector::CF8Vector(); Beschreibung: Konstruktor. Siehe auch: CF8Vector Übersicht | Hierarchie 1.2.5.7.9 CF8Vector::Convolve Syntax: int Convolve(CF8Vector *pV,CF8Vector *pResult); Parameter: · pV: Vektor, mit dem Gefaltet wird · pResult: Ergebnisvektor Beschreibung: errechnet die diskrete Faltung zwischen diesem und dem Vektor pV und legt das Ergebnis in pResult ab. Die Faltung h(t) zweier Funktionen x(t) und y(t) ist definiert als Die diskrete Implementierung der Faltung ermittelt sich nach der Formel mit n ist die Länge dieses Vektors und m ist die Länge von pV. Siehe auch: CF8Vector Übersicht | Hierarchie 1.2.5.7.10 CF8Vector::Copy Header: CF8Vector* CF8Vector::Copy(); Beschreibung: Kopiert den Vektor und liefert einen Zeiger auf die Kopie zurück. Siehe auch: CF8Vector Übersicht | Hierarchie 1.2.5.7.11 CF8Vector::CosineTapered Syntax: int CosineTapered(); Beschreibung: © XOn Siftware GmbH, 2008 1.2 Programmierreferenz Gewichtet den Vektor mit der zugespitzten Cosinus- Fensterfunktion. Die gewichteten Werte yi ergeben sich aus den ungewichteten Werten xi nach der Formel mit w = 2p i / n, m = round(n/10) und n ist die Länge des Vektors. Beispiel: int method::OnRun() { CF8Vector Daten; Daten.SetData(1000,1.0); pDaten->CosineTapered(); return 1; } Rückgabewert: 0: Operation erfolgreich -1: Fehler Siehe auch: CF8Vector Übersicht | Hierarchie 1.2.5.7.12 CF8Vector::CrossPower Header: int CF8Vector::CrossPower(CF8Vector*,CF8Vector*,CF8Vector*) Beschreibung: Rückgabewert: Beispiel: Siehe auch: CF8Vector Übersicht | Hierarchie 1.2.5.7.13 CF8Vector::Derivative Syntax: int Derivative(double h); int Derivative(double h,double left,double right); Parameter: · h: Schrittweite · left: linker Randwert (optional) · right: rechter Randwert (optional) Beschreibung: Differenziert diskret über die Werte des Vektors mit Schrittweite h. Als Näherungsformel dient für 0 <= i < n für 0 <= i < n werden die Werte left und right angegeben, so gilt X-1 = left Xn = right andernfalls gilt X-1 = Xn = 0 © XOn Siftware GmbH, 2008 266 267 Referenzhandbuch Rückgabewert: · -1: Dimension des Vektors ist zu klein · 0: Operation erfolgreich (Patient tot) Siehe auch: CF8Vector Übersicht | Hierarchie 1.2.5.7.14 CF8Vector::Div Syntax: int Div(CF8Vector *pV); int Div(double f); Beschreibung: dividiert komponentenweise diesen Vektor mit dem Vektor Y oder der Zahl f. Die neuen Werte sind also Xi /Yi oder Xi/f. Der Vektor Y muß die gleiche Dimension wie dieser Vektor haben. Das Ergebnis wird in diesem Vektor abgelegt. Rückgabewert: 0: Operation gelungen -10: unzulässiger Zeiger -11: Dimensionskonflikt Siehe auch: CF8Vector Übersicht | Hierarchie 1.2.5.7.15 CF8Vector::Edit Header: int CF8Vector::Edit(char* text); Parameter: · text: Titel der Dialogbox Beschreibung: Ruft einen Dialog, der die Daten des Elementes zeigt und eine Änderung durch den Nutzer erlaubt. Rückgabewert: int-Wert, ob erfolgreich oder nicht. Siehe auch: CF8Vector Übersicht | Hierarchie 1.2.5.7.16 CF8Vector::ExactBlackman Syntax: int ExactBlackman(); Beschreibung: gewichtet den Vektor mit der exakten Blackman- Fensterfunktion. Die gewichteten Werte yi ergeben sich aus den ungewichteten Werten xi nach der Formel n ist die Länge des Vektors. Beispiel: © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 268 int method::OnRun() { CF8Vector Daten; Daten.SetData(1000,1.0); Daten.ExaktBlackman(); return 1; } Rückgabewert: 0: Operation erfolgreich -1: Fehler Siehe auch: CF8Vector Übersicht | Hierarchie 1.2.5.7.17 CF8Vector::ExpFit Synatx: int ExpFit(CF8Vector *Y,double *a,double *b,double *c); Parameter: · Y: Y-Werte der Eingabepunkte · a: Zeiger auf einen Buffer für Parameter a (Faktor) · b: Zeiger auf einen Buffer für Parameter b (Exponent) · c: Zeiger auf einen Buffer für Parameter c (Offset) Beschreibung: Errechnet die Parameter a,b,c einer Exponentialkurve der Form f(x) = a ebx + c so, daß die Kurve möglichst nahe an den Eingabewerten liegt. Als Maß für die Güte dient mit fi = f(xi) Rückgabewert: Status der Operation. Siehe auch: CF8Vector Übersicht | Hierarchie 1.2.5.7.18 CF8Vector::Exponential Syntax: int Exponential(double f); Parameter: · f: Endwert. Beschreibung: Gewichtet den Werte des Vektors mit der allgemeinen Cosinus- Fensterfunktion. Die gewichteten Werte yi ergeben sich aus den ungewichteten Werten xi nach der Formel mit n ist die Länge des Vektors, f ist der Endwert Beispiel: © XOn Siftware GmbH, 2008 269 Referenzhandbuch int method::OnRun() { CF8Vector Daten,A; Daten.SetData(1000,1.0); Daten.Exponential(15.0); return 1; } Siehe auch: CF8Vector Übersicht | Hierarchie Rückgabewert: 0: Operation erfolgreich -1: Fehler 1.2.5.7.19 CF8Vector::FFT Syntax: int FFT(CF8Vector* pIm,CF8Vector* pResultRe,CF8Vector* pResultIm); int FFT(CF8Vector* pResultRe,CF8Vector* pResultIm); Parameter: · pIm: Imaginärteil des Signals (optional) · pResultRe: Realteil der Transformierten · pResultIm: Imaginärteil der Transformierten Beschreibung: berechnet die komplexe Fourier- Transformierte. Als Realteil der zu transformierenden Zeitreihe gelten die Werte dieses Vektors, als Imaginärteil die Werte von pIm. Wird pIm nicht angegeben (2. Variante) so werden dessen Werte als Null angenommen. Der Realteil des Ergebnisses wird in pResultRe abgelegt, der Imaginärteil in pResultIm. Ist die Länge der Ausgangsvektoren eine Zweierpotenz, so wird ein schneller Algorithmus angewendet (FFT), andernfalls ein langsamer (DFT). Die Fouriertransformierte einer Funktion x(t) ist definiert als Die diskrete Implementierung der Fourier- Transformation liefert den Ergebnisvektor Y nach der Formel Rückgabewert: 0: Operation erfolgreich -1: unzulässige Vektordimension Siehe auch: CF8Vector Übersicht | Hierarchie 1.2.5.7.20 CF8Vector::FHT Syntax: int FHT(CF8Vector* pResult); Beschreibung: berechnet die (wenn möglich schnelle) Hartley- Transformation dieses Vektors und legt das © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 270 Ergebnis im Vektor pResult ab. Die Größe des Ergebnisvektors wird nötigenfalls angepaßt. Die Hartley- Transformierte einer Funktion x(t) ist definiert als Die diskrete Implementierung der Hartley- Transformation liefert den Ergebnisvektor Y nach der Formel Die erneute Anwendung des FHT- Algorithmus auf die Transformierte liefert wieder an Ausgangsvektor. Die FHT- Transformierte ist also ihre eigene Inverse! Rückgabewert: 0: Operation erfolgreich -1: unzulässige Vektordimension Siehe auch: CF8Vector Übersicht | Hierarchie 1.2.5.7.21 CF8Vector::FIR Synatx: int FIR(CF8Vector* pPara,CF8Vector *pBuf); Parameter: · pPara: Filterparameter · pBuf: Zwischenbuffer Beschreibung: Führt mit den Werten des Vektors eine Finit- Impulse- Response- Filterung durch. Die Filterparameter werden in der Variablen pPara übergeben. Filterparameter können beispielsweise durch einen Aufruf von FIRPara ermittelt werden. Das Filtrat errechnet sich nach der Formel Der Parameter pBuf dient als Übertragsspeicher falls ein langes Signal in mehreren Schritten gefiltert werden soll. Beispiel: int method::OnRun() { CF8Vector V1,V2,Fil,Buf; //Filterparameter ermitteln Fil.FIRPara(0,0,20,1000.0,20.0,0.0); for (int j=0;j<2;j++) { //Als Signal dient ein verrauschter Sinus V1.GaussWhiteNoise(1200,0.1); V2.Sinus(1200,0.0,1.0,3.0); V2.Add(&V1); //Signal filtern (Übertrag in Buf) V2.FIR(&Fil,&Buf); } return 1; } Rückgabewert: Status. © XOn Siftware GmbH, 2008 271 Referenzhandbuch Siehe auch: CF8Vector Übersicht | Hierarchie 1.2.5.7.22 CF8Vector::FIRPara Syntax: int FIRPara(int typ,int win,int ord,double fa, double fu,double fo); Parameter: · typ: 0: Tiefpass 1: Hochpass 2: Bandpass 3: Bandsperr · win: 0: keine Fensterfunktion 1: Hanning 2: Hamming 3: Dreieck 4: Blackman 5: exakter Blackman 6: FlatTop · ord: Ordnung des Filters (ord>0) · fa: Abtastfrequenz · fu: untere Grenzfrequenz · fo: obere Grenzfrequenz (wird nur für Bandpass- und Bandsperrfilter benötigt) Beschreibung: ermittelt die Filterkoeffizienten eines idealen FIR- Filters der Ordnung ord und legt das Ergebnis in diesem Vektor ab. Rufen sie mit den so ermittelten Parametern die Methode FIR eines Signals, um eine Filterung durchzuführen. Beispiel: int method::OnRun() { CF8Vector V1,V2,Fil,Buf; //Als Signal dient ein verrauschter Sinus V1.GaussWhiteNoise(1000,0.1); V2.Sinus(1000,0.0,1.0,3.0); V2.Add(&V1); /* * Filterparameter ermitteln: * 0: Tiefpass * 0: kein Fenster * 20: Ordnung 20 * 1000.0: Abtastfrequenz * 20.0: untere Abtastfrequenz * 0.0: obere Abtastfrequenz (hier nicht benötigt) */ Fil.FIRPara(0,0,20,1000.0,20.0,0.0); //Signal filtern V2.FIR(&Fil,&Buf); return 1; } Siehe auch: © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 272 CF8Vector Übersicht | Hierarchie 1.2.5.7.23 CF8Vector::FlatTop Syntax: int FlatTop(); Beschreibung: gewichtet den Vektor mit der Flat- Top- Fensterfunktion. Die gewichteten Werte yi ergeben sich aus den ungewichteten Werten xi nach der Formel n ist die Länge des Vektors. Beispiel: int method::OnRun() { CF8Vector Daten; Daten.SetData(1000,1.0); Daten.FlatTop(); return 1; } Rückgabewert: 0: Operation erfolgreich -1: Fehler Siehe auch: CF8Vector Übersicht | Hierarchie 1.2.5.7.24 CF8Vector::Force Syntax: int CF8Vector::Force(double p); Parameter: · p: Prozentualer Anteil Beschreibung: Gewichtet den Vektor mit der Force- Fensterfunktion. Die gewichteten Werte yi ergeben sich aus den ungewichteten Werten xi nach der Formel mit d=n/100 und n ist die Länge des Vektors. Beispiel: int method::OnRun() { CF8Vector Daten; Daten.SetData(1000,1.0); pDaten->Force(30.0); return 1; } Rückgabewert: 0: Operation erfolgreich -1: Fehler © XOn Siftware GmbH, 2008 273 Referenzhandbuch Siehe auch: CF8Vector Übersicht | Hierarchie 1.2.5.7.25 CF8Vector::FreeExtra Header: void CF8Vector::FreeExtra(); Beschreibung: Gibt Speicherplatz frei, der nicht benötigt wird, nachdem der Vector vergrössert wurde. Siehe auch: CF8Vector Übersicht | Hierarchie 1.2.5.7.26 CF8Vector::GaussWhiteNoise Syntax: int GaussWhiteNoise(int len,double s); Parameter: · len : gewünschte Länge des Vektors · s : Standardabweichung Beschreibung: füllt den Vektor mit einer folge von Zufallszahlen. Die Länge des Vektors wird auf len Elemente festgelegt. Die Länge len muß mindestens 2 sein. Die Zufallszahlen sin Gaussverteilt mit Parametern .Die Dichtefunktion der Verteilung ist Rückgabewert: Status. Siehe auch: CF8Vector Übersicht | Hierarchie 1.2.5.7.27 CF8Vector::GeneralCosine Syntax: int GeneralCosine(CF8Vector *pA); Parameter: · pA: Cosinus- Koeffizienten Beschreibung: Gewichtet den Werte des Vektors mit der allgemeinen Cosinus- Fensterfunktion. Die gewichteten Werte yi ergeben sich aus den ungewichteten Werten xi nach der Formel n ist die Länge des Ausgangsvektors, m ist die Länge von pA. Beispiel: int method::OnRun() { CF8Vector Daten,A; Daten.SetData(1000,1.0); © XOn Siftware GmbH, 2008 1.2 Programmierreferenz A.Edit("Cosinusparameter eingeben"); Daten.GeneralCosine(&A); return 1; } Rückgabewert: 0: Operation erfolgreich -1: Fehler Siehe auch: CF8Vector Übersicht | Hierarchie 1.2.5.7.28 CF8Vector::GetAt Syntax: int GetAt(int idx,double *pBuf); Parameter: · idx: Index des Vektorelementes · pBuf: Ergebnisbuffer Beschreibung: Kopiert den Wert des durch idx beschriebenen Vektorelementes in den Ergebnisbuffer pBuf. Ist der Index unzulässig, wird die Anweisung ignoriert. Beispiel: int method::OnRun() { CF8Vector V; V.SetData(10,0.0,1.0); double f; V.GetAt(5,&f); return 1; } Rückgabewert: 0: OK -1: unzulässiger Index Siehe auch: CF8Vector Übersicht | Hierarchie 1.2.5.7.29 CF8Vector::GetData Syntax: double* GetData(); Beschreibung: liefert einen Zeiger auf die Daten des Vektors. Siehe auch: CF8Vector Übersicht | Hierarchie 1.2.5.7.30 CF8Vector::GetDim Syntax: int GetDim(); Beschreibung: liefert die Länge des Vektors. © XOn Siftware GmbH, 2008 274 275 Referenzhandbuch Siehe auch: CF8Vector Übersicht | Hierarchie 1.2.5.7.31 CF8Vector::GetSize Header: int CF8Vector::GetSize(); Beschreibung: Gibt die Größe des Vectors zurück. Beginnt der Index bei 0, ist die Größe um 1 grösser als der höchste Index. Rückgabewert: Grösse als int-Wert. Beispiel: int method::OnRun() { CF8Vector V; V.Append(4.6); V.Append(6.6); V.Append(33.3); V.Append(6.6); int j; j=V.GetSize(); printf("%i \n",j); return 1; } Siehe auch: CF8Vector Übersicht | Hierarchie 1.2.5.7.32 CF8Vector::GetUpperBound Header: int CF8Vector::GetUpperBound(); Beschreibung: gibt den momentan größten Index zurück. Beispiel: int method::OnRun() { CF8Vector V; V.Append(2.2); V.Append(4.4); V.Append(54.6); V.Append(77.0); int j; j=V.GetUpperBound(); printf("%i \n",j); return 1; } Siehe auch: CF8Vector Übersicht | Hierarchie © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 276 1.2.5.7.33 CF8Vector::Hamming Syntax: int Hamming(); Beschreibung: gewichtet den Vektor mit der Hamming- Fensterfunktion. Die gewichteten Werte yi ergeben sich aus den ungewichteten Werten xi nach der Formel n ist die Länge des Vektors. Beispiel: int method::OnRun() { CF8Vector *pDaten; pDaten=GetPoolVector(0); if (!pDaten) return 1; pDaten->Hamming(); return 1; } Rückgabewert: 0: Operation erfolgreich -1: Fehler Siehe auch: CF8Vector Übersicht | Hierarchie 1.2.5.7.34 CF8Vector::Hanning Syntax: int Hanning(); Beschreibung: gewichtet den Vektor mit der Hanning- Fensterfunktion. Die gewichteten Werte yi ergeben sich aus den ungewichteten Werten xi nach der Formel n ist die Länge des Vektors. Beispiel: int method::OnRun() { CF8Vector *pDaten; pDaten=GetPoolVector(0); if (!pDaten) return 1; pDaten->Hanning(pDaten->GetDim()); return 1; } Rückgabewert: 0: Operation erfolgreich -1: Fehler Siehe auch: CF8Vector Übersicht | Hierarchie © XOn Siftware GmbH, 2008 277 Referenzhandbuch 1.2.5.7.35 CF8Vector::Histogram Syntax: int Histogram(CF8Vector *pResult); Parameter: · pResult: Ergebnisbuffer Beschreibung: ermittelt das diskrete Histogram der Eingabefolge. Das Histogram enthält für jedes Intervall Di die Anzahl der Werte, die im Intervall liegen. Als Anzahl der Intervalle wird die Länge von pResult angenommen. Die Intervalle ergeben sich wie folgt: ist die Intervallbreite, dabei sind min das Minimum und max das Maximum der Ausgangsdaten. für i=0,...,m-2 und Siehe auch: CF8Vector Übersicht | Hierarchie 1.2.5.7.36 CF8Vector::IFFT Syntax: int IFFT(CF8Vector* pIm,CF8Vector* pResultRe,CF8Vector* pResultIm); int IFFT(CF8Vector* pResultRe,CF8Vector* pResultIm); Parameter: · pIm: Imaginärteil des Spektrums (optional) · pResultRe: Realteil der Rücktransformierten · pResultIm: Imaginärteil der Rücktransformierten Beschreibung: berechnet die inverse Fourier- Transformierte. Als Realteil des zu transformierenden Spektrums gelten die Werte dieses Vektors, als Imaginärteil die Werte von pIm. Wird pIm nicht angegeben (2. Variante) so werden dessen Werte als Null angenommen. Der Realteil des Ergebnisses wird in pResultRe abgelegt, der Imaginärteil in pResultIm. Ist die Länge der Ausgangsvektoren eine Zweierpotenz, so wird ein schneller Algorithmus angewendet (IFFT), andernfalls ein langsamer (IDFT). Die inverse Fouriertransformierte einer Funktion X(t) ist definiert als Die diskrete Implementierung der Fourier- Transformation liefert den Ergebnisvektor Y nach der Formel Rückgabewert: 0: Operation erfolgreich -1: unzulässige Vektordimension Siehe auch: CF8Vector Übersicht | Hierarchie © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 278 1.2.5.7.37 CF8Vector::IIR Synatx: int IIR(CF8Vector* a, CF8Vector* b); Parameter: · a: (vorwärts-) Filterparameter · b: (rückwärts-) Filterparameter Beschreibung: Führt mit den Werten des Vektors eine Infinit- Impulse- Response- Filterung durch. Die Filterparameter werden in der Variablen a und b übergeben. Das Filtrat errechnet sich nach der Formel Rückgabewert: Status. Siehe auch: CF8Vector Übersicht | Hierarchie 1.2.5.7.38 CF8Vector::InsertAt Header: int CF8Vector::InsertAt(int nIndex, CF8Vector* vVec); int CF8Vector::InsertAt(int nIndex,double newElement,int nCount = 1); Parameter: · nIndex: Index, ab dem neu eingefügt werden soll. Darf auch größer sein, als der Wert, den GetUpperBound() liefert. · vVec: Zeiger auf den Vector, dessen Elemente kopiert werden sollen. · newElement: das Element im Vector, das ersetzt werden soll. · nCount: die Anzahl, wie oft das newElement in den Vector eingefügt werden soll. DEFAULT 1 mal. Beschreibung: · Variante 1: Ab dem Index nIndex sollen die Werte des Vectors vVec eigefügt werden. · Variante 2: Ab dem Index nIndex soll der Wert newElement nCount mal in den Vector eingefügt werden. Im Gegensatz zur SetAt()-Methode werden hier die Elemente innerhalb des Vectors geshiftet. Rückgabewert: Variante 1: zurückgegeben wird die Anzahl der neu eingef&ugten Elemente. Beispiel: int method::OnRun() { CF8Vector V,W,*X; V.Append(2.0); V.Append(5.5); V.Append(6.6); W.Append(2.2); W.Append(67.8); W.Append(66.6); W.Append(90.1); X=&W; © XOn Siftware GmbH, 2008 279 Referenzhandbuch int i,j,k,l; double m; i = V.InsertAt(2,X); j = V.GetUpperBound(); k = W.InsertAt(10,66.66,8); m = W.GetAt(11); l = W.GetUpperBound(); printf("%i %i %i %i %.3f\n",i,j,k,l,m); return 1; } Siehe auch: CF8Vector Übersicht | Hierarchie 1.2.5.7.39 CF8Vector::Integral Synatx: int Integral(double h); int Integral(double h,double left,double right); Parameter: · h: Schrittweite · left: linker Randwert (optional) · right: rechter Randwert (optional) Beschreibung: Integriert diskret über die Werte des Vektors mit Schrittweite h. Die neuen Werte ergeben sich nach der Formel für 0 <= i < n werden die Werte left und right angegeben, so gilt X-1 = left Xn = right andernfalls gilt X-1 = Xn = 0 Rückgabewert: -1: Dimension des Vektors ist zu klein 0: Operation erfolgreich (Patient tot) Siehe auch: CF8Vector Übersicht | Hierarchie 1.2.5.7.40 CF8Vector::KaiserBessel Syntax: int KaiserBessel(Real beta); Parameter: · beta: Fensterparameter Beschreibung: gewichtet den Vektor mit der Kaiser- Bessel- Fensterfunktion. Die gewichteten Werte yi ergeben sich aus den ungewichteten Werten xi nach der Formel © XOn Siftware GmbH, 2008 1.2 Programmierreferenz für i=0,...,n-1 n ist die Länge des Vektors und I0 ist die modifizierte Besselfunktion nullter Ordnung. Beispiel: int method::OnRun() { CF8Vector Daten; Daten.SetData(1000,1.0); Daten.KaiserBessel(5.0); return 1; } Rückgabewert: 0: Operation erfolgreich -1: Fehler Siehe auch: CF8Vector Übersicht | Hierarchie 1.2.5.7.41 CF8Vector::Let Header: int CF8Vector::Let(CF8Vector* vVec); Beschreibung: Kopiert die Werte von vVec in den aufrufenden Vektor Rückgabewert: 0, bei Erfolg kleiner 0, sonst Siehe auch: CF8Vector Übersicht | Hierarchie 1.2.5.7.42 CF8Vector::LinFit Synatx: double LinFit(CF8Vector *y,double *a,double* b); Parameter: · y: Y-Werte der Eingabepunkte · a: Zeiger auf einen Buffer für Parameter a (Faktor) · b: Zeiger auf einen Buffer für Parameter b (Exponent) Beschreibung: Errechnet die Parameter a und b einer Geraden der Form f(x) = a x + b so, daß die Kurve möglichst nahe an den Eingabewerten liegt. Als Maß für die Güte dient mit fi = f(xi) Die Freiheitsgrade werden so angepaßt, daß e minimiert wird. Rückgabewert: Status der Operation. © XOn Siftware GmbH, 2008 280 281 Referenzhandbuch Siehe auch: CF8Vector Übersicht | Hierarchie 1.2.5.7.43 CF8Vector::Max Synatx: double Max(); Beschreibung: Max ermittelt den größten Eintrag im Vektor. Rückgabewert: größter Wert im Vektor. Siehe auch: CF8Vector Übersicht | Hierarchie 1.2.5.7.44 CF8Vector::Mean Synatx: double CF8Vector::Mean(); Beschreibung: errechnet den Mittelwert des Vektors nach der Formel Rückgabewert: Mittelwert des Vektors. Siehe auch: CF8Vector Übersicht | Hierarchie 1.2.5.7.45 CF8Vector::Median Synatx: int Median(double *pRes,double med,...); Parameter: · pRes: Ergebnisbuffer · med: Median in Prozent Beschreibung: Diese Methode sortiert die Werte des Vektors und liefert dann den Wert mit dem Index n*med/100 oder einen linear interpolierten Zwischenwert. Die Liste der Parameter ist mit einer 0L abzuschließen. Beispiel: { CF8Vector V; V.GaussWhiteNoise(1000,5.0); double f10,f50,f90; V.Median(&f10,10.0,&f50,50.0,&f90,90.0, 0L); } Siehe auch: CF8Vector Übersicht | Hierarchie © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 282 1.2.5.7.46 CF8Vector::Min Synatx: double Min(); Beschreibung: Min ermittelt den kleinsten Eintrag im Vektor. Rückgabewert: kleinster Wert im Vektor. Siehe auch: CF8Vector Übersicht | Hierarchie 1.2.5.7.47 CF8Vector::Moment Synatx: int Moment(double* moment,int k); int Moment(double* moment,int k,double *mean); Parameter: · moment: Ergebnisbuffer für das k-te Moment · mean: Ergebnisbuffer für den Mittelwert · k: gewünschte Ordnung des Moments Beschreibung: berechnet das k- te Moment des Vektors. Wird ein Ergebnisbuffer mean angegeben, dann wird das k-te zentrale Moment mi berechnet, andernfalls das k-te Moment ai . Die Größen ergeben sich nach den Formeln: und Dabei ist n die Länge des Vektors und m der Mittelwert. Rückgabewert: 0 Operation erfolgreich -1 unzulässige Ordnung k -2: unzulässige Vektordimension Siehe auch: CF8Vector Übersicht | Hierarchie 1.2.5.7.48 CF8Vector::MrqFit Header: int CF8Vector::MrqFit(CF8Vector* vOne,CF8Vector* vTwo,void* fgauss) Beschreibung: Mit dieser Funktion werden nach dem Algorithmus von Levenberg/Marquard die Regressionsparameter einer benutzerdefinierten Funktion bestimmt. Mit Hilfe der nichtlinearen Funktion fgauss soll zwischen Zufallswerten ein Ausgleichgraph entstehen. Die zugrundeliegende Formel lautet: © XOn Siftware GmbH, 2008 283 Referenzhandbuch Rückgabewert: 0, wenn erfolgreich. Beispiel: /* * Modellfunktion y(x,a) */ void fgauss( // double x, double *a, //Parameter double *y, double *dyda, int ma) { int i; double fac,ex,arg; *y=0.0; for (i=0;iSetTraceAtt(1150,1); pK->SetTraceAtt(1152,200); pK->SetTraceAtt(9220,"X1-Sym",44); pK->SetTraceAtt(7220,0,0,192,192,255); pK->SetTraceAtt(6220,1,0,0,0,255); pK->SetTraceAtt(6221,0,0,0,0,0); break; case 0: pK->SetTraceAtt(1150,1); pK->SetTraceAtt(6221,1,40,255,0,0); break; } pK->SetTraceAtt(4150,"AX"); pK->SetTraceAtt(4151,"AY"); pK->SetTraceAtt(4154,szName); pK->SetTraceAtt(10020,pX); pK->SetTraceAtt(10021,pY); return pK; } int method::OnRun() { int len=10; CF8Vector X,Y,Xr,Yr,R,A; //Testdaten erzeugen X.SetData(len,1.0,0.0); Y.SetData(len,1.0,0.0); A.SetData(6,0.7,0.5); Y.AsMrq(&A,fgauss); R.GaussWhiteNoise(len,0.5); Y.Add(&R); /* * Der dritte Parameter von MrqFit muß vom Typ mrqfit sein, * das wie folgt definiert ist: * typedef void (mrqfnc)(double,const double*,double *,double *,int); */ int i; i = X.MrqFit(&Y,&A,fgauss); Xr.SetData(201,0.005*len,0.0); Yr.SetData(201,0.005*len,0.0); Yr.AsMrq(&A,fgauss); LEG.Clear(); LEG.AddTrace(CreateTrace(&X,&Y,1,"Zufallswerte")); LEG.AddTrace(CreateTrace(&Xr,&Yr,0,"Interpolation")); © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 284 GetDocument()->Invalidate(); printf("%i\n",i); return 1; } Siehe auch: CF8Vector Übersicht | Hierarchie 1.2.5.7.49 CF8Vector::Mult Syntax: int Mult(CF8Vector *pV); int Mult(double f); Beschreibung: multipliziert komponentenweise diesem Vektor mit dem Vektor Y oder der Zahl f. Die neuen Werte sind also Xi *Yi oder Xi*f. Der Vektor Y muß die gleiche Dimension wie dieser Vektor haben. Das Ergebnis wird in diesem Vektor abgelegt. Rückgabewert: 0: Operation gelungen -10: unzulässiger Zeiger -11: Dimensionskonflikt Siehe auch: CF8Vector Übersicht | Hierarchie 1.2.5.7.50 CF8Vector::PolyFit Synatx: int PolyFit(CF8Vector *y,CF8Vector *P); Parameter: · y: Y-Werte der Eingabepunkte · P: Zeiger auf einen Vektor, der die Polynomparameter erhält. Die Dimension von P gibt die Dimension des Polynoms vor. Beschreibung: Errechnet die Parameter p einer Polynomkurve der Form so, daß die Kurve möglichst nahe an den Eingabewerten liegt. Als Dimension k des Polynoms wird die Länge des Eingabevektors P verwendet. Als Maß für die Güte dient mit fi = f(xi) Rückgabewert: Status der Operation: Siehe auch: CF8Vector Übersicht | Hierarchie © XOn Siftware GmbH, 2008 285 Referenzhandbuch 1.2.5.7.51 CF8Vector::Power Syntax: int Power(CF8Vector* pResult); Parameter: · pResult: Ergebnisvektor Beschreibnung: errechnet das Leistungsspektrum dieses Vektors und legt das Ergebnis im Vektor pResult ab. Das Leistungsspektrum Sxx(t) einer Funktion x(t) ist definiert als mit X* ist dabei die konjugiert komplexe von X. Die Methode verwendet zur Errechnung des diskreten Leistungsspektrums die Methode FFT. Besonders effizient ist die Berechnung, wenn die Länge des Ausgangsvektors eine Zweierpotenz ist. Rückgabewert: 0: Operation erfolgreich -1: unzulässige Vektordimension Siehe auch: CF8Vector Übersicht | Hierarchie 1.2.5.7.52 CF8Vector::RemoveAll Header: void CF8Vector::RemoveAll(); Beschreibung: Entfernt alle Werte aus dem Vector. Ist der Vector schon leer, funktioniert die Methode auch. Siehe auch: CF8Vector Übersicht | Hierarchie 1.2.5.7.53 CF8Vector::RemoveAt Header: void CF8Vector::RemoveAt(int nIndex,int nCount); Parameter: · nIndex: ein Integerindex, der grösser 0 ist und kleiner als der Wert, den GetUpperBound() liefert. · nCount: Anzahl der zu entfernenden Elemente. Beschreibung: Entfernt ein oder mehrere Elemente im Vector, beginnend bei nIndex. Dabei werden die Elemente, die nach dem(n) zu entfernenden Element(en) stehen, nach vorne geshiftet. Der Upper-Bound Index wird dekrementiert, aber es wird kein Speicher freigegeben. Beispiel: int method::OnRun() { CF8Vector V; V.Append(2.2); © XOn Siftware GmbH, 2008 1.2 Programmierreferenz V.Append(4.4); V.Append(22.3); V.Append(2.0); V.Append(21.1); V.Append(7.67); int j; V.RemoveAt(1,2); j = V.GetUpperBound(); //3 printf("%i \n",j); return 1; } Siehe auch: CF8Vector Übersicht | Hierarchie 1.2.5.7.54 CF8Vector::Scalarproduct Header: double CF8Vector::Scalarproduct(CF8Vector* vVec); Beschreibung: berechnet das Skalarprodukt zwischen dem aufrufenden Vector und dem Vector vVec. Rückgabewert: double-Wert des Skalarprodukts. Siehe auch: CF8Vector Übersicht | Hierarchie 1.2.5.7.55 CF8Vector::SetAt Syntax: void SetAt(int idx,double val); Parameter: · idx: Index des Vektorelementes · val: neuer Eintrag Beschreibung: Setzt den Wert des durch idx beschriebenen Vektorelementes auf val. Ist der Index unzulässig, wird die Anweisung ignoriert. Rückgabewert: 0: OK -1: unzulässiger Index Siehe auch: CF8Vector Übersicht | Hierarchie 1.2.5.7.56 CF8Vector::SetAtGrow Header: void CF8Vector::SetAtGrow(int nIndex,double newElement); Parameter: · nIndex: Index grösser gleich 0 · newElement: neu einzufügender Wert, NULL ist auch erlaubt. © XOn Siftware GmbH, 2008 286 287 Referenzhandbuch Beschreibung: Das newElement wird an den entsprechenden nIndex eingefügt. Der Vector wächst automatisch, wenn notwendig. Der Upper-Bound wird inkrementiert. Beispiel: int method::OnRun() { CF8Vector V; V.Append(6.6); V.Append(45.5); V.Append(456.0); V.SetAtGrow(7,2.3); double h; h=V.GetAt(7); printf("%f\n",h); return 1; } Siehe auch: CF8Vector Übersicht | Hierarchie 1.2.5.7.57 CF8Vector::SetData Syntax: void SetData(int len, double* pval); void SetData(int len,double val); void SetData(int len,double a,double b); Parameter: · len: gewünschte Vektorlänge bzw. Anzahl Werte in pval · pval: Array von Werten zur Vorbelegung · val: Einzelwert zur Vorbelegung · a: Steigung · b: Offset Beschreibung: Setzt die Länge des Vektors auf len und füllt den Vektor wahlweise mit dem festen Wert Val, dem Inhalt des Arrays pVals, oder einer linearen Zahlenfolge gemäß der Formel xi = a*i + b Beispiel: int method::OnRun() { CF8Vector V; //Vektor mit hundert Werten, alle eins V.SetData(100,1.0); //Vektor mit Sinuskurve (Siehe auch Sinus(...)-Methode double f[100]; for (int i=0;i<100;i++) f[i]=sin(i/10.0); V.SetData(100,f); //Vektor mit 100 Werten von 1.0 bis 10.9 V.SetData(100,1.0,0.1); return 1; } Siehe auch: CF8Vector Übersicht | Hierarchie © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 288 1.2.5.7.58 CF8Vector::SetDim Header: int CF8Vector::SetDim(int nDim); Beschreibung: Setzt die Dimension/Länge nDim des Vectors. Rückgabewert: 1, wenn erfolgreich 0, wenn nDim z.B. kleiner 0 Beispiel: int method::OnRun() { CF8Vector V; V.SetDim(9); int h; h=V.GetDim(); printf("%i\n",h); return 1; } Siehe auch: CF8Vector Übersicht | Hierarchie 1.2.5.7.59 CF8Vector::SetSize Header: void CF8Vector::SetSize(int nNewSize,int nGrowBy); Parameter: · nNewSize: neue Größe des Vectors (Anzahl Elemente); muss größer oder gleich 0 sein. · nGrowBy: minimale Anzahl der Einschub-Elemente, die belegt werden müssen, wenn eine Vergrösserung notwendig ist. DEFAULT -1 Beschreibung: Legt die Größe eines leeren oder bereits existierende Vectors fest, reserviert Speicher, wenn nötig. Ist die neue Größe kleiner als die alte, wird der Vector verkleinert. Unbenötigter Speicher wird freigegeben. Es empfielt sich, diese Funktion zu verwenden, bevor der Vector benutzt wird. Wird SetSize() nicht verwendet, wird beim Hinzufügen von Elementen umverteilt und kopiert. Häfiges Umverteilen und Kopieren sind unrationell und fragentieren den Speicher. Wird für nGrowBy der DEFAULT-Wert -1 benutzt, wird Speicher so reserviert, dass Fragmentierung vermieden wird. Siehe auch: CF8Vector Übersicht | Hierarchie 1.2.5.7.60 CF8Vector::Sinus Syntax: int Sinus(int len,double phase,double amplitude,double frequenz); Parameter: © XOn Siftware GmbH, 2008 289 Referenzhandbuch · · · · len: gewünschte Länge des Vektors phase: Phase der Sinuskurve amplitude: Amplitude der Sinuskurve frequenz: Anzahl der Schwingungen im Vektor Beschreibung: füllt den Vektor mit einer Sinuskurve. Die Länge des Vektors wird auf len Elemente festgelegt. Die Elemente errechnen sich nach der Formel Die Länge muß mindestens 2 sein. Rückgabewert: Status. Siehe auch: CF8Vector Übersicht | Hierarchie 1.2.5.7.61 CF8Vector::Sort Header: void CF8Vector::Sort(int flag); Parameter: flag: typ int Bedeutung von flag Bezeichner Wert SORT_DESC 1 Beschreibung Sortierung in fallender Reihenfolge Beschreibung: Diese Methode sortiert die Elemente des CF8Vectors. Ist das Flag SORT_DESC gesetzt, erfolgt die Sortierung absteigend, sonst aufsteigend. Beispiel: int method::OnRun() { CF8Vector V; V.Append(4.6); V.Append(6.6); V.Append(33.3); V.Append(6.6); int j; j=V.Sort(CF8Vector::SORT_DESC); V.Edit(""); return 1; } Siehe auch: CF8Vector Übersicht | Hierarchie 1.2.5.7.62 CF8Vector::Square Syntax: int Square(int len,double phase,double amplitude,double frequenz); Parameter: · len: gewünschte Länge des Vektors © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 290 · phase: Phase der Viereckskurve · amplitude: Amplitude der Viereckskurve · frequenz: Anzahl der Schwingungen im Vektor Beschreibung: füllt den Vektor mit einer Viereckskurve. Die Länge des Vektors wird auf len Elemente festgelegt. Die Länge len muß mindestens 2 sein. Rückgabewert: Status. Siehe auch: CF8Vector Übersicht | Hierarchie 1.2.5.7.63 CF8Vector::Sub Syntax: int Sub(CF8Vector *pV); int Sub(double f); Beschreibung: subtrahiert komponentenweise von diesem Vektor den Vektor Y oder der Zahl f. Die neuen Werte sind also Xi -Yi oder Xi-f. Der Vektor Y muß die gleiche Dimension wie dieser Vektor haben. Das Ergebnis wird in diesem Vektor abgelegt. Rückgabewert: 0: Operation gelungen -10: unzulässiger Zeiger -11: Dimensionskonflikt Siehe auch: CF8Vector Übersicht | Hierarchie 1.2.5.7.64 CF8Vector::Triangle Syntax: int Triangle(); Beschreibung: gewichtet den Vektor mit der Dreiecks- Fensterfunktion. Die gewichteten Werte yi ergeben sich aus den ungewichteten Werten xi nach der Formel n ist die Länge des Vektors. Beispiel: int method::OnRun() { CF8Vector Daten; Daten.SetData(1000,1.0); Daten.Triangle(); return 1; } Rückgabewert: 0: Operation erfolgreich -1: Fehler © XOn Siftware GmbH, 2008 291 Referenzhandbuch Siehe auch: CF8Vector Übersicht | Hierarchie 1.2.5.7.65 CF8Vector::TrianglePattern Syntax: int TrianglePattern(int len,double phase,double amplitude,double frequenz); Parameter: · len: gewünschte Länge des Vektors · phase: Phase der Dreieckskurve · amplitude: Amplitude der Dreieckskurve · frequenz: Anzahl der Schwingungen im Vektor Beschreibung: füllt den Vektor mit einer Dreieckskurve. Die Länge des Vektors wird auf len Elemente festgelegt. Die Länge len muß mindestens 2 sein. Rückgabewert: Status. Siehe auch: CF8Vector Übersicht | Hierarchie 1.2.5.7.66 CF8Vector::Variance Synatx: double Variance(double *mean); Parameter: · mean: Ergebnisbuffer für den Mittelwert Beschreibung: berechnet die Varianz s2 und den Mittelwert m des Vektors. Die Größen ergeben sich nach den Formeln mit Dabei ist n ist die Länge des Vektors. Rückgabewert: Varianz des Vektors. Siehe auch: CF8Vector Übersicht | Hierarchie 1.2.5.8 CSTRVector Klicken Sie auf die Felder der Hierarchie für detaillierte Informationen zu den einzelnen Klassen: © XOn Siftware GmbH, 2008 1.2 Programmierreferenz Methoden: · CSTRVector::Append · CSTRVector::Copy · CSTRVector::Edit · CSTRVector::FreeExtra · CSTRVector::GetAt · CSTRVector::GetSize · CSTRVector::GetUpperBound · CSTRVector::InsertAt · CSTRVector::Min · CSTRVector::Max · CSTRVector::RemoveAll · CSTRVector::RemoveAt · CSTRVector::SetAt · CSTRVector::SetAtGrow · CSTRVector::SetSize · CSTRVector::Sort · CSTRVector::CSTRVector 1.2.5.8.1 CSTRVector::Append Header: int CSTRVector::Append(char* newElement); Beschreibung: Fügt einen neuen char-Wert newElement an den nächstmöglichen Index in den Vektor ein. Rückgabewert: Gibt den Index des eingefügten Elements zurück. Beispiel: int method::OnRun() { CSTRVector S; S.Append("Hansi"); S.Append("Peter"); printf("%s\n",S.GetAt(0)); return 1; } Siehe auch: CSTRVector Übersicht | Hierarchie 1.2.5.8.2 CSTRVector::Copy Header: CSTRVector* CSTRVector::Copy(); Beschreibung: Kopiert den Vektor und liefert einen Zeiger auf die Kopie zurück. Siehe auch: CSTRVector Übersicht | Hierarchie © XOn Siftware GmbH, 2008 292 293 Referenzhandbuch 1.2.5.8.3 CSTRVector::CSTRVector Header: CSTRVector::CSTRVector(); Beschreibung: Konstruktor. Siehe auch: CSTRVector Übersicht | Hierarchie 1.2.5.8.4 CSTRVector::Edit Header: int CSTRVector::Edit(char* text); Parameter: · text: Titel der Dialogbox Beschreibung: Ruft einen Dialog, der die Daten des Elementes zeigt und eine Änderung durch den Nutzer erlaubt. Siehe auch: CSTRVector Übersicht | Hierarchie 1.2.5.8.5 CSTRVector::FreeExtra Header: void CSTRVector::FreeExtra(); Beschreibung: Gibt Speicherplatz frei, der nicht benötigt wird, nachdem der Vector vergrössert wurde. Siehe auch: CSTRVector Übersicht | Hierarchie 1.2.5.8.6 CSTRVector::GetAt Header: char* CSTRVector::GetAt(int nIndex); Parameter: · nIndex: Intergerwert für den Index innerhalb des Vektors Beschreibung: Es wird der Wert beim Index nIndex zurückgegeben. Rückgabewert: String beim Index nIndex. Beispiel: int method::OnRun() { CSTRVector V; char *Name="Hansi"; V.Append(Name); V.Append("Peter"); V.Append("Otto"); © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 294 printf("%s\n",V.GetAt(1)); return 1; } Siehe auch: CSTRVector Übersicht | Hierarchie 1.2.5.8.7 CSTRVector::GetSize Header: int CSTRVector::GetSize(); Beschreibung: liefert die Größe des Vektors. Siehe auch: CSTRVector Übersicht | Hierarchie 1.2.5.8.8 CSTRVector::GetUpperBound Header: int CSTRVector::GetUpperBound(); Beschreibung: gibt den momentan größten Index zurück. Beispiel: int method::OnRun() { CSTRVector C; char c='c'; char d='d'; char e='e'; C.Append(&c); C.Append(&d); C.Append(&e); int i; i=C.GetUpperBound(); printf("%i\n",i); return 1; } Siehe auch: CSTRVector Übersicht | Hierarchie 1.2.5.8.9 CSTRVector::InsertAt Header: int CSTRVector::InsertAt(int nIndex,CSTRVector* vVec); int CSTRVector::InsertAt(int nIndex,char* newElement,int nCount); Parameter: · nIndex: Index, ab dem neu eingefügt werden soll. Darf auch größer sein, als der Wert, den GetUpperBound() liefert. · vVec: Zeiger auf den Vector, dessen Elemente kopiert werden sollen. · newElement: das Element im Vector, das ersetzt werden soll. · nCount: die Anzahl, wie oft das newElement in den Vector eingefügt werden soll. DEFAULT 1 mal. © XOn Siftware GmbH, 2008 295 Referenzhandbuch Beschreibung: · Variante 1: Ab dem Index nIndex sollen die Werte des Vectors vVec eigefügt werden. · Variante 2: Ab dem Index nIndex soll der Wert newElement nCount mal in den Vector eingefügt werden. Im Gegensatz zur SetAt()-Methode werden hier die Elemente innerhalb des Vectors geshiftet. Rückgabewert: Variante 1: Zurückgegeben wird die Anzahl der neu eingef&ugten Elemente. Beispiel: int method::OnRun() { CSTRVector C,D; char *c="Moritz"; char *d; C.Append(c); C.Append("Fritz"); C.Append("Ralf"); C.Append("Toni"); D.Append(c); D.Append(c); C.InsertAt(2,&D); D.InsertAt(1,d,66); int i,j; char *t; i=C.GetUpperBound(); j=D.GetUpperBound(); t=C.GetAt(4); printf("%i %s %i\n",i,t,j); return 1; } Siehe auch: CSTRVector Übersicht | Hierarchie 1.2.5.8.10 CSTRVector::Max Header: char* CSTRVector::Max(); Beschreibung: liefert den lexikalisch größten Wert im Vektor. Beispiel: int method::OnRun() { CSTRVector C; char *t; C.Append("Hansi"); C.Append("Ralf"); C.Append("Olaf"); t=C.Max(); printf("%s\n",t); return 1; } Siehe auch: CSTRVector Übersicht | Hierarchie © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 296 1.2.5.8.11 CSTRVector::Min Header: char* CSTRVector::Min(); Beschreibung: liefert den lexikalisch kleinsten Wert im Vektor. Beispiel: int method::OnRun() { CSTRVector C; char *t; C.Append("Hansi"); C.Append("Ralf"); C.Append("Olaf"); t=C.Min(); printf("%s\n",t); return 1; } Siehe auch: CSTRVector Übersicht | Hierarchie 1.2.5.8.12 CSTRVector::RemoveAt Header: void CSTRVector::RemoveAt(int nIndex,int nCount); Parameter: · nIndex: ein Integerindex, der grösser 0 ist und kleiner als der Wert, den GetUpperBound liefert. · nCount: Anzahl der zu entfernenden Elemente. Beschreibung: Entfernt ein oder mehrere Elemente im Vector, beginnend bei nIndex. Dabei werden die Elemente, die nach dem(n) zu entfernenden Element(en) stehen, nach vorne geshiftet. Der Upper-Bound Index wird dekrementiert, aber es wird kein Speicher freigegeben. Beispiel: int method::OnRun() { CSTRVector V; V.Append("Ralf"); V.Append("Toni"); V.Append("Hans"); V.Append("Tim"); int j; V.RemoveAt(1,2); j = V.GetUpperBound(); //1 printf("%i \n",j); return 1; } Siehe auch: CSTRVector Übersicht | Hierarchie © XOn Siftware GmbH, 2008 297 Referenzhandbuch 1.2.5.8.13 CSTRVector::RemoveAll Header: void CSTRVector::RemoveAll(); Beschreibung: Entfernt alle Werte aus dem Vector. Ist der Vector schon leer, funktioniert die Methode auch. Siehe auch: CSTRVector Übersicht | Hierarchie 1.2.5.8.14 CSTRVector::SetAt Header: void CSTRVector::SetAt(int nIndex,char* newElement); Parameter: · nIndex: Index im Vector · newElement: neuer char-wert, der den alten am Index nIndex ersetzt. Beschreibung: Am Index nIndex wird ein neuer Wert newElement eingesetzt, dabei wird der alte Wert überschrieben. SetAt() sorgt nicht dafür, dass der Vector wächst. Um dies zu erreichen, dient die Funktion SetAtGrow(). Beispiel: int method::OnRun() { CSTRVector V; V.Append("Hansi"); V.Append("Peter"); V.Append("Otto"); printf("%s\n",V.GetAt(1)); V.SetAt(1,"Fritz"); printf("%s\n",V.GetAt(1)); return 1; } Siehe auch: CSTRVector Übersicht | Hierarchie 1.2.5.8.15 CSTRVector::SetAtGrow Header: void CSTRVector::SetAtGrow(int nIndex,char* newElement); Parameter: · nIndex: Index grösser gleich 0 · newElement: neu einzufügender Wert. Beschreibung: Das newElement wird an den entsprechenden nIndex eingefügt. Der Vector wächst automatisch, wenn notwendig. Der Upper-Bound wird inkrementiert. Beispiel: int method::OnRun() { CSTRVector V; V.Append("Hansi"); © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 298 V.Append("Peter"); V.Append("Otto"); V.SetAtGrow(7,"Fritz"); printf("%s\n",V.GetAt(7)); return 1; } Siehe auch: CSTRVector Übersicht | Hierarchie 1.2.5.8.16 CSTRVector::SetSize Header: void CSTRVector::SetSize(int nNewSize,int nGrowBy); Parameter: · nNewSize: neue Größe des Vectors (Anzahl Elemente); muss größer oder gleich 0 sein. · nGrowBy: minimale Anzahl der Einschub-Elemente, die belegt werden müssen, wenn eine Vergrösserung notwendig ist. DEFAULT -1 Beschreibung: Legt die Größe eines leeren oder bereits existierenden Vectors fest, reserviert Speicher, wenn nötig. Ist die neue Größe kleiner als die alte, wird der Vector verkleinert. Unbenötigter Speicher wird freigegeben. Es empfielt sich, diese Funktion zu verwenden, bevor der Vector benutzt wird. Wird SetSize() nicht verwendet, wird beim Hinzufügen von Elementen umverteilt und kopiert. Häfiges Umverteilen und Kopieren sind unrationell und fragentieren den Speicher. Wird für nGrowBy der DEFAULT-Wert -1 benutzt, wird Speicher so reserviert, dass Fragmentierung vermieden wird. Siehe auch: CSTRVector Übersicht | Hierarchie 1.2.5.8.17 CSTRVector::Sort Header: void CSTRVector::Sort(int flag); Parameter: flag: typ int Bedeutung von flag Bezeichner Wert SORT_DESC 1 SORT_CS 2 Beschreibung Sortierung in fallender Reihenfolge Bei Sortierung Groß-/ Kleinschreibung beachten Beschreibung: Diese Methode sortiert die Elemente des CSTRVectors. Ist das Flag SORT_DESC gesetzt, erfolgt die Sortierung in absteigender reihenfolge, sonst in aufsteigender Reihenfolge. Ist das Flag SORT_CS gesetzt, so erfolgt die Sortierung case-sensitiv. Soll z.B. absteigend und case-sensitiv sortiert werden, so lautet der Aufruf: Sort(CSTRVector::SORT_DESC | CSTRVector::SORT_CS); Der Aufruf © XOn Siftware GmbH, 2008 299 Referenzhandbuch Sort(0); Sortiert aufsteigend in alphabetischer Ordnung. Beispiel: int method::OnRun() { CSTRVector V; V.Append("Hansi"); V.Append("Peter"); V.Append("Otto"); V.Sort(CSTRVector::SORT_DESC); V.Edit(""); return 1; } Siehe auch: CSTRVector Übersicht | Hierarchie 1.2.5.9 CF8Matrix Klicken Sie auf die Felder der Hierarchie für detaillierte Informationen zu den einzelnen Klassen: Methoden: CF8Matrix::Add CF8Matrix::Copy CF8Matrix::CF8Matrix CF8Matrix::Edit CF8Matrix::Sub CF8Matrix::Mult CF8Matrix::CompMult CF8Matrix::CompDiv CF8Matrix::GetDim CF8Matrix::GetData CF8Matrix::GetDims CF8Matrix::GetCols CF8Matrix::GetRows CF8Matrix::SetData CF8Matrix::GetAt CF8Matrix::SetAt CF8Matrix::Min CF8Matrix::Max CF8Matrix::MinMax CF8Matrix::Invert CF8Matrix::Transpose 1.2.5.9.1 CF8Matrix::Add Syntax: void Add(CF8Matrix* pB); Beschreibung: Addiert zu dieser Matrix die Matrix pB, falls die Dimensionen identisch sind. Beispiel: int method::OnRun() © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 300 { CF8Matrix M1,M2; M1.SetData(10,10,0.0); M2.SetData(10,10,1.0); M1.Add(&M2); return 1; } Siehe auch: CF8Matrix Übersicht | Hierarchie 1.2.5.9.2 CF8Matrix::CompDiv Syntax: void CompDiv(CF8Matrix* pM); Beschreibung: dividiert diese Matrix komponentenweise mit der Matrix pM. Die Matrix pM muß gleichviele Zeilen und Spalten haben wie diese Matrix. Siehe auch: CF8Matrix Übersicht | Hierarchie 1.2.5.9.3 CF8Matrix::CompMult Syntax: void CompMult(CF8Matrix* pM); Beschreibung: multipliziert diese Matrix komponentenweise mit der Matrix pM. Die Matrix pM muß gleichviele Zeilen und Spalten haben wie diese Matrix. Siehe auch: CF8Matrix Übersicht | Hierarchie 1.2.5.9.4 CF8Matrix::Copy Header: CF8Matrix* CF8Matrix::Copy(); Beschreibung: Kopiert die Matrix und liefert einen Zeiger auf die Kopie zurück. Siehe auch: CF8Matrix Übersicht | Hierarchie 1.2.5.9.5 CF8Matrix::CF8Matrix Header: CF8Matrix* CF8Matrix::CF8Matrix(); Beschreibung: Konstruktor. Siehe auch: CF8Matrix Übersicht | Hierarchie © XOn Siftware GmbH, 2008 301 Referenzhandbuch 1.2.5.9.6 CF8Matrix::Edit Header: int CF8Matrix::Edit(char* text); Parameter: · text: Titel der Dialogbox. Beschreibung: Ruft einen Dialog, der die Daten des Elementes zeigt und eine Änderung durch den Nutzer erlaubt. Siehe auch: CF8Matrix Übersicht | Hierarchie 1.2.5.9.7 CF8Matrix::GetAt Syntax: double GetAt(int row,int col); Parameter: · row: Zeile · col: Spalte Beschreibung: liefert den Wert der in Zeile row und Spalte col der Matrix steht. Das Ergebnis ist nur definiert, wenn row und col zulässige Zeilen und Spalten der Matrix sind, d.h. es muß gelten: 0 <= row < Zahl der Zeilen 0 <= col < Zahl der Spalten Rückgabewert: Wert der Matrixzelle. Siehe auch: CF8Matrix Übersicht | Hierarchie 1.2.5.9.8 CF8Matrix::GetData Syntax: double* GetData(); Beschreibung: Liefert einen Zeiger auf die Daten der Matrix. Siehe auch: CF8Matrix Übersicht | Hierarchie 1.2.5.9.9 CF8Matrix::GetDim Syntax: int GetDim(int dim); Beschreibung: Liefert eine Dimension der Matrix. Für dim==0 erhält man die Zahl der Zeilen, für dim==1 erhält man die Zahl der Spalten. Siehe auch: CF8Matrix Übersicht | Hierarchie © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 1.2.5.9.10 CF8Matrix::GetDims Header: int CF8Matrix::GetDims(int* rows,int* cols); Beschreibung: liefert die Dimensionen der Matrix. Rückgabewert: Anzahl der Elemente in der Matrix. Beispiel: int method::OnRun() { CF8Matrix M2; M2.SetDims(2,3); double a=55.4; double b=87.3; M2.SetAt(1,1,a); M2.SetAt(1,0,b); int j,k,i; i=M2.GetDims(&j,&k); printf("%i %i %i\n",i,j,k); return 1; } Siehe auch: CF8Matrix Übersicht | Hierarchie 1.2.5.9.11 CF8Matrix::GetRows Header: int CF8Matrix::GetRows(); Beschreibung: liefert die Anzahl der Reihen. Beispiel: int method::OnRun() { CF8Matrix M; M.SetDims(2,3); int j=M.GetRows(); printf("%i\n",j); return 1; } Siehe auch: CF8Matrix Übersicht | Hierarchie 1.2.5.9.12 CF8Matrix::GetCols Header: int CF8Matrix::GetCols(); Beschreibung: Liefert die Anzahl der Spalten. Beispiel: int method::OnRun() © XOn Siftware GmbH, 2008 302 303 Referenzhandbuch { CF8Matrix M; M.SetDims(2,3); int j=M.GetCols(); printf("%i\n",j); return 1; } Siehe auch: CF8Matrix Übersicht | Hierarchie 1.2.5.9.13 CF8Matrix::Invert Syntax: int Invert(int pivot); Parameter: · pivot: 0: ohne Pivotsuche 1: mit Pivotsuche Beschreibung: Invertiert die Matrix. Mit dem Parameter pivot kann eine Pivotsuche eingeschaltet werden. Diese macht den Algorithmus numerisch stabiler aber auch langsamer. Mit dieser Operation lassen sich beispielsweise lineare Gleichungssystem einfach lösen. Rückgabewert: · 0 Operation erfolgreich · -1 Matrix nicht quadratisch · -2 eine Dimension Null · -3 Matrix ist singülär oder schlecht konditioniert Beispiel: int method::OnRun() { CF8Matrix M; CVector V; //lösung der Gleichung M*X=V M.Edit("Matrix eingeben"); V.Edit("Vektor eingeben"); //Matrix invertieren if (M.Invert(1)<0) return 1; //M*V; das Ergebnis wird in V abgelegt if (M.Mult(&V)<0) return 1; V.Edit("Die lösung lautet:"); return 1; } Siehe auch: CF8Matrix Übersicht | Hierarchie 1.2.5.9.14 CF8Matrix::Max Synatx: double Max(); Beschreibung: Max ermittelt den größten Eintrag in der Matrix. Rückgabewert: © XOn Siftware GmbH, 2008 1.2 Programmierreferenz größter Wert in der Matrix. Siehe auch: CF8Matrix Übersicht | Hierarchie 1.2.5.9.15 CF8Matrix::Min Synatx: double Min(); Beschreibung: Min ermittelt den kleinsten Eintrag in der Matrix. Rückgabewert: kleinster Wert in der Matrix. Siehe auch: CF8Matrix Übersicht | Hierarchie 1.2.5.9.16 CF8Matrix::MinMax Header: int CF8Matrix::MinMax(double* min,double* max); Beschreibung: schreibt den minimalen Wert in min, den maximalen in max. Rückgabewert: 1, wenn ok Beispiel: int method::OnRun() { CF8Matrix M; M.SetDims(2,3); M.SetAt(0,1,55.9); M.SetAt(0,2,90.6); M.SetAt(0,0,65.8); double k,l; int j=M.MinMax(&k,&l); printf("%i %.1f %.1f\n",j,k,l); return 1; } Siehe auch: CF8Matrix Übersicht | Hierarchie 1.2.5.9.17 CF8Matrix::Mult Syntax: int Mult(CF8Matrix* M); int Mult(CVector* V); Beschreibung: Multipliziert eine Matrix mit einem Vektor oder einer Matrix. 1. Variante: (Matrix * Matrix) Multiplizirt diese Matrix mit der Matrix M und legt das Ergebnis in dieser Matrix ab. Die Zahl der Spalten muß mit der Zeilenzahl von M übereinstimmen. 2. Variante: (Matrix * Vektor) © XOn Siftware GmbH, 2008 304 305 Referenzhandbuch Multiplizirt diese Matrix mit dem Vektor V und legt das Ergebnis im Vektor V ab. Die Zahl der Spalten muß mit der Zeilenzahl von V übereinstimmen. Rückgabewert: · 0 Operation erfolgreich · -1 Zeiger nicht definiert · -2 Dimensionskonflikt Siehe auch: CF8Matrix Übersicht | Hierarchie 1.2.5.9.18 CF8Matrix::SetAt Syntax: void SetAt(int row,int col,double val); Parameter: · row: Zeile · col: Spalte · val: neuer Wert Beschreibung: setzt den Wert in Zeile row und Spalte col der Matrix. Ein Matrixeintrag wird nur dann verändert, wenn row und col zulässige Zeilen und Spalten der Matrix sind, d.h. es muß gelten: 0 <= row < Zahl der Zeilen 0 <= col < Zahl der Spalten Siehe auch: CF8Matrix Übersicht | Hierarchie 1.2.5.9.19 CF8Matrix::SetData Syntax: void SetData(int dim1,int dim2, double* pVals); void SetData(int dim1,int dim2, double val); Beschreibung: 1. Variante: legt die Größe der Matrix auf dim1 Zeilen und dim2 Spalten fest und Kopiert den Inhalt von pVals in die Matrix. pVals muß auf einen Speicherbereich von mindestens dim1*dim2 Gleitkommazahlen zeigen. Die Gesamtgröße der Matrix (dim1*dim) darf 16380 nicht überschreiten. 2. Variante: legt die Größe der Matrix auf dim1 Zeilen und dim2 Spalten fest und belegt alle Matrixwerte mit val vor. Die Gesamtgröße der Matrix (dim1*dim) darf 16380 nicht überschreiten. Beispiel: int method::OnRun() { double f[100]; int i; for (i=0;i<100;i++) f[i]=i; CF8Matrix M; //Matrix mit den Werten aus f belegen M.SetData(10,10,f); //Matrix mit Nullen belegen M.SetData(10,10,1.0); return 1; } © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 306 Siehe auch: CF8Matrix Übersicht | Hierarchie 1.2.5.9.20 CF8Matrix::SetDims Header: void CF8Matrix::SetDims(int nRows,int nCols); Parameter: · nRows: Anzahl der Zeilen · nCols: Anzahl der Spalten Beschreibung: Legt die Größe der Matrix fest. Siehe auch: CF8Matrix Übersicht | Hierarchie 1.2.5.9.21 CF8Matrix::Sub Syntax: void Sub(CF8Matrix* pB); Beschreibung: Subtrahiert von dieser Matrix die Matrix pB, falls die Dimensionen identisch sind. Beispiel: int method::OnRun() { CF8Matrix M1,M2; M1.SetData(10,10,0.0); M2.SetData(10,10,1.0); M1.Sub(&M2); return 1; } Siehe auch: CF8Matrix Übersicht | Hierarchie 1.2.5.9.22 CF8Matrix::Transpose Syntax: void Transpose(); Beschreibung: transponiert die Matrix. Siehe auch: CF8Matrix Übersicht | Hierarchie 1.2.5.10 CI4Matrix Klicken Sie auf die Felder der Hierarchie für detaillierte Informationen zu den einzelnen Klassen: © XOn Siftware GmbH, 2008 307 Referenzhandbuch Methoden: · CI4Matrix::CI4Matrix · CI4Matrix::Copy · CI4Matrix::Edit · CI4Matrix::GetAt · CI4Matrix::GetDim · CI4Matrix::GetDims · CI4Matrix::GetRows · CI4Matrix::GetCols · CI4Matrix::GetData · CI4Matrix::Min · CI4Matrix::Max · CI4Matrix::MinMax · CI4Matrix::SetAt · CI4Matrix::SetDims 1.2.5.10.1 CI4Matrix::Copy Header: CI4Matrix* CI4Matrix::Copy(); Beschreibung: Kopiert die Matrix und liefert einen Zeiger auf die Kopie zurück. Siehe auch: CI4Matrix Übersicht | Hierarchie 1.2.5.10.2 CI4Matrix::CI4Matrix Header: CI4Matrix* CI4Matrix::CI4Matrix(); Beschreibung: Konstruktor. Siehe auch: CI4Matrix Übersicht | Hierarchie 1.2.5.10.3 CI4Matrix::Edit Header: int CI4Matrix::Edit(char* text); Parameter: · text: Titel der Dialogbox Beschreibung: Ruft einen Dialog, der die Daten des Elementes zeigt und eine Änderung durch den Nutzer erlaubt. Siehe auch: CI4Matrix Übersicht | Hierarchie © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 1.2.5.10.4 CI4Matrix::GetAt Header: int CI4Matrix::GetAt(int row,int col); Parameter: · row: Zeile · col: Spalte Beschreibung: liefert den Wert der in Zeile row und Spalte col der Matrix steht. Das Ergebnis ist nur definiert, wenn row und col zulässige Zeilen und Spalten der Matrix sind, d.h. es muß gelten: 0 <= row < Zahl der Zeilen 0 <= col < Zahl der Spalten Beispiel: int method::OnRun() { CI4Matrix M1,M2,M3; M2.SetDims(2,13); M2.SetAt(1,1,44); M2.SetAt(1,0,494); int i=M2.GetAt(1,1); char t='t'; M2.Edit(&t); printf("%i\n",i); return 1; } Siehe auch: CI4Matrix Übersicht | Hierarchie 1.2.5.10.5 CI4Matrix::GetCols Header: int CI4Matrix::GetCols(); Beschreibung: Liefert die Anzahl der Spalten. Beispiel: int method::OnRun() { CI4Matrix M1,M2,M3; M2.SetDims(2,13); M2.SetAt(1,1,44); M2.SetAt(1,0,494); int i=M2.GetCols(); printf("%i\n",i); return 1; } Siehe auch: CI4Matrix Übersicht | Hierarchie © XOn Siftware GmbH, 2008 308 309 Referenzhandbuch 1.2.5.10.6 CI4Matrix::GetData Header: int* CI4Matrix::GetData(); Beschreibung: Liefert einen Zeiger auf die Daten der Matrix. Siehe auch: CI4Matrix Übersicht | Hierarchie 1.2.5.10.7 CI4Matrix::GetDim Header: int CI4Matrix::GetDim(int dim); Beschreibung: Liefert eine Dimension der Matrix. Für dim=0 erhält man die Zahl der Zeilen, für dim=1 erhält man die Zahl der Spalten. Beispiel: int method::OnRun() { CI4Matrix M1,M2,M3; M2.SetDims(2,13); M2.SetAt(1,1,44); M2.SetAt(1,0,494); int i=M2.GetDim(1); printf("%i\n",i); return 1; } Siehe auch: CI4Matrix Übersicht | Hierarchie 1.2.5.10.8 CI4Matrix::GetDims Header: int CI4Matrix::GetDims(int* rows,int* cols); Beschreibung: liefert die Dimensionen der Matrix. Rückgabewert: Anzahl der Elemente in der Matrix. Beispiel: int method::OnRun() { CI4Matrix M1,M2,M3; M2.SetDims(2,3); M2.SetAt(1,1,44); M2.SetAt(1,0,494); int j,k,i; i=M2.GetDims(&j,&k); printf("%i %i %i\n",i,j,k); return 1; } Siehe auch: © XOn Siftware GmbH, 2008 1.2 Programmierreferenz CI4Matrix Übersicht | Hierarchie 1.2.5.10.9 CI4Matrix::GetRows Header: int CI4Matrix::GetRows(); Beschreibung: liefert die Anzahl der Reihen. Beispiel: int method::OnRun() { CI4Matrix M; M.SetDims(2,3); int j=M.GetRows(); printf("%i\n",j); return 1; } Siehe auch: CI4Matrix Übersicht | Hierarchie 1.2.5.10.10 CI4Matrix::Max Header: int CI4Matrix::Max(); Beschreibung: liefert den maximalen Wert der Matrix. Beispiel: int method::OnRun() { CI4Matrix M; M.SetDims(2,3); M.SetAt(0,1,55); M.SetAt(0,2,90); M.SetAt(0,0,65); int j=M.Max(); printf("%i\n",j); return 1; } Siehe auch: CI4Matrix Übersicht | Hierarchie 1.2.5.10.11 CI4Matrix::Min Header: int CI4Matrix::Min(); Beschreibung: liefert den minimalen Wert der Matrix. Beispiel: int method::OnRun() { CI4Matrix M; M.SetDims(2,3); © XOn Siftware GmbH, 2008 310 311 Referenzhandbuch M.SetAt(0,1,55); M.SetAt(0,2,90); M.SetAt(0,0,65); int j=M.Min(); printf("%i\n",j); return 1; } Siehe auch: CI4Matrix Übersicht | Hierarchie 1.2.5.10.12 CI4Matrix::MinMax Header: int CI4Matrix::MinMax(int* min,int* max); Beschreibung: schreibt den minimalen Wert in min, den maximalen in max. Rückgabewert: 1, wenn ok Beispiel: int method::OnRun() { CI4Matrix M; M.SetDims(2,3); M.SetAt(0,1,55); M.SetAt(0,2,90); M.SetAt(0,0,65); int k,l; int j=M.MinMax(&k,&l); printf("%i %i %i\n",j,k,l); return 1; } Siehe auch: CI4Matrix Übersicht | Hierarchie 1.2.5.10.13 CI4Matrix::SetAt Header: void CI4Matrix::SetAt(int row,int col,int newValue); Parameter: · row: Reihe · col: Spalte · newValue: neues Element vom Typ int Beschreibung: setzt den Wert in Zeile row und Spalte col der Matrix. Ein Matrixeintrag wird nur dann verändert, wenn row und col zulässige Zeilen und Spalten der Matrix sind, d.h. es muß gelten: 0 <= row < Zahl der Zeilen 0 <= col < Zahl der Spalten Siehe auch: CI4Matrix Übersicht | Hierarchie © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 312 1.2.5.10.14 CI4Matrix::SetDims Header: void CI4Matrix::SetDims(int nRow, int nCol); Parameter: · nRow: Anzahl Zeilen · nCol: Anzahl Spalten Beschreibung: Legt die Dimensionen der Matrix fest. Die Zellen der Matrix werden mit 0 vorbelegt. Beispiel: int method::OnRun() { CI4Matrix M3; M3.SetDims(2,3); char t='t'; M3.Edit(&t); return 1; } Siehe auch: CI4Matrix Übersicht | Hierarchie 1.2.5.11 CF4Matrix Klicken Sie auf die Felder der Hierarchie für detaillierte Informationen zu den einzelnen Klassen: Methoden: · CF4Matrix::Copy · CF4Matrix::CF4Matrix · CF4Matrix::Edit · CF4Matrix::GetAt · CF4Matrix::GetDim · CF4Matrix::GetDims · CF4Matrix::GetRows · CF4Matrix::GetCols · CF4Matrix::GetData · CF4Matrix::Min · CF4Matrix::Max · CF4Matrix::MinMax · CF4Matrix::SetAt · CF4Matrix::SetDims 1.2.5.11.1 CF4Matrix::Copy Header: CF4Matrix* CF4Matrix::Copy(); Beschreibung: Kopiert die Matrix und liefert einen Zeiger auf die Kopie zurück. © XOn Siftware GmbH, 2008 313 Referenzhandbuch Siehe auch: CF4Matrix Übersicht | Hierarchie 1.2.5.11.2 CF4Matrix::CF4Matrix Header: CF4Matrix* CF4Matrix::CF4Matrix(); Beschreibung: Konstruktor. Siehe auch: CF4Matrix Übersicht | Hierarchie 1.2.5.11.3 CF4Matrix::Edit Header: int CF4Matrix::Edit(char* text); Parameter: · text: Titel der Dialogbox. Beschreibung: Ruft einen Dialog, der die Daten des Elementes zeigt und eine Änderung durch den Nutzer erlaubt. Siehe auch: CF4Matrix Übersicht | Hierarchie 1.2.5.11.4 CF4Matrix::GetAt Header: float CF4Matrix::GetAt(int row,int col); Parameter: · row: Zeile · col: Spalte Beschreibung: liefert den Wert der in Zeile row und Spalte col der Matrix steht. Das Ergebnis ist nur definiert, wenn row und col zulässige Zeilen und Spalten der Matrix sind, d.h. es muß gelten: 0 <= row < Zahl der Zeilen 0 <= col < Zahl der Spalten Beispiel: int method::OnRun() { CF4Matrix M2; M2.SetDims(2,13); float f=44.4,g=39.8; M2.SetAt(1,1,f); M2.SetAt(1,0,g); float i=M2.GetAt(1,1); printf("%.2f\n",(double)i); return 1; } Siehe auch: CF4Matrix Übersicht | Hierarchie © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 314 1.2.5.11.5 CF4Matrix::GetCols Header: int CF4Matrix::GetCols(); Beschreibung: Liefert die Anzahl der Spalten. Beispiel: int method::OnRun() { CF4Matrix M2; M2.SetDims(2,13); int i=M2.GetCols(); printf("%i\n",i); return 1; } Siehe auch: CF4Matrix Übersicht | Hierarchie 1.2.5.11.6 CF4Matrix::GetData Header: float* CF4Matrix::GetData(); Beschreibung: Liefert einen Zeiger auf die Daten der Matrix. Siehe auch: CF4Matrix Übersicht | Hierarchie 1.2.5.11.7 CF4Matrix::GetDim Header: int CF4Matrix::GetDim(int dim); Beschreibung: Liefert eine Dimension der Matrix. Für dim=0 erhält man die Zahl der Zeilen, für dim=1 erhält man die Zahl der Spalten. Beispiel: int method::OnRun() { CF4Matrix M2; M2.SetDims(2,13); int i=M2.GetDim(1); printf("%i\n",i); return 1; } Siehe auch: CF4Matrix Übersicht | Hierarchie © XOn Siftware GmbH, 2008 315 Referenzhandbuch 1.2.5.11.8 CF4Matrix::GetDims Header: int CF4Matrix::GetDims(int* rows,int* cols); Beschreibung: liefert die Dimensionen der Matrix. Rückgabewert: Anzahl der Elemente in der Matrix. Beispiel: int method::OnRun() { CF4Matrix M2; M2.SetDims(2,13); int j,k,i; i=M2.GetDims(&j,&k); printf("%i %i %i\n",i,j,k); return 1; } Siehe auch: CF4Matrix Übersicht | Hierarchie 1.2.5.11.9 CF4Matrix::GetRows Header: int CF4Matrix::GetRows(); Beschreibung: liefert die Anzahl der Reihen. Beispiel: int method::OnRun() { CF4Matrix M; M.SetDims(2,3); int j=M.GetRows(); printf("%i\n",j); return 1; } Siehe auch: CF4Matrix Übersicht | Hierarchie 1.2.5.11.10 CF4Matrix::Max Header: float CF4Matrix::Max(); Beschreibung: liefert den maximalen Wert der Matrix. Beispiel: int method::OnRun() { CF4Matrix M; float f=55.6,g=3.2,h=1.2; M.SetDims(2,3); © XOn Siftware GmbH, 2008 1.2 Programmierreferenz M.SetAt(0,1,f); M.SetAt(0,2,g); M.SetAt(0,0,h); float j=M.Max(); printf("%.1f\n",(double)j); return 1; } Siehe auch: CF4Matrix Übersicht | Hierarchie 1.2.5.11.11 CF4Matrix::Min Header: float CF4Matrix::Min(); Beschreibung: liefert den minimalen Wert der Matrix. Beispiel: int method::OnRun() { CF4Matrix M; float f=55.6,g=3.2,h=1.2; M.SetDims(2,3); M.SetAt(0,1,f); M.SetAt(0,2,g); M.SetAt(0,0,h); float j=M.Min(); printf("%.1f\n",(double)j); return 1; } Siehe auch: CF4Matrix Übersicht | Hierarchie 1.2.5.11.12 CF4Matrix::MinMax Header: int CF4Matrix::MinMax(float* min,float* max); Beschreibung: schreibt den minimalen Wert in min, den maximalen in max. Rückgabewert: 1, wenn ok Beispiel: int method::OnRun() { CF4Matrix M; float f=55.6,g=3.2,h=1.2; M.SetDims(2,3); M.SetAt(0,1,f); M.SetAt(0,2,g); M.SetAt(0,0,h); float j,k; int i=M.MinMax(&j,&k); printf("%.1f %.1f %i\n",(double)j,(double)k,i); return 1; © XOn Siftware GmbH, 2008 316 317 Referenzhandbuch } Siehe auch: CF4Matrix Übersicht | Hierarchie 1.2.5.11.13 CF4Matrix::SetAt Header: void CF4Matrix::SetAt(int row,int col,float newValue); Parameter: · row: Reihe · col: Spalte · newValue: neues Element vom Typ float Beschreibung: setzt den Wert in Zeile row und Spalte col der Matrix. Ein Matrixeintrag wird nur dann verändert, wenn row und col zulässige Zeilen und Spalten der Matrix sind, d.h. es muß gelten: 0 <= row < Zahl der Zeilen 0 <= col < Zahl der Spalten Siehe auch: CF4Matrix Übersicht | Hierarchie 1.2.5.11.14 CF4Matrix::SetDims Header: void CF4Matrix::SetDims(int nRow,int nCol); Parameter: · nRow: Anzahl Zeilen · nCol: Anzahl Spalten Beschreibung: Legt die Dimensionen der Matrix fest. Die Zellen der Matrix werden mit 0 vorbelegt. Beispiel: int method::OnRun() { CF4Matrix M3; M3.SetDims(2,3); char t='t'; M3.Edit(&t); return 1; } Siehe auch: CF4Matrix Übersicht | Hierarchie 1.2.5.12 CDTMatrix Klicken Sie auf die Felder der Hierarchie für detaillierte Informationen zu den einzelnen Klassen: Methoden: © XOn Siftware GmbH, 2008 1.2 Programmierreferenz · · · · · · · · · · · · · · CDTMatrix::Copy CDTMatrix::Edit CDTMatrix::GetAt CDTMatrix::SetAt CDTMatrix::Min CDTMatrix::Max CDTMatrix::GetDim CDTMatrix::GetDims CDTMatrix::SetDims CDTMatrix::GetRows CDTMatrix::GetCols CDTMatrix::GetData CDTMatrix::MinMax CDTMatrix::CDTMatrix 1.2.5.12.1 CDTMatrix::Copy Header: CDTMatrix* CDTMatrix::Copy(); Beschreibung: Kopiert die Matrix und liefert einen Zeiger auf die Kopie zurück. Siehe auch: CDTMatrix Übersicht | Hierarchie 1.2.5.12.2 CDTMatrix::CDTMatrix Header: CDTMatrix* CDTMatrix::CDTMatrix(); Beschreibung: Konstruktor. Siehe auch: CDTMatrix Übersicht | Hierarchie 1.2.5.12.3 CDTMatrix::Edit Header: int CDTMatrix::Edit(char* text); Parameter: · text: Titel der Dialogbox. Beschreibung: Ruft einen Dialog, der die Daten des Elementes zeigt und eine Änderung durch den Nutzer erlaubt. Siehe auch: CDTMatrix Übersicht | Hierarchie © XOn Siftware GmbH, 2008 318 319 Referenzhandbuch 1.2.5.12.4 CDTMatrix::GetAt Header: DATETIME CDTMatrix::GetAt(int row,int col); Parameter: · row: Zeile · col: Spalte Beschreibung: liefert den Wert der in Zeile row und Spalte col der Matrix steht. Das Ergebnis ist nur definiert, wenn row und col zulässige Zeilen und Spalten der Matrix sind, d.h. es muß gelten: 0 <= row < Zahl der Zeilen 0 <= col < Zahl der Spalten Siehe auch: CDTMatrix Übersicht | Hierarchie 1.2.5.12.5 CDTMatrix::GetCols Header: int CDTMatrix::GetCols(); Beschreibung: Liefert die Anzahl der Spalten. Siehe auch: CDTMatrix Übersicht | Hierarchie 1.2.5.12.6 CDTMatrix::GetData Header: DATETIME* CDTMatrix::GetData(); Beschreibung: Liefert einen Zeiger auf die Daten der Matrix. Siehe auch: CDTMatrix Übersicht | Hierarchie 1.2.5.12.7 CDTMatrix::GetDim Header: int CDTMatrix::GetDim(int dim); Beschreibung: Liefert eine Dimension der Matrix. Für dim=0 erhält man die Zahl der Zeilen, für dim=1 erhält man die Zahl der Spalten. Beispiel: int method::OnRun() { CDTMatrix M2; M2.SetDims(2,13); int i=M2.GetDim(1); printf("%i\n",i); return 1; } © XOn Siftware GmbH, 2008 1.2 Programmierreferenz Siehe auch: CDTMatrix Übersicht | Hierarchie 1.2.5.12.8 CDTMatrix::GetDims Header: int CDTMatrix::GetDims(int* rows,int* cols); Beschreibung: liefert die Dimensionen der Matrix. Rückgabewert: Anzahl der Elemente in der Matrix. Beispiel: int method::OnRun() { CDTMatrix M2; M2.SetDims(2,13); int j,k,i; i=M2.GetDims(&j,&k); printf("%i %i %i\n",i,j,k); return 1; } Siehe auch: CDTMatrix Übersicht | Hierarchie 1.2.5.12.9 CDTMatrix::GetRows Header: int CDTMatrix::GetRows(); Beschreibung: liefert die Anzahl der Reihen. Beispiel: int method::OnRun() { CDTMatrix M; M.SetDims(2,3); int j=M.GetRows(); printf("%i\n",j); return 1; } Siehe auch: CDTMatrix Übersicht | Hierarchie 1.2.5.12.10 CDTMatrix::Max Header: DATETIME CDTMatrix::Max(); Beschreibung: liefert den maximalen Wert der Matrix. Siehe auch: CDTMatrix Übersicht | Hierarchie © XOn Siftware GmbH, 2008 320 321 Referenzhandbuch 1.2.5.12.11 CDTMatrix::Min Header: double CDTMatrix::Min(); Beschreibung: liefert den minimalen Wert der Matrix. Siehe auch: CDTMatrix Übersicht | Hierarchie 1.2.5.12.12 CDTMatrix::MinMax Header: int CDTMatrix::MinMax(DATETIME* min,DATETIME* max); Beschreibung: schreibt den minimalen Wert in min, den maximalen in max. Rückgabewert: 1, wenn ok Siehe auch: CDTMatrix Übersicht | Hierarchie 1.2.5.12.13 CDTMatrix::SetAt Header: void CDTMatrix::SetAt(int row,int col,DATETIME newValue); Parameter: · row: Reihe · col: Spalte · newValue: neues Element vom Typ DATETIME Beschreibung: setzt den Wert in Zeile row und Spalte col der Matrix. Ein Matrixeintrag wird nur dann verändert, wenn row und col zulässige Zeilen und Spalten der Matrix sind, d.h. es muß gelten: 0 <= row < Zahl der Zeilen 0 <= col < Zahl der Spalten Siehe auch: CDTMatrix Übersicht | Hierarchie 1.2.5.12.14 CDTMatrix::SetDims Header: void CDTMatrix::SetDims(int nRow,int nCol); Parameter: · nRow: Anzahl Zeilen · nCol: Anzahl Spalten Beschreibung: Legt die Dimensionen der Matrix fest. Die Zellen der Matrix werden mit dem 1.1.1900 00:00:00 vorbelegt. Beispiel: int method::OnRun() © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 322 { CDTMatrix M3; M3.SetDims(2,3); char t='t'; M3.Edit(&t); return 1; } Siehe auch: CDTMatrix Übersicht | Hierarchie 1.2.5.13 CSTRMatrix Klicken Sie auf die Felder der Hierarchie für detaillierte Informationen zu den einzelnen Klassen: Methoden: · CSTRMatrix::Copy · CSTRMatrix::Edit · CSTRMatrix::GetAt · CSTRMatrix::SetAt · CSTRMatrix::Min · CSTRMatrix::Max · CSTRMatrix::GetDim · CSTRMatrix::GetDims · CSTRMatrix::SetDims · CSTRMatrix::GetRows · CSTRMatrix::GetCols · CSTRMatrix::CSTRMatrix 1.2.5.13.1 CSTRMatrix::Copy Header: CSTRMatrix* CSTRMatrix::Copy(); Beschreibung: Kopiert die Matrix und liefert einen Zeiger auf die Kopie zurück. Siehe auch: CSTRMatrix Übersicht | Hierarchie 1.2.5.13.2 CSTRMatrix::CSTRMatrix Header: CSTRMatrix* CSTRMatrix::CSTRMatrix(); Beschreibung: Konstruktor Siehe auch: CSTRMatrix Übersicht | Hierarchie © XOn Siftware GmbH, 2008 323 Referenzhandbuch 1.2.5.13.3 CSTRMatrix::Edit Header: int CSTRMatrix::Edit(char* text); Parameter: · text: Titel der Dialogbox Beschreibung: Ruft einen Dialog, der die Daten des Elementes zeigt und eine Änderung durch den Nutzer erlaubt. Siehe auch: CSTRMatrix Übersicht | Hierarchie 1.2.5.13.4 CSTRMatrix::GetAt Header: char* CSTRVector::GetAt(int nRow,int nCol); Parameter: · row: Reihe · col: Spalte Beschreibung: Es wird der Wert beim Index nIndex zurückgegeben. Rückgabewert: String beim Index nIndex. Beispiel: int method::OnRun() { CSTRMatrix M; M.SetDims(2,3); M.SetAt(0,1,"Anna"); M.SetAt(0,2,"Grau"); M.SetAt(0,0,"Halt"); char *pStr=M.GetAt(0,2); printf("%s\n",pStr); return 1; } Siehe auch: CSTRMatrix Übersicht | Hierarchie 1.2.5.13.5 CSTRMatrix::GetCols Header: int CSTRMatrix::GetCols(); Beschreibung: Liefert die Anzahl der Spalten. Siehe auch: CSTRMatrix Übersicht | Hierarchie © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 324 1.2.5.13.6 CSTRMatrix::GetDim Header: int CSTRMatrix::GetDim(int nDim); Beschreibung: Liefert eine Dimension der Matrix. Für dim=0 erhält man die Zahl der Zeilen, für dim=1 erhält man die Zahl der Spalten. Beispiel: int method::OnRun() { CSTRMatrix M2; M2.SetDims(2,13); int i=M2.GetDim(1); printf("%i\n",i); return 1; } Siehe auch: CSTRMatrix Übersicht | Hierarchie 1.2.5.13.7 CSTRMatrix::GetDims Header: int CSTRMatrix::GetDims(int* row,int* col); Beschreibung: liefert die Dimensionen der Matrix. Rückgabewert: Anzahl der Elemente in der Matrix. Beispiel: int method::OnRun() { CSTRMatrix M2; M2.SetDims(2,13); int j,k,i; i=M2.GetDims(&j,&k); printf("%i %i %i\n",i,j,k); return 1; } Siehe auch: CSTRMatrix Übersicht | Hierarchie 1.2.5.13.8 CSTRMatrix::GetRows Header: int CSTRMatrix::GetRows(); Beschreibung: liefert die Anzahl der Reihen. Beispiel: int method::OnRun() { CSTRMatrix M; M.SetDims(2,3); © XOn Siftware GmbH, 2008 325 Referenzhandbuch int j=M.GetRows(); printf("%i\n",j); return 1; } Siehe auch: CSTRMatrix Übersicht | Hierarchie 1.2.5.13.9 CSTRMatrix::Max Header: char* CSTRMatrix::Max(); Beschreibung: liefert den lexikalisch maximalen Wert der Matrix. Beispiel: int method::OnRun() { CSTRMatrix M; M.SetDims(2,3); M.SetAt(0,1,"Anna"); M.SetAt(0,2,"Grau"); M.SetAt(0,0,"Halt"); char *j; j=M.Max(); printf("%s\n",j); return 1; } Siehe auch: CSTRMatrix Übersicht | Hierarchie 1.2.5.13.10 CSTRMatrix::Min Header: char* CSTRMatrix::Min(); Beschreibung: liefert den lexikalisch minimalen Wert der Matrix. Beispiel: int method::OnRun() { CSTRMatrix M; M.SetDims(2,3); M.SetAt(0,1,"Anna"); M.SetAt(0,2,"Grau"); M.SetAt(0,0,"Halt"); M.SetAt(1,1,"Hallo2"); M.SetAt(1,2,"Grau2"); M.SetAt(1,0,"Halt2"); char *j; j=M.Min(); printf("%s\n",j); return 1; } Siehe auch: CSTRMatrix Übersicht | Hierarchie © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 326 1.2.5.13.11 CSTRMatrix::SetAt Header: void CSTRMatrix::SetAt(int row,int col,char* newValue); Parameter: · row: Reihe · col: Spalte · newValue: neues Element vom Typ char* Beschreibung: setzt den Wert in Zeile row und Spalte col der Matrix. Ein Matrixeintrag wird nur dann verändert, wenn row und col zulässige Zeilen und Spalten der Matrix sind, d.h. es muß gelten: 0 <= row < Zahl der Zeilen 0 <= col < Zahl der Spalten Beispiel: int method::OnRun() { CSTRMatrix M; M.SetDims(2,3); M.SetAt(0,1,"Anna"); M.SetAt(0,2,"Grau"); M.SetAt(0,0,"Halt"); char *pStr=M.GetAt(0,2); printf("%s\n",pStr); return 1; } Siehe auch: CSTRMatrix Übersicht | Hierarchie 1.2.5.13.12 CSTRMatrix::SetDims Header: void CSTRMatrix::SetDims(int nRow,int nCol); Parameter: · nRow: Anzahl Zeilen · nCol: Anzahl Spalten Beschreibung: Legt die Dimensionen der Matrix fest. Die Zellen der Matrix werden mit leeren Strings vorbelegt. Beispiel: int method::OnRun() { CSTRMatrix M3; M3.SetDims(2,3); char t='t'; M3.Edit(&t); return 1; } Siehe auch: CSTRMatrix Übersicht | Hierarchie © XOn Siftware GmbH, 2008 327 Referenzhandbuch 1.2.6 Obsolet Einige Klassen sind aus Kompatibilität mit älteren Versionen von X1 enthalten. Diese Klassen sollten bei neuen X1- Dokumenten nichtmehr eingesetzt werden. 1.2.6.1 CTimeVect Klicken Sie auf die Felder der Hierarchie für detaillierte Informationen zu den einzelnen Klassen: Methoden : CTimeVect::GetData CTimeVect::GetLen CTimeVect::SetData 1.2.6.1.1 CTimeVect::GetData Syntax: long* CTimeVect::GetData(); Beschreibung: Liefert den Inhalt des Zeitvektors 1.2.6.1.2 CTimeVect::GetLen Syntax: int CTimeVect::GetLen(); Beschreibung: Liefert die Anzahl der Einträge des Datum/Zeit- Kanals. 1.2.6.1.3 CTimeVect::SetData Syntax: int CTimeVect::SetData(long* data,int len); Parameter: data: Zeiger auf einen Datenblock len: Anzahl der Daten im Datenblock © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 328 Beschreibung: Setzt die Länge des Datum/Zeit- Kanals auf len und kopiert die Werte aus data. Rückgabewert: 0 zu viele Daten 1 OK Beispiel: int method::OnRun() { CTimeVect T; long Zeiten[1000],t0; int i; t0=time(); for (i=0;i<1000;i++) Zeiten[i]=t0+i; T.SetData(Zeiten,1000); return 1; } 1.2.6.2 CVector Beschreibung: Die Klasse CVector wurde durch die Klasse CF8Vector ersetzt. Durch eine interne Typdefinition können sie den Bezeichner CVector weiterhin verwenden. Header: typedef CF8Vector CVector ; 1.2.6.3 CMatrix Beschreibung: Die Klasse CMatrix wurde durch die Klasse CF8Matrix ersetzt. Durch eine interne Typdefinition können sie den Bezeichner CMatrix weiterhin verwenden. Header: typedef CF8Matrix CMatrix; 1.2.6.4 GetPoolTimeVect Hinweis: Diese Funktion ist veraltet. Bitte verwenden sie statt dessen GetPoolVDT. Syntax: CTimeVect* GetPoolTimeVect(int idx); CTimeVect* GetPoolTimeVect(char *name); Parameter: idx: Index des gewünschten Pool- Elementes name: Name des gewünschten Pool- Elementes Beschreibung: Liefert einen Zeiger auf das Datenpoolelement mit Index idx oder dem Namen name. Falls ein entsprechendes Element im Datenpool existiert und vom Typ CTimeVect ist, wird ein Zeiger darauf zurückgeliefert, andernfalls wird Null zurückgeliefert. © XOn Siftware GmbH, 2008 329 Referenzhandbuch Rückgabewert: Zeiger auf eine Datumskanal oder Null. Beispiel: int method::OnRun() { int typ; CTimeVect *pTV; typ=GetPoolType(0); if (typ==6) pTV=GetPoolTimeVect(0); return 1; } 1.2.6.5 GetPoolVector Hinweis: Diese Funktion ist veraltet. Bitte verwenden sie statt dessen GetPoolVF8. Syntax: CVector* GetPoolVector(int idx); CVector* GetPoolVector(char *name); Parameter: idx: Index des gewünschten Pool- Elementes name: Name des gewünschten Pool- Elementes Beschreibung: Liefert einen Zeiger auf das Datenpoolelement mit Index idx oder dem Namen name. Falls ein entsprechendes Element im Datenpool existiert und vom Typ CVector ist, wird ein Zeiger darauf zurückgeliefert, andernfalls wird Null zurückgeliefert. Rückgabewert: Zeiger auf einen Vektor oder Null. Beispiel: int method::OnRun() { int typ; CF8Vector *pV; typ=GetPoolType(0); if (typ==4) pV=GetPoolVector(0); return 1; } 1.2.6.6 GetPoolMatrix Hinweis: Diese Funktion ist veraltet. Bitte verwenden sie statt dessen GetPoolMF8. Syntax: CF8Matrix* GetPoolMatrix(int idx); CF8Matrix* GetPoolMatrix(char *name); Parameter: idx: Index des gewünschten Pool- Elementes name: Name des gewünschten Pool- Elementes Beschreibung: © XOn Siftware GmbH, 2008 1.2 Programmierreferenz 330 Liefert einen Zeiger auf das Datenpoolelement mit Index idx oder dem Namen name. Falls ein entsprechendes Element im Datenpool existiert und vom Typ CMatrix ist, wird ein Zeiger darauf zurückgeliefert, andernfalls wird Null zurückgeliefert. Rückgabewert: Zeiger auf eine Matrix oder Null. Beispiel: int method::OnRun() { int typ; CF8Matrix *pM; typ=GetPoolType(0); if (typ==5) pM=GetPoolMatrix(0); return 1; } © XOn Siftware GmbH, 2008 331 Referenzhandbuch Index -__cabs 16 _chdir 56 _filelength 1 _fileno 2 _fullpath 2 _getcwd 56 _getdcwd 56 _getw 2 _hypot 16, 17 _logb 16, 17 _makepath 3 _mkdir 57 _rmdir 57 _searchenv 57 _splitpath 3 _strdate 49 _strnicmp 22, 23 _strnset 22, 23 _strrev 22, 23 _strset 22, 23 _strtime 50 _strupr 22, 24 -Aacos 11 Add 60, 181 AddBar 121 AddDate 181 AddLayer 197 AddNode 147 AddPage 64 AddPie 163 AddTick 117 AddTime 181 AddTrace 133 AsExp 263 asin 11, 12 AsLin 263 AsPoly 263 atan 11, 12 atan2 11, 12 atof 22, 25 atoi 22, 24 atol 22, 24 Attribute 211 -BBeginTrans 76 Bessel-Funktionen 16, 17 beta 16, 18 betai 16, 18 binom 16, 19 Blackman 264 BlackmanHarries 264 -CC data type 95 cabs 16 CanBookmark 89 Cancel 77, 89 CanRestart 90 CanScroll 90 CanTransact 77, 90 CanUpdate 77 CAxisNode AddTick 117 EmptyTicks 117 GetNodeAtt 118 SetNodeAtt 118 CBar2DNode AddBar 121 AddLayer 122 GetNodeAtt 123 SetData 123 SetNodeAtt 124 CBar2DTrace AddLayer 194 GetTraceAtt 194 RemoveLayer 194 SetTraceAtt 194 CBar3DTrace AddLayer 197 GetTraceAtt 197 RemoveLayer 197 SetTraceAtt 198 © XOn Siftware GmbH, 2008 Index CColorMap 60, 61 Add 60 GetColor 61 GetNr 61 GetVal 61 Reset 62 Sort 62 CContourNode GetNodeAtt 126 SetData 127 SetNodeAtt 128 SetNodeData 130 CDatabase 75 BeginTrans 76 Cancel 77 CanTransact 77 CanUpdate 77 CDatabase 78 Close 78 CommitTrans 79 ExecuteSQL 79 GetBookmarkPersistence 79 GetConnect 80 GetCursorCommitBehavior 80 GetCursorRollbackBehavior 80 GetDatabaseName 81 IsOpen 81 m_hdbc 85 OnSetOptions 82 Open 82 OpenEx 83 Rollback 84 SetLoginTimeout 85 SetQueryTimeout 85 CDBVariant CDBVariant 70 Clear 71 GetBinaryData 71 GetBinarySize 71 GetString 72 m_boolVal 72 m_chVal 72 m_dblType 73 m_dwType 73 m_fltVal 73 m_iVal 74 m_lVal 74 m_pbinary 74 m_pdate 74 © XOn Siftware GmbH, 2008 m_pstring 75 CDia GetData 227 GetItem 228 GoFirst 228 GoNext 229 GoTo 229 Read 229 SetItem 229 CDibNode 132 CDTMatrix Copy 318 Edit 318 GetAt 319 GetCols 319 GetData 319 GetDim 319 GetDims 320 GetRows 320 Max 320 Min 321 MinMax 321 SetAt 321 SetDims 321 CDTVector::Append Append 252 CF4Vector 252, 260 Copy 253 Edit 253 FreeExtra 253 GetAt 253 GetData 254 GetSize 254 GetUpperBound 255 InsertAt 255 Max 256 Min 256 MinMax 257 RemoveAll 257 RemoveAt 258 SetAt 258 SetAtGrow 259 SetData 259 SetSize 260 ceil 11, 12 CF4Matrix Copy 312 Edit 313 GetAt 313 332 333 Referenzhandbuch CF4Matrix GetCols 314 GetData 314 GetDim 314 GetDims 315 GetRows 315 Max 315 Min 316 MinMax 316 SetAt 317 SetDims 317 CF4Vector::Append Append 243 CF4Vector 243, 251 Copy 243 Edit 244 FreeExtra 244 GetAt 244 GetData 244 GetSize 245 GetUpperBound 245 InsertAt 246 Max 247 Min 247 MinMax 248 RemoveAll 248 RemoveAt 248 SetAt 249 SetAtGrow 249 SetData 250 SetSize 250 CF8Matrix 300 Add 299 CompDiv 300 CompMult 300 Copy 300 Edit 301 GetAt 301 GetCols 302 GetData 301 GetDim 301 GetDims 302 GetRows 302 Invert 303 Max 303 Min 304 MinMax 304 Mult 304 SetAt 305 SetData 305 SetDims 306 Sub 306 Transpose 306 CF8Vector 265 Add 262 Append 262 AsExp 263 AsLin 263 AsPoly 263 Blackman 264 BlackmanHarries 264 Convolve 265 Copy 265 CosineTapered 265 CrossPower 266 Derivative 266 Div 267 Edit 267 ExactBlackman 267 ExpFit 268 Exponential 268 FFT 269 FHT 269 FIR 270 FIRPara 271 FlatTop 272 Force 272 FreeExtra 273 GaussWhiteNoise 273 GeneralCosine 273 GetAt 274 GetData 274 GetDim 274 GetSize 275 GetUpperBound 275 Hamming 276 Hanning 276 Histogram 277 IFFT 277 IIR 278 InsertAt 278 Integral 279 KaiserBessel 279 Let 280 LinFit 280 Max 281 Mean 281 Median 281 © XOn Siftware GmbH, 2008 Index CF8Vector 265 Min 282 Moment 282 MrqFit 282 Mult 284 PolyFit 284 Power 285 RemoveAll 285 RemoveAt 285 Scalarproduct 286 SetAt 286 SetAtGrow 286 SetData 287 SetDim 288 SetSize 288 Sinus 288 Sort 289 Square 289 Sub 290 Triangle 290 TrianglePattern 291 Variance 291 CGLMaterial 62 Reset 62 SetAlpha 63 SetAmbient 62 SetDiffuse 63 SetEmission 63 SetShininess 63 SetSpecular 63 CGraf2DNode AddTrace 133 DelTrace 134 GetNodeAtt 134 GetTrace 135 GetTraceIndex 135 SetNodeAtt 136 SetTraceData 137 CGraf3DNode GetNodeAtt 140 SetData 141 SetNodeAtt 142 SetNodeData 144 CGrafDoc 64 AddPage 64 DelPage 64 EmptyTrash 65 GetDocAtt 65 GetNrPages 66 © XOn Siftware GmbH, 2008 GetPage 66 GetPageNr 66 GetRoot 66 Invalidate 67 MoveFirst 67 MoveLast 67 MovePage 68 Print 68 SetDocAtt 68 SetFH 69 CGrafNode AddNode 147 Clear 148 DelNode 148 GetDocument 148 GetNodeAtt 148 GetPos 151 GetSize 151 GetSubAxis 151 GetSubLeg 152 GetSubNode 152 GetSubPie 153 GetSubPlane 153 GetSubSzene 154 GetSubText 154 GetSubTransform1D 154 GetSubTransform2D 155 OnEditBackground 155 OnEditColor 156 OnEditData 156 OnEditFont 156 OnEditName 156 OnEditPen 156 SetAbsPos 157 SetNodeAtt 157 SetPos 162 SetSize 162 Check 90 CheckRowsetError chi2_p 16, 19 chi2_q 16, 19 CI4Matrix Copy 307 Edit 307 GetAt 308 GetCols 308 GetData 309 GetDim 309 GetDims 309 91 334 335 Referenzhandbuch CI4Matrix GetRows 310 Max 310 Min 310 MinMax 311 SetAt 311 SetDims 312 CI4Vector::Append 242 Append 234 CI4Vector 234 Copy 234 Edit 234 FreeExtra 235 GetAt 235 GetData 240 GetSize 235 GetUpperBound 236 InsertAt 236 Max 237 Min 237 MinMax 241 RemoveAll 238 RemoveAt 238 SetAt 239 SetAtGrow 239 SetData 241 SetSize 240 CKurve2DTrace GetTraceAtt 203 SetTraceAtt 203 CKurve3DTrace GetTraceAtt 205 SetTraceAtt 205 Clear 71, 148 Close 78, 92, 230 CNamedObj 59 Copy 59 Edit 60 GetName 60 SetName 60 CObject 59 CODBC Close 230 GetColumnName 230 GetColumnType 231 GetDSN 231 GetNrCols 231 GetTableName 232 GoFirstTable 232 GoNextTable 232 LoadColumn 232 Open 233 SetDSN 233 CommitTrans 79 CompDiv 300 CompMult 300 Convolve 265 Copy 59 CopyToPool 38 cos 11, 12 cosh 11, 13 CosineTapered 265 CPaintObj GetTraceAtt 208 SetTraceAtt 209 CPie2DNode AddPie 163 DelPie 163 GetNodeAtt 164 SetData 164 SetNodeAtt 165 CPlaneNode GetNodeAtt SetNodeAtt 167 168 CPPolyTrace GetTraceAtt SetTraceAtt 217 217 CRecordset 86 CanBookmark 89 Cancel 89 CanRestart 90 CanScroll 90 CanTransact 90 Check 90 CheckRowsetError 91 Close 92 CRecordset 92 FlushResultSet 93 GetBookmark 93 GetDefaultConnect 94 GetDefaultSQL 94 GetFieldValue 95 GetODBCFieldCount 97 GetODBCFieldInfo 97 GetRecordCount 97 GetRowsetSize 98 GetRowsFetched 98 © XOn Siftware GmbH, 2008 Index CRecordset 86 GetRowStatus 99 GetSQL 100 GetStatus 99 GetTableName 100 IsBOF 101 IsDeleted 101 IsEOF 102 IsFieldDirty 102 IsFieldNull 103 IsOpen 103 m_hstmt 114 m_nFields 114 m_pDatabase 115 m_pParams 114 Move 104 MoveFirst 105 MoveLast 105 MoveNext 106 MovePrev 106 OnSetOptions 106 Open 107 RefreshRowset 110 Requery 110 SetAbsolutePosition 111 SetBookmark 112 SetLockingMode 112 SetRowsetCursorPosition 113 CRecordsetStatus 99 CRectNode GetNodeAtt 170 SetNodeAtt 170 CSTRMatrix Copy 322 Edit 323 GetAt 323 GetCols 323 GetDim 324 GetDims 324 GetRows 324 Max 325 Min 325 SetAt 326 SetDims 326 CSTRVector 293 Append 292 Copy 292 Edit 293 FreeExtra 293 © XOn Siftware GmbH, 2008 GetAt 293 GetSize 294 GetUpperBound 294 InsertAt 294 Max 295 Min 296 RemoveAll 297 RemoveAt 296 SetAt 297 SetAtGrow 297 SetSize 298 Sort 298 CSzene GetNodeAtt SetNodeAtt 172 173 CTabNode GetData 176 GetNodeAtt 176 SetData 177 SetNodeAtt 177 CText 224 GetData 224 GetLen 225 CTextNode Add 181 AddDate 181 AddTime 181 GetNodeAtt 181 SetData 225 SetNodeAtt 182 SetText 183 CTimeVect GetData 327 GetLen 327 SetData 327 CTransform1D GetNodeAtt 184 GetPhys 185 PUtoLU 185 SetMapMode 185 SetNodeAtt 186 SetPhys 188 CTransform2D GetNodeAtt 188 GetPhys 189 GetTyp 189 PUtoLU 190 SetNodeAtt 190 SetPhys 191 336 337 Referenzhandbuch CTransform2D SetTyp 192 CVect2DTrace GetTraceAtt SetTraceAtt 218 218 CWhiskTrace GetTraceAtt SetTraceAtt 220 220 -DDateifunktionen 1 _filelength 1 _fileno 2 _fullpath 2 _getw 2 _makepath 3 _splitpath 3 CDia 225 CF8Matrix 299 CF8Vector 260 CODBC 230 CTimeVect 327 fclose 4 fdopen 4 feof 5 ferror 5 fflush 5 fgetc 6 fgetpos 6 fgets 6 fopen 6 fprintf 7 fputc 7 fputs 8 fread 8 fscanf 8 fseek 9 ftell 10 getc 10 putc 10 rewind 11 Datenpoolfunktionen 37 CopyToPool 38 GetPoolDia 38 GetPoolIndex 39 GetPoolMatrix 329 GetPoolMDT 39 GetPoolMF8 40 GetPoolMI4 40 GetPoolMSTR 41 GetPoolName 42 GetPoolODBC 42 GetPoolSize 42 GetPoolText 43 GetPoolTimeVect 328 GetPoolType 43 GetPoolVDT 44 GetPoolVector 329 GetPoolVF8 44 GetPoolVI4 45 GetPoolVSTR 46 RemoveFromPool 46 SetPoolName 46 Datum und Uhrzeit _strdate 49 _strtime 50 difftime 50 KillTimer 50 mktime 50 SetTimer 51 strftime 51 time 52 49 DelNode 148 DelPage 64 DelPie 163 DelTrace 134 Derivative 266 difftime 50 Div 267 -EEdit 60 EmptyTicks 117 EmptyTrash 65 erf 16, 19 erfc 16, 20 Erweiterte Mathematikfunktionen ExactBlackman 267 ExecuteSQL 79 exp 11, 13 ExpFit 268 Exponential 268 16 © XOn Siftware GmbH, 2008 Index -Ff_distr 16, 20 fabs 11, 13 fclose 4 fdopen 4 feof 5 ferror 5 fflush 5 FFT 269 fgetc 6 fgetpos 6 fgets 6 FHT 269 FileDialog 52 FIR 270 FIRPara 271 FlatTop 272 floor 11, 13 FlushResultSet 93 fopen 6 Force 272 Formatstrings 51 fprintf 7 fputc 7 fputs 8 fread 8 free 49 frexp 16, 20 fscanf 8 fseek 9 ftell 10 -Ggammp 16, 20 gammq 16, 21 gasdedv 21 gasdev 16 GaussWhiteNoise 273 GeneralCosine 273 GetAt 301 GetBinaryData 71 GetBinarySize 71 GetBookmark 93 GetBookmarkPersistence © XOn Siftware GmbH, 2008 79 GetBValue 55 getc 10 GetColor 61 GetColumnName 230 GetColumnType 231 GetConnect 80 GetCursorCommitBehavior GetCursorRollbackBehavior GetData 176 GetDatabaseName 81 GetDefaultConnect 94 GetDefaultSQL 94 GetDim 301 GetDocAtt 65 GetDocument 148 GetDSN 231 GetFieldValue 95 GetGValue 55 GetItem 228 GetLen 327 GetName 60 GetNodeAtt 170, 172 GetNr 61 GetNrCols 231 GetNrPages 66 GetODBCFieldCount 97 GetODBCFieldInfo 97 GetPage 66 GetPageNr 66 GetPhys 189 GetPoolDia 38 GetPoolIndex 39 GetPoolMatrix 329 GetPoolMDT 39 GetPoolMF8 40 GetPoolMI4 40 GetPoolMSTR 41 GetPoolName 42 GetPoolODBC 42 GetPoolSize 42 GetPoolText 43 GetPoolTimeVect 328 GetPoolType 43 GetPoolVDT 44 GetPoolVector 329 GetPoolVF8 44 GetPoolVI4 45 80 80 338 339 Referenzhandbuch GetPoolVSTR 46 GetRecordCount 97 GetRoot 66 GetRowsetSize 98 GetRowsFetched 98 GetRowStatus 99 GetRValue 54 GetSQL 100 GetStatus 99 GetString 72 GetTableName 100, 232 GetTrace 135 GetTraceAtt 205 GetTraceIndex 135 GetTyp 189 GetVal 61 GlobalAlloc 47 GlobalFree 48 GlobalLock 48 GlobalUnlock 48 GoFirst 228 GoFirstTable 232 GoNext 229 GoNextTable 232 GoTo 229 Grafikelemente Übersicht 115 Grafikobjekte 37 CAxisNode 116 CBar2DNode 121 CContourNode 126 CDibNode 132 CGraf2DNode 132 CGraf3DNode 140 CGrafNode 146 CPie2DNode 162 CPlaneNode 166, 169 CSzene 172 CTabNode 175 CTextNode 180 CTransform1D 184 CTransform2D 188 -HHamming 276 Hanning 276 Histogram 277 -IIFFT 277 IIR 278 Integral 279 Invalidate 53, 67 Invert 303 IsBOF 101 IsDeleted 101 IsEOF 102 IsFieldDirty 102 IsFieldNull 103 IsOpen 81, 103 -KKaiserBessel 279 KillTimer 50 Klassenreferenz Dateifunktionen 1 Datenpoolfunktionen 37 Datum und Uhrzeit 49 Mathematifunktionen 11 Sonstige Funktionen 52 Stringmanipulation 22 -Llinear 118, 186 LinFit 280 LoadColumn 232 log 11, 13 log10 11, 14 logarithmisch 118, 186 Logit 118, 186 -Mm_boolVal 72 m_bRecordCountFinal m_chVal 72 m_dblType 73 m_dwType 73 m_fltVal 73 m_hdbc 85 99 © XOn Siftware GmbH, 2008 Index m_hstmt 114 m_iVal 74 m_lCurrentRecord 99 m_lVal 74 m_nFields 114 m_pbinary 74 m_pDatabase 115 m_pdate 74 m_pParams 114 malloc 49 Mathematifunktionen 11 _cabs 16 _hypot 17 _logb 17 acos 11 asin 12 atan 12 atan2 12 Bessel-Funktionen 17 beta 18 betai 18 binom 19 ceil 12 chi2_p 19 chi2_q 19 cos 12 cosh 13 erf 19 erfc 20 exp 13 f_distr 20 fabs 13 floor 13 frexp 20 gammp 20 gammq 21 gasdev 21 log 13 log10 14 modf 21 poisson 21 pow 14 ran1 14 rand 14 sin 14 sinh 15 sqrt 15 srand 15 student 22 © XOn Siftware GmbH, 2008 tan 15 tanh 15 Max 303 Mean 281 MessageBox 53 Min 304 mktime 50 modf 16, 21 Moment 282 Move 104 MoveFirst 67, 105 MoveLast 67, 105 MoveNext 106 MovePage 68 MovePrev 106 mpstring 75 Mult 304 -NNormalverteilung 118, 186 -OOnEditBackground 155 OnEditColor 156 OnEditData 156 OnEditFont 156 OnEditName 156 OnEditPen 156 OnSetOptions 82, 106 Open 82, 107, 233 OpenEx 83 -Ppoisson 16, 21 PolyFit 284 pow 11, 14 Power 285 Print 68 putc 10 PUtoLU 190 -Rran1 14, 16 340 341 Referenzhandbuch rand 11, 14 Read 229 RefreshRowset 110 RemoveFromPool 46 RemoveLayer 197 Requery 110 Reset 62 rewind 11 Reziprok 118, 186 Reziprok verschoben 118, 186 RGB 55 Rollback 84 -SSertAmbient 62 SetAbsolutePosition 111 SetAbsPos 157 SetAlpha 63 SetAt 305 SetBookmark 112 SetData 141 SetDiffuse 63 SetDocAtt 68 SetDSN 233 SetEmission 63 SetFH 69 SetItem 229 SetLockingMode 112 SetLoginTimeout 85 SetMapMode 185 SetName 60 SetNodeAtt 170, 173 SetNodeData 144 SetPhys 191 SetPoolName 46 SetPos 162 SetQueryTimeout 85 SetRowsetCursorPosition 113 SetShininess 63 SetSize 162 SetSpecular 63 SetText 183 SetTimer 51 SetTraceAtt 205 SetTraceData 137 SetTyp 192 sin 11, 14 sinh 11, 15 Sinus 288 Sonstige Funktionen 52 Sort 62 Speichermanagement 47 GlobalAlloc 47 GlobalFree 48 GlobalLock 48 GlobalUnlock 48 sprintf 22, 25 SQL_BIGINT 95 SQL_BINARY 95 SQL_BIT 95 SQL_C_BINARY 95 SQL_C_BIT 95 SQL_C_CHAR 95 SQL_C_DOUBLE 95 SQL_C_FLOAT 95 SQL_C_SLONG 95 SQL_C_SSHORT 95 SQL_C_TIMESTAMP 95 SQL_C_UTINYINT 95 SQL_CHAR 95 SQL_DATE 95 SQL_DECIMAL 95 SQL_DOUBLE 95 SQL_ERROR 90, 91 SQL_FETCH_ABSOLUTE 104 SQL_FETCH_BOOKMARK 104 SQL_FETCH_FIRST 104 SQL_FETCH_LAST 104 SQL_FETCH_NEXT 104 SQL_FETCH_PRIOR 104 SQL_FETCH_RELATIVE 104 SQL_FLOAT 95 SQL_INTEGER 95 SQL_INVALID_HANDLE 90, 91 SQL_LOCK_EXCLUSIVE 110 SQL_LOCK_NO_CHANGE 110 SQL_LOCK_UNLOCK 110 SQL_LONGVARBINARY 95 SQL_LONGVARCHAR 95 SQL_NEED_DATA 90 SQL_NO_DATA_FOUND 90, 91 SQL_NUMERIC 95 SQL_REAL 95 © XOn Siftware GmbH, 2008 Index SQL_ROW_ADDED 99 SQL_ROW_DELETED 99 SQL_ROW_ERROR 99 SQL_ROW_NOROW 99 SQL_ROW_SUCCESS 99 SQL_ROW_UPDATED 99 SQL_SMALLINT 95 SQL_STILL_EXECUTING 90, 91 SQL_SUCCESS 90, 91 SQL_SUCCESS_WITH_INFO 90, 91 SQL_TIME 95 SQL_TIMESTAMP 95 SQL_TINYINT 95 SQL_VARBINARY 95 SQL_VARCHAR 95 sqrt 11, 15 Square 289 srand 11, 15 sscanf 22, 29 strcat 22, 31 strchr 22, 31 strcmp 22, 32 strcoll 22, 32 strcpy 22, 32 strcspn 22, 33 strerror 22, 33 strftime 51 stricmp 22, 33 Stringmanipulation 22 _strnicmp 23 _strnset 23 _strrev 23 _strset 23 _strupr 24 atof 25 atoi 24 atol 24 sprintf 25 sscanf 29 strcat 31 strchr 31 strcmp 32 strcoll 32 strcpy 32 strcspn 33 strerror 33 stricmp 33 strlen 33 © XOn Siftware GmbH, 2008 strlwr 34 strncat 34 strncmp 34 strncpy 34 strpbrk 35 strrchr 35 strspn 35 strstr 36 strtok 36 strtol 36 strxfrm 37 strlen 22, 33 strlwr 22, 34 strncat 22, 34 strncmp 22, 34 strncpy 22, 34 strpbrk 22, 35 strrchr 22, 35 strspn 22, 35 strstr 22, 36 strtok 22, 36 strtol 22, 36 strxfrm 22, 37 student 16, 22 Sub 306 -Ttan 11, 15 tanh 11, 15 time 52 Transpose 306 Triangle 290 TrianglePattern 291 -VVariance 291 Verzeichnisfunktionen 55 -WWeibulverteilung 118, 186 -ZZeitachse 118, 186 342 Back Cover