WindowsXP/ CTypes - How to convert ctypes array to a string?

Fredrik Lundh fredrik at pythonware.com
Tue Aug 19 07:20:00 EDT 2008


dudeja.rajat at gmail.com wrote:

> I've used CTYPES module to access a function from a dll. This function
> provides me the version of the dll. This information is accessible to
> me as an array of 4 long inetegers. information as :
> 2, 1, 5, 0
> 
> I want to display these elements concatenated as "v2.1.5.0". This
> string ( I'm thinking of writing the above 4 array elements to a
> string) is to be displayed as label in a GUI ( the GUI used is Tk)
> 
> Please suggest how can I write these elements to a string to get me
> the desired results as "v2.1.5.0". And, is writing to a string is
> right way?

any special reason why you're not reading replies to your previous post?

here's what I wrote last time.

expecting that Python/ctypes should be able to figure out that you
want an array of 4 integers printed as a dot-separated string is a
bit optimistic, perhaps.  but nothing that a little explicit string 
formatting cannot fix:

 >>> from ctypes import *
 >>> versionArr = c_long * 4
 >>> version = versionArr(1, 2, 3, 4)
 >>> "%d.%d.%d.%d" % tuple(version)
'1.2.3.4'

inserting a "v" in the format string gives you the required result:

 >>> "v%d.%d.%d.%d" % tuple(version)
'v1.2.3.4'

</F>




More information about the Python-list mailing list