// DIE's signature file // Author: LinXP // doc-ref: https://www.sqlite.org/fileformat.html init("format",""); function detect(bShowType,bShowVersion,bShowOptions) { if(Binary.compare("'SQLite format 3'00")) { sName="SQLite 3 database (.SQLITE)"; bDetected=true; var nTextEncoding = Binary.read_uint32(0x38, _BE) var nAppID = Binary.read_uint32(0x44, _BE); var nSQLiteVersionNumber = Binary.read_uint32(0x60, _BE); var nChangeCount = Binary.read_uint32(0x18, _BE); var nMajor = nSQLiteVersionNumber/1000000>>0; var nMinor = (nSQLiteVersionNumber-nMajor*1000000)/1000>>0; var nRelease = nSQLiteVersionNumber-(nMajor*1000000)-(nMinor*1000)>>0; sVersion = nMajor + "." + nMinor + "." + nRelease; switch(nTextEncoding) { case 1: sOption("UTF-8"); break; case 2: sOption("UTF-16LE"); break; case 3: sOption("UTF-16BE"); break; default: bDetected=false; } if(nAppID && Binary.isVerbose()) { sOption("AppID:"+nAppID); } if(nChangeCount && Binary.isVerbose()) { sOption("Changes:"+nChangeCount); } } return result(bShowType,bShowVersion,bShowOptions); }