002
10.08.2002, 13:09 Uhr
~Rolli
Gast
|
Hi virtual, hier ist mein Code. Ich bin mittlerweile so weit, dass ich max. 20 spalten auslesen kann und die dann als String in variabelen umkopiere. Wundert euch bitte nicht über die komische Syntax, ich programmiere hier ein Script in WinCC, einer Visualisierung aus dem Hause Siemens. Man kann hier wenn man etwas spezielles braucht ein Skript in C schreiben. Daher meine rudimentären Kenntnisse. Ich bin eigentlich automatisierer und nicht programmierer.
Also, was fehlt ist ist noch die Variabilität. Müsste mit einer prüfung wie oft dass Komma in dem Ursprünglichen String vorhanden ist getan sein. Die Umwandlung bekomme ich schon hin
C++: |
// WINCC:TAGNAME_SECTION_START // syntax: #define TagNameInAction "DMTagName" // next TagID : 1 // WINCC:TAGNAME_SECTION_END
// WINCC:PICNAME_SECTION_START // syntax: #define PicNameInAction "PictureName" // next PicID : 1 // WINCC:PICNAME_SECTION_END #define Tag_Spalte "Spalte" #define Tag_Feld0 "Feld_0" #define Tag_Feld1 "Feld_1" #define Tag_Feld2 "Feld_2" #define Tag_Feld3 "Feld_3" #define Tag_Feld4 "Feld_4" #define Tag_Feld5 "Feld_5" #define Tag_Feld6 "Feld_6" #define Tag_Feld7 "Feld_7" #define Tag_Feld8 "Feld_8" #define Tag_Feld9 "Feld_9" #define Tag_Feld10 "Feld_10" #define Tag_Feld11 "Feld_11" #define Tag_Feld12 "Feld_12" #define Tag_Feld13 "Feld_13" #define Tag_Feld14 "Feld_14" #define Tag_Feld15 "Feld_15" #define Tag_Feld16 "Feld_16" #define Tag_Feld17 "Feld_17" #define Tag_Feld18 "Feld_18" #define Tag_Feld19 "Feld_19"
#define GetObjectA GetObject long ret; //, bEnabled ; __object *pdl, *pic, *ocx; int f, i, j;
// Variablen Definieren für SQL-Skriptausführung char werte[512]; // Array für Zeichenkette auslesen char felder[20][128]; // Feld von 0-19 (=20 Stück) für Umwandlung in variablen vorsehen
// Variablen initialisieren f=0; // Zählschleife für Felder i=0; // Zählschleife für Werte j=0; // Hilfszählschlife
// WinCC-Runtime-Object öffnen pdl = __object_create("PDLRuntime") ; if ( pdl != NULL ) { pic = pdl -> GetPicture ( lpszPictureName) ; if ( pic != NULL ) { // die folgende Zeile ändern ********************************************************** ocx = pic -> GetObject("DBXGrid1") ; // hier den Namen des Controls eintragen if ( ocx != NULL ) { // die folgende Zeile ändern ************************************ memset(werte, 0, 512); //werte == ocx ->GetSelectedData(); strcpy(werte, ocx ->GetSelectedData()); printf("String: %s\n\n", werte); SetTagChar(Tag_Spalte,werte); //Rückgabe-Typ :BOOL __object_delete(ocx) ; // Handle auf OCX löschen } __object_delete(pic) ; // Handle auf Bild löschen } __object_delete(pdl) ; // Handle auf WinCC-Runtime-Object löschen } //********************************** // Werte in Hilfsvariabelelen umkopieren //**********************************
//********************************** // Felder von Variablelen vorbelegen //********************************** for (i=0; i<20; i=i+1) { memset(felder[i], 0, 127); } i=0; j=0; f=0;
while (werte[i] != '\0') { if (werte[i] != ';') { felder[f][j] = werte[i]; j++; } else { j=0; f++; } i++; // Buchstabenzähler erhöhen };
//********************************** // Felder in Variablelen umkopieren //********************************** SetTagChar(Tag_Feld0,felder[0]); //Rückgabe-Typ :BOOL SetTagChar(Tag_Feld1,felder[1]); //Rückgabe-Typ :BOOL SetTagChar(Tag_Feld2,felder[2]); //Rückgabe-Typ :BOOL SetTagChar(Tag_Feld3,felder[3]); //Rückgabe-Typ :BOOL SetTagChar(Tag_Feld4,felder[4]); //Rückgabe-Typ :BOOL SetTagChar(Tag_Feld5,felder[5]); //Rückgabe-Typ :BOOL SetTagChar(Tag_Feld6,felder[6]); //Rückgabe-Typ :BOOL SetTagChar(Tag_Feld7,felder[7]); //Rückgabe-Typ :BOOL SetTagChar(Tag_Feld8,felder[8]); //Rückgabe-Typ :BOOL SetTagChar(Tag_Feld9,felder[9]); //Rückgabe-Typ :BOOL SetTagChar(Tag_Feld10,felder[10]); //Rückgabe-Typ :BOOL SetTagChar(Tag_Feld11,felder[11]); //Rückgabe-Typ :BOOL SetTagChar(Tag_Feld12,felder[12]); //Rückgabe-Typ :BOOL SetTagChar(Tag_Feld13,felder[13]); //Rückgabe-Typ :BOOL SetTagChar(Tag_Feld14,felder[14]); //Rückgabe-Typ :BOOL SetTagChar(Tag_Feld15,felder[15]); //Rückgabe-Typ :BOOL SetTagChar(Tag_Feld16,felder[16]); //Rückgabe-Typ :BOOL SetTagChar(Tag_Feld17,felder[17]); //Rückgabe-Typ :BOOL SetTagChar(Tag_Feld18,felder[18]); //Rückgabe-Typ :BOOL SetTagChar(Tag_Feld19,felder[19]); //Rückgabe-Typ :BOOL
|
|