| View previous topic :: View next topic | 
	
	
		| Author | Message | 
	
		| picker 
 
 
 Joined: 07 Sep 2003
 Posts: 19
 Location: South Africa
 
 
			    
 
 | 
			
				| How do you check the equality of two byte arrays |  
				|  Posted: Mon Jan 17, 2005 7:52 am |   |  
				| 
 |  
				| I'd like to check whether two arrays are exactly equal (same values in indeces) but the following does not seem to work 
 byte ONE[5];
 byte TWO[5];
 
 .....
 ....
 
 ....
 
 ...
 
 if (ONE==TWO)
 Success;
 
 This seems to check whether the two have the same address and not the actual values. Do I have to run them through a for loop, is there no other way?
 |  | 
	
		|  | 
	
		| Mark 
 
 
 Joined: 07 Sep 2003
 Posts: 2838
 Location: Atlanta, GA
 
 
			      
 
 | 
			
				|  |  
				|  Posted: Mon Jan 17, 2005 8:19 am |   |  
				| 
 |  
				| Use a loop.  If the data is a string, use STRNCMP() |  | 
	
		|  | 
	
		| ckielstra 
 
 
 Joined: 18 Mar 2004
 Posts: 3680
 Location: The Netherlands
 
 
			    
 
 | 
			
				|  |  
				|  Posted: Mon Jan 17, 2005 8:31 am |   |  
				| 
 |  
				| or use: memcmp(ONE, TWO, sizeof(ONE)); |  | 
	
		|  | 
	
		| Mark 
 
 
 Joined: 07 Sep 2003
 Posts: 2838
 Location: Atlanta, GA
 
 
			      
 
 | 
			
				|  |  
				|  Posted: Mon Jan 17, 2005 8:36 am |   |  
				| 
 |  
				| oops  I looked for it in the index of the help file.  I didn't see it but do see it listed in the list of standard string functions. |  | 
	
		|  | 
	
		| picker 
 
 
 Joined: 07 Sep 2003
 Posts: 19
 Location: South Africa
 
 
			    
 
 | 
			
				| Memcmp doesn't seem to be defined... |  
				|  Posted: Tue Jan 18, 2005 12:54 am |   |  
				| 
 |  
				| It doesn't look like memcmp exists, although it shows in the help file. |  | 
	
		|  | 
	
		| ckielstra 
 
 
 Joined: 18 Mar 2004
 Posts: 3680
 Location: The Netherlands
 
 
			    
 
 | 
			
				|  |  
				|  Posted: Tue Jan 18, 2005 2:00 am |   |  
				| 
 |  
				| You'll have to include string.h It is missing from some of the help files, but it is mentioned in the Aug-2004 pdf-fille.
 A tip: Study the supplied header files, a lot of goodies can be found there.
 
 Please note that the length parameter is an int8, so a maximum length of 255 can be compared.
 |  | 
	
		|  | 
	
		| picker 
 
 
 Joined: 07 Sep 2003
 Posts: 19
 Location: South Africa
 
 
			    
 
 | 
			
				| Tried it but somehow doesn't work |  
				|  Posted: Tue Jan 18, 2005 2:17 am |   |  
				| 
 |  
				| Here's the code , what am I missing? 
 byte Master[8];
 byte buffer[8];
 ...
 ...
 ...
 ...
 ...
 for (i=0;i<8;i++)
 Master[i]=buffer[i];
 
 if (memcmp(buffer,master,sizeof(buffer))==0)
 Beep_ok();
 |  | 
	
		|  | 
	
		| ckielstra 
 
 
 Joined: 18 Mar 2004
 Posts: 3680
 Location: The Netherlands
 
 
			    
 
 | 
			
				|  |  
				|  Posted: Tue Jan 18, 2005 3:03 am |   |  
				| 
 |  
				| Looks fine to me. What is your problem? |  | 
	
		|  | 
	
		| picker 
 
 
 Joined: 07 Sep 2003
 Posts: 19
 Location: South Africa
 
 
			    
 
 | 
			
				| It doesn't beep OK |  
				|  Posted: Tue Jan 18, 2005 3:18 am |   |  
				| 
 |  
				| No Beep |  | 
	
		|  | 
	
		| ckielstra 
 
 
 Joined: 18 Mar 2004
 Posts: 3680
 Location: The Netherlands
 
 
			    
 
 | 
			
				|  |  
				|  Posted: Tue Jan 18, 2005 3:42 am |   |  
				| 
 |  
				| You didn't mention your compiler version, please do so next time. 
 I compared string.h v3.187 to v3.216 and it seems they fixed a bug somewhere between those versions.
 In memcmp(), change
 to
 |  | 
	
		|  | 
	
		| picker 
 
 
 Joined: 07 Sep 2003
 Posts: 19
 Location: South Africa
 
 
			    
 
 | 
			
				|  |  
				|  Posted: Tue Jan 18, 2005 4:00 am |   |  
				| 
 |  
				| Fantastic! Thanks, I'm still running 3.180. I'm too scared to upgrade to a newer version (although I download them) , because everything seems to be working (until I got to memcmp!) and my motto is if its not broken don't fix it... 
 Thanks for your help ckielstra! Much appreciated...
 
 Regards
 Picker
 |  | 
	
		|  | 
	
		| Guest 
 
 
 
 
 
 
 
			
			
			
			
			
			
			
			
			
 
 | 
			
				|  |  
				|  Posted: Tue Jan 18, 2005 2:57 pm |   |  
				| 
 |  
				|  	  | picker wrote: |  	  | Fantastic! Thanks, I'm still running 3.180. I'm too scared to upgrade to a newer version (although I download them) , because everything seems to be working (until I got to memcmp!) and my motto is if its not broken don't fix it... 
 Thanks for your help ckielstra! Much appreciated...
 
 Regards
 Picker
 | 
 
 very often it is broken, just you don't know it, until you stumble on a bug.
 |  | 
	
		|  | 
	
		| .... Guest
 
 
 
 
 
 
 
			
			
			
			
			
			
			
			
			
 
 |  | 
	
		|  | 
	
		|  |