PDA

View Full Version : Trim کردن String های ورودی توابع API



__siavash__
پنج شنبه 06 اردیبهشت 1386, 12:41 عصر
آقا من از بعضی از API ها که استفاده میکنم و باید توی اون مثلا متغییر A را قرار بدم که فضای لازم رو باید به این متغییر بدم
Dim A as String * 255
بعد نتیجه ی برگشتی تو این متغییر قرار میگیره ولی نمیدونم چرا با تابع Trim، تریم نمیشه ؟
(مثلا نتیجه ی برگشتی 7 حرفی باشه میخوام بقیه شو تریم کنم)

vb_nima
پنج شنبه 06 اردیبهشت 1386, 12:56 عصر
بهتره از تابع left یا mid استفاده کنید.
فکر کنم تابع Trim فقط فاصله ها را از اطراف نوشته بر میداره. فکر کنم بعضی توابع متغیر با کاراکترهای دیگری غیر از فاصله پر بشه. و برای همین trim تاثیری نداره
اگر اشتباه گفتم ببخشید.

mehran8
پنج شنبه 06 اردیبهشت 1386, 13:08 عصر
سلام
مثلاً من برای بدست آوردن آدرس پوشه ویندوز از این راه استفاده می کنم :


Private Declare Function GetWindowsDirectory Lib "kernel32" Alias
"GetWindowsDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long
Dim Winpath As String
Dim StrBuffer As String
StrBuffer = String(255, Chr$(0))
Winpath = Left$(StrBuffer, GetWindowsDirectory(StrBuffer, Len(StrBuffer)))


شاید بدردت بخوره .

__siavash__
پنج شنبه 06 اردیبهشت 1386, 13:43 عصر
دوستان ممنون از جواباتون
من وقتی جوابایه شما رو خوندم این راه به ذهنم رسید و جواب داد.
به این صورت که کاراکتر صفر رو پیدا میکنم (با تابع InStr ) و بعد با تابع Mid عبارت رو میگیرم !


Mid(A, 1,InStr(A, Chr(0)) - 1)

‍Peter Norton
پنج شنبه 06 اردیبهشت 1386, 20:28 عصر
چون توابع API از الگوهای C استفاده می کنه برای نمایش خاتمه رشته از vbNullChar یا همون کاراکتر 0 استفاده می کنه که می تونی دقیقاً با استفاده از تابع Left یا Mid (به شخصه Left رو ترجیح می دم) , Instr استفاده کنی.