مسائل مربوط به رشته ها در ویژوال بیسیک

AliHSlc

Member
سلام بچه ها... توی وی-بی 6 یه جایی گیر کردم که خودم وقتی فکرش رو می کنم خندم میگیره...

چطور میشه آخرین کاراکتر یک استرینگ رو حذف کرد.... با توابع Left و Right و mid کلی سرو کله زدم... ولی دیگه مخم قفل کرد... کار به جایی نبردم...
لطفا کمک کنید
 

saalek110

Well-Known Member
یک تابع فکر کنم داریم به نام len .
طول را حساب کن . بعد فکر کنم باید منهای یک کنی تا برسی به ...
کدش یادم نیست.
ولی فکر کنم با همین حل بشه.
 
آخرین ویرایش:

AliHSlc

Member
دست گلتون در نکنه.... والا قبل از اینکه جناب سالک بگن ،این Len رو فراموش کرده بودم.... از یه راه دیگه کارم رو راه انداختم... ولی فکر کنم نتیجش همینه

intlen = (len(var))

Mid(sqlstr, 1, IntLen - 1)

به قول معروف ... تاپیک قفل شد... ولی ما که نمیتونیم قفل کنیم...کار از ما بهترونه :wink:
 

saalek110

Well-Known Member
اتفاقا من هم روزی که داشتم مسئله مشابه همین رو حل می کردم همین روند را طی کردم. یعنی کلی با مید و رایت و لفت ور رفتم تا یکی لن را گفت.
----------------------------------------------------
مطالبی که در ادامه این پست می آید ماهها بعد اضافه شده.
http://en.wikibooks.org/wiki/Visual_Basic/VB6_Command_Reference

2 String Manipulation
2.1 Asc
2.2 Chr
2.3 Len
2.4 Left
2.5 Right
2.6 Mid (Function)
2.7 Mid (Statement)
2.8 Trim
2.9 LCase
2.10 UCase
2.11 String
2.12 Space
2.13 StrConv

Len

Returns the length of a given string or 0 for Empty.

Usage

Len(expression)

expression = a string or Empty

Example

mystring = InputBox(“Enter a string to test”)
length = Len(mystring)
MsgBox “Length of the string is “ + length

e.g. where mystring is “Hello”, length will be 5.
Left

Returns a given number of characters from the left hand side of a string

Usage

Left(string,x)

string = string to use
x = number of characters

Example

mystring = InputBox(“Enter a string”)
mystring = Left(mystring, 4)
MsgBox “First four characters of your input are “ + mystring

e.g. where the input mystring is “Hello”, the output mystring will be “Hell”
Right

Returns a given number of characters from the right hand side of a string

Usage

Right(string, x)

string = string to use
x = number of characters

Example

mystring = InputBox(“Enter a string”)
mystring = Right(mystring, 4)
MsgBox “Last four characters of your input are “ + mystring

e.g. where the input mystring is “Hello”, the output mystring will be “ello”
Mid (Function)

Returns a given number of characters from the middle of a string

Usage

Mid(string, start, length)

string = string to use
start = character to start at (1 is the first character)
length = number of characters

Example

mystring = InputBox(“Enter a string”)
mystring = Mid(mystring, 2, 3)
MsgBox “The second, third, and fourth characters of your input are “ + mystring

e.g. where the input mystring is “Hello”, the output mystring will be “ell”
Mid (Statement)

Sets a given number of characters in the middle of a string equal to the same number of characters from the beginning of another string

Usage

Mid(mystring, start, length)

mystring = the string to take characters from start = character to start at (1 is the first character)
length = number of characters

Example

mystring = InputBox(“Enter a string”)
Mid(mystring, 2, 3) = "abcd"
MsgBox “Your string with abc as the second, third, and fourth characters of your input are “ + mystring

e.g. where the input mystring is “Hello”, the output mystring will be “Habco”
Trim

Removes leading and trailing spaces from a string

Usage

Trim(string)

string = string to use

Example

mystring = Trim(mystring)

e.g. where the original value of mystring was “ Hello “, the new value of mystring will be “Hello”.
LCase

Converts a string to lowercase

Usage

LCase(string)

string = string to use

Example

mystring = LCase(mystring)

e.g. where the original value of mystring was “HELLO”, the new value of mystring will be “hello”.
UCase

Converts a string to uppercase

Usage

UCase(string)

string = string to use

Example

mystring = UCase(mystring)

e.g. where the original value of mystring was “Hello”, the new value of mystring will be “HELLO”.
String

Creates a string with the specified length of the specified character

Usage

String(length, character)

length = length of string
character = character to fill string with

Example

mystring = String(5,"a")

e.g. the new value of mystring will be “aaaaa”.
Space

Creates a string with the specified length of spaces

Usage

Space(length)

length = length of string

Example

mystring = Space(5)

e.g. the new value of mystring will be “ ”.
iglyeg.gif
StrConv

