dynamisches Feld



  • Hi,
    Wie kann ich aus einem statischen Feld ein dyn. Feld erzeugen:
    Also ich habe eine Struktur mit 100 Einträgen, die noch 2 weitere Strukturen enthält:

    sSpeicher Memory[100];
    
    struct sSpeicher				// Speicher[Integer] = ID-Nummer
    {
    	bool				used;
    	sParameter			parameter;
    	sTabelle				tabelle;
    
    	sSpeicher()
    	{
    		used						= false;
    	}
    };
    struct sParameter
    {
    	unsigned short int			ParNummer;
        char			ParName	PAR_SIZE_NAME];
    	char	         ParTyp;
    	bool	         ParStimulieren;		// true = stimulieren
    	unsigned char	ParIBuffer;
        char			ParMaske		[PAR_SIZE_MASKE];
    	unsigned short int		ParMaskeDez;
        double			ParOffset;
    	double			ParSkalierung;
    	char							ParPhysikEinheit[PAR_SIZE_EINHEIT];
    	bool	ParVorzeichen;// true = höchstwertiges Bit = '-'
    	bool	ParMinMax;// true = MinMax Werte vorhanden
    	double	ParMaxWert;	
    	double	ParMinWert;	
    	char	ParDarstellungsart;
    
    	sParameter()	// Werte initialisieren
    	{
    		ParNummer		= 0;
    		ParName[0]		= '\0';
    		ParTyp		= 0;
    		ParStimulieren	= false;
    		ParIBuffer	= 0;
    		ParMaske[0]	= '\0';
    		ParMaskeDez		= 65535;					// FFFFh  Alle Stellen binär = 1 !!!
    		ParOffset				= 0;
    		ParSkalierung			= 1;
    		ParPhysikEinheit[0]		= '\0';
    		ParVorzeichen			= false;
    		ParMinMax				= false;
    		ParMaxWert		= 0;
    		ParMinWert			= 0;
    		ParDarstellungsart			= 0;
    	}
    };
    

    Bis jetzt ist es statisch. Jetzt will ich ein dyn Feld daraus machen mit
    List oder Vector.
    Wie kann ich die Daten, die jetzt in in meinem Memory[id] sind
    in dyn Feld kopieren und dann ausgeben.
    Ein Beispiel wäre nicht schlecht 🙂

    Danke!!!!!!!!



  • Mit CList relativ einfach:

    CList<sSpeicher,sSpeicher&> myList;
    
    	sSpeicher s1;
    	myList.AddTail(s1);
    
    	sSpeicher s2;
    
    	POSITION pos = myList.GetHeadPosition();
    	for (int i=0;i < myList.GetCount();i++)
    	{
    	   s2 = myList.GetNext(pos);
    	}
    

    du kannst auch direkt mit GetAt suchen, aber das ist wohl mit deinem Stuct nicht möglich.

    Falls dir der zugriff zu kompliziert ist, mach dir einfach eine doppelt verkettete liste oder sowas... Wobei das hier schon so eine liste darstelt.

    und die "[0]" bei chars kannst du dir sparen...


Anmelden zum Antworten