On 2009-01-25, Martin v. Löwis <mar...@v.loewis.de> wrote: >> It deals with variable sized fields just fine: >> >> dtype = 18 >> dlength = 32 >> format = "!BB%ds" % dlength >> >> rawdata = struct.pack(format, (dtype,dlength,data)) > > I wouldn't call this "just fine", though - it involves > a % operator to even compute the format string. IMO, > it is *much* better not to use the struct module for this > kind of problem, and instead rely on regular string > concatenation.
If all you need to do is concatenate strings, then you're correct, there's no advantage to using struct or ctypes. If you need a generic way to deal with arbitrary data types, then that's what the struct and ctypes modules are designed to do. The protocols I've implemented always required the ability to deal with integers greater than 8 bits wide as well as various other data types. -- Grant -- http://mail.python.org/mailman/listinfo/python-list