Mal wieder ein Registry Prob. beim auslesen der Werte....



  • Hallöchen!

    Hab ein Problem mit beim auslesen.

    Also zunächst einmal hab ich meine benötigten Werte wie folgt in die Reg geschrieben:

    http://ksr-bergstrasse.de/images/reg.jpg

    Dann versuche ich wie folgt die 50 Strings aus der Reg auszulesen:

    CRegKey key;
    char buffer[256]
    DWORD dwCount = sizeof( buffer);
    CString tmp;
    
    if(key.Open( HKEY_CURRENT_USER, "Software\\FBSoft\\Abiplaner\\TimeTable", KEY_READ) == ERROR_SUCCESS)
    	{
    	for(int i=0;i<50;i++)
    	{
    		tmp.Format("%d",i);
    		key.QueryStringValue(tmp,buffer,&dwCount);
    		time->Add(buffer);
    		strcpy(buffer,"");
    	}
    	key.close();
    	}
    else
    {
    	AfxMessageBox("Fehler");
    	SetRegDefaultTimeTable();
    }
    

    Aber ab dem 10. Wert sprich wie auf dem Bild zu sehen is steht ab 9:40 immer nur noch 9:40 drin. Hab sogar schon versucht alle Werte ohne Schleife auszulesen, aber selbst das hat nicht geklappt. Ich kann mir leider nicht erklären wie es so ist...

    Vielen Dank schonmal für eure Hilfe!

    Chris



  • DarkAzReaL schrieb:

    Hallöchen!

    Hab ein Problem mit beim auslesen.

    Also zunächst einmal hab ich meine benötigten Werte wie folgt in die Reg geschrieben:

    http://ksr-bergstrasse.de/images/reg.jpg

    Dann versuche ich wie folgt die 50 Strings aus der Reg auszulesen:

    CRegKey key;
    char buffer[256]
    DWORD dwCount;
    CString tmp;
    
    if(key.Open( HKEY_CURRENT_USER, "Software\\FBSoft\\Abiplaner\\TimeTable", KEY_READ) == ERROR_SUCCESS)
    	{
    	for(int i=0;i<50;i++)
    	{
    	        tmp.Format("%d",i);
                    dwCount = sizeof( buffer);
    	        key.QueryStringValue(tmp,buffer,&dwCount);
    	        time->Add(buffer);
    	        strcpy(buffer,"");
    	}
    	key.close();
    	}
    else
    {
    	AfxMessageBox("Fehler");
    	SetRegDefaultTimeTable();
    }
    

    Aber ab dem 10. Wert sprich wie auf dem Bild zu sehen is steht ab 9:40 immer nur noch 9:40 drin. Hab sogar schon versucht alle Werte ohne Schleife auszulesen, aber selbst das hat nicht geklappt. Ich kann mir leider nicht erklären wie es so ist...

    Vielen Dank schonmal für eure Hilfe!

    Chris



  • Fehler lag deim dwCount...

    hab das Problem jetzt wie folgt gelöst:

    CRegKey key;
    		CString tmp;
    
    		if(key.Open( HKEY_CURRENT_USER, "Software\\FBSoft\\Abiplaner\\TimeTable", KEY_READ) == ERROR_SUCCESS)
    		{
    
    			for(int i=0;i<50;i++)
    			{
    				char *tempBuf = new char[256];
    				tmp.Format("%d",i);
    				DWORD tempWord = sizeof(char[256]);
    				key.QueryStringValue(tmp,tempBuf,&tempWord);
    				time->Add(tempBuf);
    				delete tempBuf;
    
    			}
    
    		}
    
    		else
    		{
    			AfxMessageBox("Fehler beim Laden des Zeitrasters!\nDie Standartwerte werden geladen...", MB_ICONEXCLAMATION);
    			SetRegDefaultTimeTable();
    			key.Close();
    		}
    	key.Close();
    


  • Schau mal einen Post über deinen.
    CTecS hatte dir bereits eine Lösung gezeigt. Da hat er schon dwCount geändert. 😉


Anmelden zum Antworten