===== Serialize (Function) ===== ==== Format ==== **serialize** ( [[arrays|variable[]]] )\\ **serialize** ( [[Lists|{ x1, y1, x2, y2, x3, y3 ... }]] ) returns [[stringexpressions|string_expression]] ==== Description ==== The serialize statement creates a string that encodes the dimensions, types, and values in an array. The [[Unserialize|Unserialize]] function will take a "serialized" string and return an array or list. Often developers will create a serialized string so that they may save the values in an array into a data file or a database table. === Format of the Serialized Array === The string representing the array's data is a series of values separated by a colon ':'. The first value represents the number of rows and the second the number of columns. A one dimensional array will have a single row (1), with the length in the second value. The elements of the array follow. The first character of each value contains a marker byte defining the data type ('0'-unassigned, '1'-integer, '2'-float, and '3'-string). The actual array data follows. Strings are converted to hexadecimal so that any Unicode or special characters will be stored without change. The strings returned will contain ONLY ':', '.', '0'-'9', and 'a'-'f'. The array {1,2,3,4,5.555,"six"} would be serialized to "1:6:11:12:13:14:25.555:3736978" and the array {{1,2},{3,4}} would be serialized to "2:2:11:12:13:14". ==== Example ==== dim a(3,4) a[0,0] = 0 a[1,1] = 1 a[2,2] = 2 a[0,1] = 'string with "quotes"' a[1,2] = 1.234 stuff = serialize(a[]) print stuff dim c = unserialize(stuff) # the array c is an exact copy of the array a will display 3:4:10:3737472696e672077697468202271756f74657322:0:0:0:11:21.234:0:0:0:12:0 ==== See Also ==== {{page>en:start#String Handling&noheader}} ==== History ==== |1.99.99.66|New to Version| |1.99.99.72|added required [] to passing variable array|