מישהו? :)

מישהו? :)

עשיתי איזו תוכנית בVB שמתחברת עם ICQMAPI.DLL עכשיו היא שואבת משם נתונים כאשר נניח אני לוקח את הnickname אז:
Dim nickname as string * 20 . .פה בינתיים קיבלתי את הערך של למשתנה.. .נניח והערך הוא "gil" msgbox len(nickname) 'יתן לי 20 (בגלל שבהתחלה זה הוגדר כ20 'בניתי פונקציה שהולכת מהסוף להתחלה עד שהיא מוצאת את התו הראשון 'שהאסקי שלו גדול מ0 וזה בעצם לולאה... אני בטוח שיש משהו שעושה את זה 'TRIM לבד, כמו​
בכל אופן, זה הדבר הראשון... הדבר השני הוא שמתקבלת לי מחרוזת באורך 20, כאשר משמאל כמו שאמרתי הכל זה chr 0 עד למחרוזת האמיתי אבל אם המחרוזת היא עברית אז המחרוזת כולה היא בעצם chr0 כפול 20...:\ איך אני יכול שהcodepage יהיה עברי או משהו כזה.. אנא אערף... בעעע!
 

MaD-d0g

New member
בקשר ל 1, לא, אתה צריך לבנות

TrimNull. את החלק השני לא הבנתי... אם זה בעברית, אז זה יעבוד על אותו עיקרון, לא
 
לא קשור... שמתי הודעה אגב בפורוםשלך

תראה... הרי נניח נכנס "ערקי" למחרוזת באורך 10 נניח אז זה יראה פשוט
0 0 0 0 0 0 0 0 0 0​
יענו בASCII... כאילו שהוא לא מתייחס לאותיות עבריות כמשהו נורמלי...
 

MaD-d0g

New member
בטוח ../images/Emo35.gif

אתה יכול במקרה לכתוב לדוגמא קוד שמחזיר כינוי
(יש לי בהרד דיסק דוגמא, אבל משום מה היא סוגרת לי את ה VB) כן, שמתי לב שכתבת גם בפורום שלי, גם שם עניתי לך
 
דוגמא...בעעע OK...:)

Private Type BSICQAPI_User m_iUIN As Long m_hFloatWindow As Long 'hWnd m_iIP As Long m_szNickname As String * 20 m_szFirstName As String * 20 m_szLastName As String * 20 m_szEmail As String * 100 m_szCity As String * 100 m_szState As String * 100 m_iCountry As Long m_szCountryName As String * 100 m_szHomePage As String * 100 m_iAge As Long m_szPhone As String * 20 m_bGender As Long 'String * 1 m_iHomeZip As Long m_iStateFlags As Long End Type Private Declare Function ICQAPICall_GetFullUserData Lib "d:\Program Files\ICQ\icqmapi.dll" (ByRef pUser As BSICQAPI_User, ByVal lVersion As Long) As Long Public Function GetUserData(ByVal iUIN As Long) As String Dim pUser As BSICQAPI_User, tmpL As Long pUser.m_iUIN = iUIN tmpL = ICQAPICall_GetFullUserData(pUser, ver) tmp = pUser.m_szNickname GetUserData = "Male? " & (pUser.m_bGender > 0) & vbCrLf & _ "Age: " & fixString(pUser.m_iAge) & vbCrLf & _ "Country: " & fixString(pUser.m_iCountry) & vbCrLf & _ "ZipCode: " & fixString(pUser.m_iHomeZip) & vbCrLf & _ "IP: " & fixString(pUser.m_iIP) & vbCrLf & _ "StateFlag: " & fixString(pUser.m_iStateFlags) & vbCrLf & _ "ICQ#: " & fixString(pUser.m_iUIN) & vbCrLf & _ "City: " & fixString(pUser.m_szCity) & vbCrLf & _ "Country: " & fixString(pUser.m_szCountryName) & vbCrLf & _ "Email: " & fixString(pUser.m_szEmail) & vbCrLf & _ "FirstName: " & fixString(pUser.m_szFirstName) & vbCrLf & _ "Homepage: " & fixString(pUser.m_szHomePage) & vbCrLf & _ "Lastname: " & fixString(pUser.m_szLastName) & vbCrLf & _ "Nickname: " & fixString(pUser.m_szNickname) & vbCrLf & _ "Phone: " & fixString(pUser.m_szPhone) & vbCrLf & _ "State: " & fixString(pUser.m_szState) End Function Private Function fixString(ByVal str As String) As String Dim isStillMoving As Boolean, p As Long isStillMoving = True p = Len(str) + 1 While isStillMoving And p > 1 p = p - 1 isStillMoving = Asc(Mid(str, p, 1)) = 0 Wend If isStillMoving Then fixString = "" Else fixString = Left(str, p) End Function MsgBox GetUserData(62564762)​
 
למעלה