tutorials.de Buch-Aktion 05/2012
Like Tree1Danke
  • 1 Beitrag von cefour
ERLEDIGT
JA
ANTWORTEN
6
ZUGRIFFE
418
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von fish-guts
    fish-guts fish-guts ist offline Mitglied Gold
    Registriert seit
    Nov 2004
    Ort
    Schaffhausen (Schweiz)
    Beiträge
    209
    Hi Zusammen

    Ich versuche, mir mit einem Array einen Haufen Case Marken zu sparen.

    Folgendes möchte ich realisieren:

    Code :
    1
    2
    3
    
    static char *test[] = {
       { "test1" , funktion1 }
    };

    Wenn in einem Suchlauf "test" gefunden wird, soll die Funktion funktion1() aufgerufen werden. Gibt es eine Möglichkeit, das irgendwie zu realisieren?

    Danke für die Hilfe!

    Gruss

    FG
     
    Voice of Silence - http://www.voiceofsilence.ch - Punkrock from Schaffhausen, check it out!

  2. #2
    cefour cefour ist offline Grünschnabel
    Registriert seit
    Mar 2008
    Beiträge
    3
    Hi
    schon mal an eine Map gedacht

    sowas wie das hier

    map<string,void (*)()> fuinctionArray;

    Mit freiundlichen Gruß
    Cefour
     

  3. #3
    Avatar von fish-guts
    fish-guts fish-guts ist offline Mitglied Gold
    Registriert seit
    Nov 2004
    Ort
    Schaffhausen (Schweiz)
    Beiträge
    209
    Hallo

    Sorry, hab noch vergessen hinzuschreiben, dass das Programm in C ist. map scheiedet somit aus. Danke trotzdem

    Gruss

    FG
     
    Voice of Silence - http://www.voiceofsilence.ch - Punkrock from Schaffhausen, check it out!

  4. #4
    cefour cefour ist offline Grünschnabel
    Registriert seit
    Mar 2008
    Beiträge
    3
    Dann folgendes

    struct functionMap
    {
    char * functionName;
    void (*f)();
    };

    Mit freundlichen Gruß
    Cefour
     

  5. #5
    Avatar von fish-guts
    fish-guts fish-guts ist offline Mitglied Gold
    Registriert seit
    Nov 2004
    Ort
    Schaffhausen (Schweiz)
    Beiträge
    209
    Hallo

    Das klingt schon mal nicht schlecht. Wie funktioniert denn nun der Aufruf wenn folgendes gegeben ist:


    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    
    struct _function 
     
    typedef struct _function func;
     
    {
       char * functionName;
              void (*f)();
    };
     
    static func fn[] = {
       { "test" , funktion1 }
    };
     
    static void funktion1(char *arg)
    {
       ...
    }

    Ich habe keinen Peil

    Gruss

    FG
     
    Voice of Silence - http://www.voiceofsilence.ch - Punkrock from Schaffhausen, check it out!

  6. #6
    cefour cefour ist offline Grünschnabel
    Registriert seit
    Mar 2008
    Beiträge
    3
    jetzt müsstest du dir nur eine noch eine Fuction schreiben die das array nach dem dan namen dursucht und die function ausführt allso so in dieser art


    void fuehreaus(functionStruct * functionArray,char *name,int sizeOfFunctionArray)
    {
    int i ;
    for(i = 0; i< sizeOfFunctionArray;i++)
    {
    if(strcmp(functionArray[i].name,name) == 0)
    {
    functionArray[i].f();
    return;
    }
    }
    }

    das ding müsste so klappen gibt aber keine Fehlerausgabe noch sonstwas
    aus
    Gruß
    Cefour
    fish-guts bedankt sich. 

  7. #7
    Avatar von fish-guts
    fish-guts fish-guts ist offline Mitglied Gold
    Registriert seit
    Nov 2004
    Ort
    Schaffhausen (Schweiz)
    Beiträge
    209
    Moin

    Nun funktioniert alles! Vielen Dank für deine Hilfe

    Gruss


    FG
    Geändert von fish-guts (01.03.08 um 20:37 Uhr)
     
    Voice of Silence - http://www.voiceofsilence.ch - Punkrock from Schaffhausen, check it out!

Ähnliche Themen

  1. Antworten: 3
    Letzter Beitrag: 13.03.10, 10:22
  2. PHP Funktion Array zurückgeben
    Von chriss_2oo4 im Forum PHP
    Antworten: 6
    Letzter Beitrag: 25.01.10, 18:35
  3. Array als Argument in Funktion(C++)
    Von the_undertaker im Forum C/C++
    Antworten: 10
    Letzter Beitrag: 20.05.07, 18:13
  4. Funktion in Array aufrufen
    Von Bogat im Forum PHP
    Antworten: 6
    Letzter Beitrag: 24.09.06, 18:04
  5. Array zurückgeben (Funktion)
    Von Danielku15 im Forum C/C++
    Antworten: 2
    Letzter Beitrag: 29.09.05, 12:38