StringFromGUID2( ... )



  • Hi Leute,

    Gibt es die Funktion StringFromGUID2 auch anders herum (C)?
    Also GUIDFromString oder so?

    Habe bisher nichts gefunden...
    Ich habe ein GUID im String fomrat und will die in eine GUID konvertieren...





  • habe ich schon gelesen...
    das Problem bei mir ist genau gegensätzlich... Ich habe die GUID nur als String (xml File)....



  • nun gut...
    Wenn keiner eine passende Funktion kennt, muß es wohl auf die harte Tour sein.

    😋
    Wen es interessiert, oder falls jemand eine bessere Idee hat, hier der Code:

    GUID guid;
    				CString guidString = (const char*)curNode->children->content;
    				CString tmp;
    				int currPos = 0;
    				int counter = 0;
    				while((tmp = guidString.Tokenize("-", currPos)) != "")
    				{	
    					char *rest;
    					int num = 0;
    					counter++;
    					if(counter == 1)
    						tmp.Delete(0);										
    					if(counter < 4)
    					{
    						tmp.Insert(0, "0x");
    						num = strtol(tmp.GetBuffer(), &rest, 16);					 
    					}					
    					switch(counter)
    					{
    					case 1:
    						{
    							guid.Data1 = num;
    						} break;
    					case 2:
    						{
    							guid.Data2 = num;
    						} break;
    					case 3:
    						{
    							guid.Data3 = num;
    						} break;
    					case 4: 
    						{								
    							CString two = tmp.Left(2);							
    							two.Insert(0, "0x");
    							guid.Data4[0] = (BYTE)strtol(two.GetBuffer(), &rest, 16);
    							two = tmp.Right(2);
    							two.Insert(0, "0x");
    							guid.Data4[1] = (BYTE)strtol(two.GetBuffer(), &rest, 16);
    						} break;
    					case 5:
    						{	
    							CString two = tmp.Left(2);
    							int arrCounter = 2;
    							while(tmp.Delete(0, 2) > 0)
    							{
    								two.Insert(0, "0x");
    								guid.Data4[arrCounter] = (BYTE)strtol(two.GetBuffer(), &rest, 16);
    								arrCounter++;
    								two = tmp.Left(2);
    							}
    						} break;
    					}
    
    				}
    


  • achso der String sieht natürlich so aus:
    {E038C148-69C7-41f1-AD90-06156A790120}




Anmelden zum Antworten