Bestenliste.cpp 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. #include "Bestenliste.h"
  2. Bestenliste::Bestenliste( int id )
  3. : Variable( BESTENLISTE )
  4. {
  5. this->id = id;
  6. sichtbar = 1;
  7. }
  8. void Bestenliste::setSichtbar( bool sichtbar )
  9. {
  10. this->sichtbar = sichtbar;
  11. }
  12. void Bestenliste::addSpalte( const char* name )
  13. {
  14. spalten.add( new Text( name ) );
  15. }
  16. void Bestenliste::addZeile( const char* name )
  17. {
  18. zeilen.add( new Text( name ) );
  19. }
  20. void Bestenliste::setWert( const char* spalte, const char* zeile, const char* wert )
  21. {
  22. int spalteI = 0;
  23. for( auto s = spalten.begin(); s; s++, spalteI++ )
  24. {
  25. if( s->istGleich( spalte ) )
  26. break;
  27. }
  28. int zeileI = 0;
  29. for( auto z = zeilen.begin(); z; z++, zeileI++ )
  30. {
  31. if( z->istGleich( zeile ) )
  32. break;
  33. }
  34. if( !werte.z( zeileI ) )
  35. werte.set( new RCArray< Text >(), zeileI );
  36. werte.z( zeileI )->set( new Text( wert ), spalteI );
  37. }
  38. const char* Bestenliste::getWert( const char* spalte, const char* zeile )
  39. {
  40. int spalteI = 0;
  41. for( auto s = spalten.begin(); s; s++, spalteI++ )
  42. {
  43. if( s->istGleich( spalte ) )
  44. break;
  45. }
  46. int zeileI = 0;
  47. for( auto z = zeilen.begin(); z; z++, spalteI++ )
  48. {
  49. if( z->istGleich( zeile ) )
  50. break;
  51. }
  52. if( !werte.z( zeileI ) || !werte.z( zeileI )->hat( spalteI ) )
  53. return "";
  54. return werte.z( zeileI )->z( spalteI )->getText();
  55. }