Returns a converted string as specified.

Usage

StrConv(string, conversion,LCID)

string = string to use
conversion = case to convert the sting to (lowercase: vbLowerCase, uppercase: vbUpperCase, proper case (first letter in caps): vbProperCase) LCID = optional. The LocaleID, if different than the system LocaleID.

Example

mystring = StrConv(mystring, vbProperCase)

e.g. where the original value of mystring was “HELLO”, the new value of mystring will be “Hello”.
 

pa_darya

Member
تابعcstrدر ويژوال بيسيک

میشه در مورد این تابع واسم توضیح دهید
cstr(time)یعنی چه؟
 

MDP

Well-Known Member
این تابع cast به String هستش!

یعنی هرچی بگیره تبدیل به رشته میکنه!

.:مسعود:.
 

uu99

Member
اعمال روی رشته ها در ویژوال بیسیک

سلام خدمت تمامی دوستان عزیز.
734ad6p.gif


بابت زحمات شما بینهایت سپاسگزارم.
7xcuu83.gif


از وقتی عضو این انجمن شدم، خیلی از مطالب شما استفاده کردم و یاد گرفتم .
118.gif


خسته نباشید.
867skz9.gif



اما سوال :
270.gif


داخل یک جعبه متن Text Box کاربر باید 16 کاراکتر وارد کنه .این 16 کاراکتر هم میتونه عدد داشته باشه و هم حرف.

سوال اول:

کاراکتر های حرفی محدود هستند.یعنی کاربر فقط باید از این حروف استفاده کنه: A,B,C,D,E,F .

چطور میتونم کاربر رو محدود کنم تا کاراکتری نادرست وارد نکنه؟

سوال دوم :

میخوام با زدن یک دکمه کاراکترهای 7و8 ،نیز کاراکترهای 15 و 16 حذف شوند و مابقی در یک جعبه متن دیگه نمایش داده بشوند.

مثال:

idcao9.jpg



از دوستان عزیز، درخواست راهنمایی دارم.




با تشکر فراوان
20ge1pi.gif
 

i_lover3000

Member
این پست کجا رفت ؟؟؟؟!!!

PHP:
 سلام خدمت تمامی دوستان عزيز
بابت زحمات شما بينهايت سپاسگزارم
از وقتی عضو اين انجمن شدم، خيلی از مطالب شما استفاده کردم و ياد گرفتم
خسته نباشيد

اما سوال:

داخل يک جعبه متن Text Box . کاربر بايد 16 کاراکتر وارد کنه .اين 16 کاراکتر هم ميتونه عدد داشته باشه و هم حرف

سوال اول:
کاراکتر های حرفی محدود هستند.يعنی کاربر فقط بايد از اين حروف استفاده کنه : A,B,C,D,E,F .
چطور ميتونم کاربر رو محدود کنم تا کاراکتری نادرست وارد نکنه؟

سوال دوم :
ميخوام با زدن يک دکمه کاراکترهای 7و 8 ،نيز کاراکترهای 15 و 16 حذف شوند و مابقی در يک جعبه متن ديگه نمايش داده
بشوند.
مثال :  http://i28.tinypic.com/idcao9.jpg

مثل اینکه یه پست پاک شده ؟؟؟
یه نفر پست بالا رو زده بود و دو تا سوال کرده بود اما حالا مثل اینکه پستش پاک شده
حالا به هر حال من سوالاشو جواب دادم و جوابو دو پیوست براش گذاشتم
 

پیوست ها

  • Form1.zip
    1.5 کیلوبایت · بازدیدها: 19

saalek110

Well-Known Member
با سلام.
سعی کنید سئوالات را در تاپیکهای جدا مطرح کنید.

برای سئوال یک خود:
پاسخ سئوال این تاپیک را ببینید:
محدود کردن کاربر به وارد کردن عدد ( نه حروف) در TextBox در ویژوال بیسیک

ببینید می توانید چیزی را که می خواهید را با آن کد بسازید.
بحث سئوال یک خود را یا آنجا یا در تاپیک جدیدی مطرح کنید.

برای سئوال دوم هم از کد زیر کمک بگیرید:
کد:
Private Sub Command1_Click()
Text2.Text = Mid(Text1.Text, 6, 2)
End Sub

کد بالا 2 حرف از رشته اول را با شروع از نقطه 6 در رشته دوم قرار می دهد.

توابع دیگر:
Left
Val
Right
Len



در تاپیک :
آموزش ویژوال بیسیک توسط حمید احمدی
همه اینها بحث شده.
 

uu99

Member
سلام.

saalek110 ، دوست بزرگوار و مدیر محترم ،خسته نباشید .

حقیقت این است که تا حالا در هر انجمنی رفتم، از کاربران درخواست میکردند که تاپیک اضافی باز نکنند و سوالات در یک تاپیک مجزا پرسیده میشود.
از اینکه باعث بی نظمی در انجمن شدم، عذر میخوام
270.gif


