|
Postada em 10/07/2006 16:09 hs
Seguinte, tenho esta string:
25487512365478204958471530269845 - 32 numeros
Presciso montar uma rotina onde eu tenho de transformar este numero acima em 16 bytes. Nao tenho a minima ideia de como fazer isto. Alguem poderia me ajudar???
|
|
|
|
|
Postada em 10/07/2006 16:37 hs
Não estou entendendo... tem mais algum detalhe?? Sempre irá vir numérico?? Olha... variáveis tipo double e currency contém 8 bytes. Não há variáveis q contém mais de 8 bytes a não ser a string mesmo...até 2^31 ...quase 2.0 GB sem tamanho definido... qual a intenção de transformar o nº acima colega??
|
|
|
|
Postada em 10/07/2006 17:01 hs
Eh o seguinte, eu tenho de gravar dados em um cartao Mifare (Smart Card) e o formato para esta gravacao eh o seguinte:
Dim Numero(16) as Byte
e o numero a ser gravado eh aquele lah. Ateh na rotina esta escrito assim - byteWriteBuffer onde isso equivale ao array acima.
Eu ateh consegui uma funcao:
Public Function ArrayFunction(b As Byte) As Byte() Dim x(6) As Byte Dim y As Integer For y = 0 To 5 x(y) = b Next ArrayFunction = x End Function mas como eu vou passar aquele numero monstruoso para esta funcao??
|
|
|
|
Postada em 10/07/2006 17:35 hs
vixi nem sei se entendi direito, tb nem sei se o q vou escrever pra vc será besteira ou se funcionará mas se vc tem q trabalhar com bytes então pegue o número mostruoso e passe o valor de 2 numeros... assim: Dim Matriz(15) as byte Matriz(0) = 25 Matriz(1) = 48 Matriz(2) = 75 Matriz(3) = 12 . . . E assim por diante... tentei...  precisando é só postar t+
|
|
|
|
Postada em 10/07/2006 17:45 hs
Consegui. Ficou meio loco mas funciona. Ele converte em Bytes e depois em numero de novo - eh soh analizar o codigo e ver.
=================== codigo =============================== Dim vx(15) As Byte Private Function NumeroByte() As Byte Dim vN As Integer Dim x As Integer
Dim y As Integer y = 1
For x = 0 To Len(Text1.Text) If y = 33 Then Exit For End If cp = Mid(Text1.Text, y, 2) cp = Hex(cp) vx(x) = "&H" & cp y = y + 2 Next NumeroByte = vx End Function Public Function ByteArrayToString(bytArray() As Byte) As String Dim sAns As String Dim iPos As String sAns = StrConv(bytArray, vbUnicode) iPos = InStr(sAns, Chr(0)) If iPos > 0 Then sAns = Left(sAns, iPos - 1) ByteArrayToString = sAns End Function
Private Sub Command1_Click() Text2.Text = "" NumeroByte
For xx = 0 To 15 If Len("&H" & Hex(vx(xx))) = 1 Or "&H" & Hex(vx(xx)) = 0 Then zero = "0" End If Text2.Text = Text2.Text & zero & CByte(vx(xx)) zero = "" Next
End Sub
==============================================
Valeu
|
|
|