Advertisement
ASP_Volume3 Databases/ Data Access/ DAO/ ADO #58729

SQL GUID 2 String (Compression)

2 functions to convert a 38 character GUID eg. {2E1EFAD8-4AD9-48A6-B9A9-75505F2B9A51} to a compact/compressed 16 character VB String eg. @#$%

AI

AI 요약: This codebase represents a historical implementation of the logic described in the metadata. Our preservation engine analyzes the structure to provide context for modern developers.

소스 코드
original-source
Public Function GUID2ID(ByRef InGUID As String) As String
 Dim Hex As String * 4
 Let GUID2ID = Space$(16)
 Let Hex = "&H00"
 Mid$(Hex, 3, 2) = Mid$(InGUID, 2, 2)
 Mid$(GUID2ID, 1, 1) = Chr$(CLng(Hex))
 Mid$(Hex, 3, 2) = Mid$(InGUID, 4, 2)
 Mid$(GUID2ID, 2, 1) = Chr$(CLng(Hex))
 Mid$(Hex, 3, 2) = Mid$(InGUID, 6, 2)
 Mid$(GUID2ID, 3, 1) = Chr$(CLng(Hex))
 Mid$(Hex, 3, 2) = Mid$(InGUID, 8, 2)
 Mid$(GUID2ID, 4, 1) = Chr$(CLng(Hex))
 Mid$(Hex, 3, 2) = Mid$(InGUID, 11, 2)
 Mid$(GUID2ID, 5, 1) = Chr$(CLng(Hex))
 Mid$(Hex, 3, 2) = Mid$(InGUID, 13, 2)
 Mid$(GUID2ID, 6, 1) = Chr$(CLng(Hex))
 Mid$(Hex, 3, 2) = Mid$(InGUID, 16, 2)
 Mid$(GUID2ID, 7, 1) = Chr$(CLng(Hex))
 Mid$(Hex, 3, 2) = Mid$(InGUID, 18, 2)
 Mid$(GUID2ID, 8, 1) = Chr$(CLng(Hex))
 Mid$(Hex, 3, 2) = Mid$(InGUID, 21, 2)
 Mid$(GUID2ID, 9, 1) = Chr$(CLng(Hex))
 Mid$(Hex, 3, 2) = Mid$(InGUID, 23, 2)
 Mid$(GUID2ID, 10, 1) = Chr$(CLng(Hex))
 Mid$(Hex, 3, 2) = Mid$(InGUID, 26, 2)
 Mid$(GUID2ID, 11, 1) = Chr$(CLng(Hex))
 Mid$(Hex, 3, 2) = Mid$(InGUID, 28, 2)
 Mid$(GUID2ID, 12, 1) = Chr$(CLng(Hex))
 Mid$(Hex, 3, 2) = Mid$(InGUID, 30, 2)
 Mid$(GUID2ID, 13, 1) = Chr$(CLng(Hex))
 Mid$(Hex, 3, 2) = Mid$(InGUID, 32, 2)
 Mid$(GUID2ID, 14, 1) = Chr$(CLng(Hex))
 Mid$(Hex, 3, 2) = Mid$(InGUID, 34, 2)
 Mid$(GUID2ID, 15, 1) = Chr$(CLng(Hex))
 Mid$(Hex, 3, 2) = Mid$(InGUID, 36, 2)
 Mid$(GUID2ID, 16, 1) = Chr$(CLng(Hex))
End Function
Public Function ID2GUID(ByRef InID As String) As String
 Let ID2GUID = "{12345678-1234-1234-1234-123456789012}"
 Mid$(ID2GUID, 2, 2) = Format$(Hex$(Asc(InID)), "@@")
 Mid$(ID2GUID, 4, 2) = Format$(Hex$(Asc(Right$(InID, 15))), "@@")
 Mid$(ID2GUID, 6, 2) = Format$(Hex$(Asc(Right$(InID, 14))), "@@")
 Mid$(ID2GUID, 8, 2) = Format$(Hex$(Asc(Right$(InID, 13))), "@@")
 Mid$(ID2GUID, 11, 2) = Format$(Hex$(Asc(Right$(InID, 12))), "@@")
 Mid$(ID2GUID, 13, 2) = Format$(Hex$(Asc(Right$(InID, 11))), "@@")
 Mid$(ID2GUID, 16, 2) = Format$(Hex$(Asc(Right$(InID, 10))), "@@")
 Mid$(ID2GUID, 18, 2) = Format$(Hex$(Asc(Right$(InID, 9))), "@@")
 Mid$(ID2GUID, 21, 2) = Format$(Hex$(Asc(Right$(InID, 8))), "@@")
 Mid$(ID2GUID, 23, 2) = Format$(Hex$(Asc(Right$(InID, 7))), "@@")
 Mid$(ID2GUID, 26, 2) = Format$(Hex$(Asc(Right$(InID, 6))), "@@")
 Mid$(ID2GUID, 28, 2) = Format$(Hex$(Asc(Right$(InID, 5))), "@@")
 Mid$(ID2GUID, 30, 2) = Format$(Hex$(Asc(Right$(InID, 4))), "@@")
 Mid$(ID2GUID, 32, 2) = Format$(Hex$(Asc(Right$(InID, 3))), "@@")
 Mid$(ID2GUID, 34, 2) = Format$(Hex$(Asc(Right$(InID, 2))), "@@")
 Mid$(ID2GUID, 36, 2) = Format$(Hex$(Asc(Right$(InID, 1))), "@@")
 Let ID2GUID = Replace$(ID2GUID, " ", "0")
End Function
원본 댓글 (3)
Wayback Machine에서 복구됨