// Parameterliste.cpp: Implementierung der Klasse Parameterliste. // ////////////////////////////////////////////////////////////////////// #include "stdafx.h" #include "Parameterliste.h" ////////////////////////////////////////////////////////////////////// // Konstruktion/Destruktion ////////////////////////////////////////////////////////////////////// Parameterliste::Parameterliste() { maxparameter = 0; lastparameter = -1; for (int i=0; i<100; i++) used[i]=0; } Parameterliste::~Parameterliste() { //lösche alle Parameter wieder } void Parameterliste::loadParam(char x[MAXZEILE]) { char paramname[MAXPARAMNAME]; int i=0; int lx=strlen(x); if (lx>0) { int istkommentar=0; int teilDesNamens = 1; while ((i=0)&&(paramname[l]==' ')) paramname[l--]='\0'; //gibt es diesen Parameter schon? int index = findParameter(paramname); if (index==-1) { index = maxparameter++; } strcpy (parametername[index], paramname); //extrahiere Parameterwert parameterwert[index][0] = '\0'; teilDesNamens = 1; istkommentar=0; int starti = i; while ((i=0)&&(parameterwert[index][l]==' ')) parameterwert[index][l--]='\0'; // der Rest ist Kommentar kommentar[index][0] = '\0'; while ((i=0)&&(kommentar[index][l]==' ')) kommentar[index][l--]='\0'; } lastparameter = index; } // if lx>0, also überhaupt etwas zu tun ist } int Parameterliste::findParameter(char paramname[MAXPARAMNAME]) { if (strcmp(paramname, "\0") == 0) return -1; // ein leerer String ist immer neu else { int i = 0; for (i=0; i<=maxparameter-1; i++) if (strcmp(paramname, parametername[i]) == 0) return i; return -1; // nicht gefunden } } char* Parameterliste::readParameter(char paramname[MAXPARAMNAME]) { int i = findParameter(paramname); if (i==-1) return ""; else return parameterwert[i]; } char* Parameterliste::getLastParameter() { int i = lastparameter; if (i==-1) return ""; else return parametername[i]; } char* Parameterliste::strOutputParameterIntern(int i, char *wert /* buffer */) { //char wert[MAXZEILE]; wert[0]='\0'; if (i>-1){ int j = sprintf(wert, "%s = %s; -- %s" , parametername[i], parameterwert[i], kommentar[i]); used[i] = 1; } return wert; } char* Parameterliste::strOutputParameter(char paramname[MAXPARAMNAME], char *wert /* buffer */) { int i = findParameter(paramname); //char wert[MAXZEILE]; wert[0]='\0'; if (i>-1){ int j = sprintf(wert, "%s = %s; " , parametername[i], parameterwert[i]); used[i] = 1; } return wert; } char* Parameterliste::strOutputParameterNotYet(char *wert /* buffer */) { for (int i=0; i