بابت راهنمایی کامل و جامع ،بینهایت ممنون . دست شما درد نکنه!
7xcuu83.gif



___________________________________________

دوست عزیزم، i_lover3000

از محبت شما هم سپاسگزارم . دستتون درد نکنه
7xcuu83.gif
867skz9.gif


80mxyy0.gif


موفق باشید

با تشکر
20ge1pi.gif
 

uu99

Member
سلام
734ad6p.gif


در ویژوال بیسیک باید رشته را داخل دوتا علامت "" قرار بدهیم .

حالا اگه بخواهیم همین علامت ، اونم به همین شکل (یعنی 2تا باهم) داخل خود رشته حضور داشته باشند . یعنی این علامت جزئی از رشته ما باشه . اینو چجوری باید به ویژوال بیسیک بگیم ؟
6ydqcld.gif




با تشکر
mrb535.gif
 

saalek110

Well-Known Member
اگر منظور شما را درست متوجه شده باشم
فکر کنم کد زیر مشکل را حل کند:
کد:
Print " "" text "" "
Text1.Text = " "" text "" "
 

uu99

Member
اگر منظور شما را درست متوجه شده باشم
فکر کنم کد زیر مشکل را حل کند:
کد:
Print " "" text "" "
Text1.Text = " "" text "" "

سلام
734ad6p.gif



ممنونم جناب saalek110 .
7xcuu83.gif


درست شد.

باید یک فضای خالی قرار داشته باشه تا خطا نگیره .
 

the_king

مدیرکل انجمن
باید یک فضای خالی قرار داشته باشه تا خطا نگیره .

(در این متن من از نام Quot برای کاراکتر " (Quotation) استفاده کردم که در فارسی به عنوان علامت نقل قول بکار می رود.)

نه جانم، منظور saalek110 عزیز رو اشتباه متوجه شدید، اون فاصله ها را درج کردند تا بخوبی نحوه درج Quot مشخص بشه
وگرنه اصلا نیازی به فاصله نیست.
اصل کار ساده است، در داخل رشته های String به جای هر Quot یعنی " دو Quot درج میشه یعنی "".
این دقیقا همانند همان حالتی که برای درج کاراکتر \ در زبان سی داریم و درون رشته های زبان سی به صورت \\ درج می شود.

مثلا من می خواهم یک رشته ای بسازم که داخل فقط یک کاراکتر " باشد، پس کد من اینچنین خواهد بود :
کد:
MyString = """"
دو Quot سمت چپ و راست که به هر حال وجود دارند، دو Quot وسط هم معادل یک کاراکتر " است، یعنی در کل
در این عبارت چهار Quot وارد کرده ام تا خروجی مورد نظر حاصل شود.

در مثالی دیگر من می خواهم عبارت Test را در میان دو Quot قرار دهم یعنی بصورت "Test" ، پس کد من اینچنین خواهد بود :
کد:
MyString = """Test"""
در هر دو سر رشته سه Quot وجود دارد که یکی همان مشخص کننده محدوده رشته است که همیشه وجود دارد و دو Quot
دیگر به یک کاراکتر " تبدیل می شوند.

در مثال سوم من فرض می کنم که رشته ای به نام MyString دارم که عبارتی در آن وجود دارد، حالا می خواهیم به دو سر
آن Quot را اضافه کنیم :
کد:
MyString = """" & MyString & """"

کد ASCII کاراکتر " برابر 34 است پس می توانیم این کد را به این شکل هم بنویسیم :
کد:
MyString = Chr(34) & MyString & Chr(34)
 

saalek110

Well-Known Member
کد زیر بدون خطا اجرا می شود:
کد:
Private Sub Command1_Click()
MyString = """Test"""
Text1.Text = """Test"""
End Sub

و در تکست باکس عبارت :
کد:
"Test"
چاپ می شود.
 

Majid 3D

Member
دستور Replace در VB

کد:
lbltranslate.Caption = Replace(txtinput, "hello", "salam")
lbltranslate.Caption = Replace(txtinput, "father", "pedar")
کد بالا چه مشکلی داره ؟
سلام رو به جای hello جایگزین میکنه ولی پدر رو جایگزین father نمیکنه !​
 

saalek110

Well-Known Member
من که این جوری امتحان کردم مشکلی نبود:
کد:
Private Sub Command1_Click()
Label1.Caption = Replace(Text1.Text, "hello", "salam")
End Sub

یعنی وقتی در تکست باکس کلمه hello موجود بود در لیبل به جای آن کلمه salam را جایگزین می کرد.
 

Majid 3D

Member
این رو که خودمم میدونستم ... ولی نگا کن، فرض کن میخوای چندین دستور ریپلیس بدی ... اگه روی دکمه ی کامند کلیک شد مثلا سه تا کلمه رو پیدا کنه و با سه تای دیگه جایگزین کنه.
 

جدیدترین ارسال ها

بالا