Thanks for taking the time to come up with a solution Charles, I have gone ahead and created an FR as you suggested, which is here:
http://www.realsoftware.com/feedback/viewreport.php?reportid=ivugllnt On 11/4/07 22:14, "Charles Yeomans" <[EMAIL PROTECTED]> wrote: > > On Apr 11, 2007, at 4:48 PM, Daniel Stenning wrote: > >> Anyone know how (in the shortest amount of code ) to get the >> integer value >> of an OSType - say 'abcd' ? >> >> The only way I have been able to do this is to copy the OSType into a >> memoryblock to read out the integer equivalent, but this seemed way >> too >> messy. >> >> I have ended up just using a 4 byte memoryblock instead of the >> OSType and >> using the conversion methods to convert between 4 char string and >> integer >> format, but would much rather just be able to use OSType.. >> > > > Here's a function that does not use a MemoryBlock. > > Function OSTypeToUInt32(x as OSType) As UInt32 > dim char() as String = SplitB(x, "") > return ((AscB(char(0))*256 + AscB(char(1)))*256 + AscB(char(2))) > *256 + AscB(char(3)) > End Function > > > You could eliminate the split to array, replacing char(i) by MidB(x, > i + 1). > > > Function OSTypeToUInt32(x as OSType) As UInt32 > return ((AscB(MidB(x, 1))*256 + AscB(MidB(x, 2)))*256 + AscB(MidB > (x, 3)))*256 + AscB(MidB(x, 4)) > End Function > > > If these aren't simple enough, perhaps you should file a feature > request for automatic conversion between OSType and UInt32. > > > Charles Yeomans > _______________________________________________ > Unsubscribe or switch delivery mode: > <http://www.realsoftware.com/support/listmanager/> > > Search the archives: > <http://support.realsoftware.com/listarchives/lists.html> > Regards, Dan _______________________________________________ Unsubscribe or switch delivery mode: <http://www.realsoftware.com/support/listmanager/> Search the archives: <http://support.realsoftware.com/listarchives/lists.html>
