User Tools

Site Tools


en:serialize

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
en:serialize [2016/09/08 12:29]
admin created
en:serialize [2020/02/28 10:46] (current)
Line 2: Line 2:
  
 ==== Format ==== ==== Format ====
-**serialize** ( [[arrays|array]] )\\+**serialize** ( [[arrays|variable[]]] )\\
 **serialize** ( [[Lists|{ x1, y1, x2, y2, x3, y3 ... }]] ) **serialize** ( [[Lists|{ x1, y1, x2, y2, x3, y3 ... }]] )
  
Line 9: Line 9:
 ==== Description ==== ==== 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 ==== ==== Example ====
 <code> <code>
 +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
 </code> </code>
 will display will display
 <code> <code>
 +3:4:10:3737472696e672077697468202271756f74657322:0:0:0:11:21.234:0:0:0:12:0
 </code> </code>
  
Line 23: Line 42:
  
 ==== History ====  ==== History ==== 
-|1.99.99.65|New to Version| +|1.99.99.66|New to Version| 
 +|1.99.99.72|added required [] to passing variable array|
en/serialize.1473359357.txt.gz · Last modified: 2020/02/28 10:46 (external edit)