title image


Smiley Re: zu integer Zeichen das zugehörige ASCII Zeichen
hallo,



.. ein Lösungsansatz:



- die zu "füllenden" int-variablen werden global deklariert.

- in der Struktur verweist Du auf die Variablen (Zeiger).

- die Funktion setze_parameter klappert die Struktur durch und falls

der Text gefunden dann wird die Varable gefüllt.





hingeferkelt könnte das so aussehen:





#include <stdio.h>

#include <stdlib.h>





int pgain = (int) 0;

int igain = (int) 0;

int SciaRegs_SCITXBUF = (int) 0;



typedef struct {

char *name;

int *value;

} WERTE;



WERTE data [] = {

{ "pgain", &pgain },

{ "igain", &igain },

{ "SciaRegs.SCITXBUF", &SciaRegs_SCITXBUF },

{ (char *) 0, (int *) 0 }

};



int setze_parameter ( char *, int );





int main(int argc, char *argv[] )

{



WERTE *ptr;

char *s_ptr;



if ( setze_parameter ( "pgain", 1 ) != 0 ) {

printf ( "FEHLER\n" );

} else {

printf ( "OK\n" );

}

if ( setze_parameter ( "igain", 2) != 0 ) {

printf ( "FEHLER \n" );

} else {

printf ( "OK\n" );

}

if ( setze_parameter ( "SciaRegs.SCITXBUF", 3) != 0 ) {

printf ( "FEHLER \n" );

} else {

printf ( "OK\n" );

}

if ( setze_parameter ( "Banane", 4 ) != 0 ) {

printf ( "FEHLER \n" );

} else {

printf ( "OK\n" );

}



printf ( "\nAUSGABE:\n" );

ptr = data;

while ( ptr->name ) {

printf ( "%s = %d\n", ptr->name, *ptr->value );

ptr++;

}





getchar ( );

return ( 0 );

}





int setze_parameter ( char *par, int value )

{

WERTE *ptr;

if ( par == (char *) 0) return ( -1 );



ptr = data;

while ( ptr->name ) {

if ( strcmp ( par, ptr->name ) == 0 ) {

*ptr->value = value;

return ( 0 );

}

ptr++;

}

return ( -1 );



}







Gruss d_A





geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: