On Tue, 13 Aug 1996, Jack Wilson wrote: > Why not prefix every Circle binary file with a 32 bit integer (such > as 0x01020304). If, when the file is loaded, the driver detects that > the number is not equal to 16909060 (decimal for 0x01020304), it will > know that the file was saved in a different format than the driver > is currently using, so it can convert. Well, it's a good idea, but as it happens with many good ideas, they don't work inreal life... The problem here is, that you'll then 'sit' on the mashine that does not understand the pfile format! This statement has two parts :) : 1) You COULD convert the so called little endian -> big endian format of storing numbers and stuff. It would require some fiddeling arround, but I'm sure that someone with a greater knowledge than me could do that as easily as snapping their fingers. Another option would be to use the systemdependent htons/htonl functions when writing a pfile, and ntohs/ntohl when reading it, this SHOULD at all times keep the int's etc in so called NET BYTE ORDER. All this is great, but when you read the seccond point you'll wheep *g* 2) All this is great, and should work nicely, but now after pondering a little about the above, like some programmers do (others just jump right into it, and think about what went wrong afterwards, like me :), there are some system/OS dependent things. This is the SIZE of datatypes, i.e. a int might be 16 bytes on Linux and 32 on SUN systems (THIS IS NOT A FACT, PURE FICTION as an example). thus when you (after converting a pfile to net byte order) load it on the other mashine you'll get errors anyway, because the system expects another size/length on your datatype(s)... Well, all this can be avoided if you convert your playerfiles and all other binary files into a text/ascii file, either at the point where you want to convert your binary files, or simple change all the code in the mud to ALLWAYS use ascii/text files. This will ofcourse be a lot more portable, but uhm.... the least secure thing I've ever seen *g* Ofcourse you trust everyone having access to your files, so security is no subject... Just something to think about when deciding on wether you might want to change everything to text datafiles. Whee... now I'm finnished with my little novell. I didn't know squat about this untill I attemped to make a playerfile conversion utility, and I can say, that you will be able to convert SUN binary file to a Linux binary file format, as long as you don't need to convert special stuff like dates etc... (Well, at least I couldn't get it to work)... I can NOT give out any code for this, as I got pissed at my attemps of writing the perfect code, and could'nt.. (so it's long deleted). It's my hope, that someone will take all this to her/his heart, and come up with some brilliant idea/code, and make it available to anyone who needs it, as it happens a couple of times in a muds lifetime that it needs to change site, and as allways in life, you have to be unlucky and get a new site that does not support the previous file formats... *snicker* Blame Intel :) Regards, Con. d. -- Rasmus Rønlev DOEK'94 WWW: http://www.econ.cbs.dk/people/raro94ab Student instructor MUD: exiled.mud.circlemud.org 5000 199.199.16.100 5000 Student, B.Sc in Computer Science and Business Administration. +-----------------------------------------------------------+ | Ensure that you have read the CircleMUD Mailing List FAQ: | | http://cspo.queensu.ca/~fletcher/Circle/list_faq.html | +-----------------------------------------------------------+
This archive was generated by hypermail 2b30 : 12/07/00 PST