Char auf Wert überprüfen.



  • Hi Leute,

    ich hänge schon seit längerem an einem kleinen Problem das ich bisher sehr umständlich gelöst habe:
    Situation.
    Ich habe verschiedene Server mit PW und User die ich in einer Structure speicher:

    struct serverlist
    {
      char user[255];
      char server[255];
      char password[255];
    }
    

    Das ganze wird noch in ein Textfile gespeichert, folgende Syntax:
    server|user|password|\n
    Ist kein Problem.
    Ich mache am Anfang des Programms gleich eine Membervariable auf der struct serverlist:

    serverlist m_structlist[1024];
    

    Beim speichern eines neuen Eintrags möchte ich jetzt überprüfen ob der Eintrag schon vorhanden ist und vorallem auch nur die Einträge in das textfile speichern die auch einen Wert haben.

    FILE *Stream;
    	int nitems = 1024; 
    	int i;
    	int x=0;
    	bool nfound=false;
    	char tmpname[255];
    	char *pserver;
    	char chrname[255];
    	pserver=chrname;
    
    	GetDlgItem(IDC_SERVERADDRESS)->GetWindowText(tmpname,255);
    
    	for (i=0; i<nitems; i++)
    	{
    		*pserver='\0';
    		strcat(pserver,m_structlist[i].server);
    		if (strlen(pserver) > 0) 
    		{
    			x++;
    		}
    	}
    

    Wenn pserver '' ist dann knallts bei (strlen).
    Ich kann auch leider m_structlist[i].server nicht auf NULL vergleichen da das ding immer mit denen hier "ÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌ" gefüllt ist.
    Kann man das irgendwie überprüfen ob ein car nur Ì ist?
    Danke!!!



  • Habs selber gelöst.
    Ich arbeite jetzt nichtmehr mit dem statischen Wert 1024 sondern mit 1 und
    erweitere den structurepointer dann dynamisch:

    void CConnectionDlg::resizeStruct(int nsize)
    {
    if (nsize > 0)
    {
    	int i=0;
    	structlist * poldlist=(structlist*) new structlist[(m_structsize + nsize)];
    	for (i=0;i<m_structsize;i++)
    	{
    		poldlist[i]=m_pstructlist[i];
    	}
    	delete [] m_pstructlist;
    	m_pstructlist=(structlist*) new structlist[(m_structsize + nsize)];
    	for (i=0;i <m_structsize; i++)
    	{
    	  m_pstructlist[i]=poldlist[i];
    	}
    	delete [] poldlist;
    	//m_pstructlist=(structlist*)new structlist[(m_structsize + nsize)];
    	m_structsize+=nsize;
    }
    
    }
    

    Bye


Anmelden zum Antworten