exchanging

تبدیل یک عدد به Qword ؟

شروع موضوع توسط balabala ‏2 جولای 2007 در انجمن Visual Basic 6

  1. balabala

    balabala کاربر قدیمی پرشین تولز

    تاریخ عضویت:
    ‏22 می 2005
    نوشته ها:
    7,351
    تشکر شده:
    1,332
    محل سکونت:
    یه خورده اونورتر
    سلام!

    یه مشکل برام پیش اومده! من یه همچین عددی دارم "144616277164184700" و باید تبدیلش کنم به Qword. خب اینکار رو توی سی میشه انجام داد ولی در ویبی6 به چه صورت میشه؟

    توجه کنید که این عدد 18 رقمیه! اگر توی ماشین حساب ویندوز بزنید، Qword ش رو مینویسه: "201C7BCE51C547C" که من همین عدد رو میخوام.

    این کد رو پیدا کردم ولی تا 11 رقم بیشتر جواب نمیده!

    کد:
     
    Option Explicit
    Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (anyDestination As Any, anySource As Any, ByVal lngLength As Long)
    Public Sub Main()
        MsgBox LoDWORD([email protected])
        MsgBox HiDWORD([email protected])
        MsgBox QWORD(13, 1073741824)
    End Sub
    Private Function LoDWORD(ByVal curQWORD As Currency) As Long
     
      Dim lngLoDWORD As Long
     
        curQWORD = curQWORD / 10000
        CopyMemory lngLoDWORD, curQWORD, 4
     
        LoDWORD = lngLoDWORD
    End Function
    Private Function HiDWORD(ByVal curQWORD As Currency) As Long
      Dim lngHiDWORD As Long
     
        curQWORD = curQWORD / 10000
        CopyMemory lngHiDWORD, ByVal VarPtr(curQWORD) + 4, 4
     
        HiDWORD = lngHiDWORD
    End Function
    Private Function QWORD(ByVal lngHiDWORD As Long, ByVal lngLoDWORD As Long) As Currency
      Dim curQWORD As Currency
     
        CopyMemory curQWORD, lngLoDWORD, 4
        CopyMemory ByVal VarPtr(curQWORD) + 4, lngHiDWORD, 4
     
        QWORD = curQWORD * 10000
    End Function
     
    
     
  2. saeedsmk

    saeedsmk مدیر بازنشسته

    تاریخ عضویت:
    ‏6 سپتامبر 2003
    نوشته ها:
    1,519
    تشکر شده:
    4
    سلام
    بلا بلا حان كدشو تو خونه دارم بگذار برم خونه برات مي فرستم
    به اميد ديدار