ورود

View Full Version : سوال: سوال در مورد حلقه For و Replace



Hassan2500
سه شنبه 14 شهریور 1391, 19:31 عصر
سلام

از دوستانم میخوام کدهای زیر رو درستشون رو برام بنویسید


در کد زیر میخوام فقط یه حلقه استفاده بشه ولی خب کار نمیکنه

Private Sub Command1_Click()
Dim i
For i = 0 To 28
VSFlexGrid1.Cell(flexcpBackColor, i, i) = vbRed
Next i
End Sub


در کد زیر میخوام که اگر هر یک از این چهار حرف جداگانه در تکست1 نوشته شد اون حرف در تکست2 نشون داده نشه ولی وقتی چهار حرف کنار هم نوشته میشن کد عمل میکنه در ضمن میخوام فقط از یه Replace استفاده بشه


Private Sub Text1_Change()
Jaygozin = Replace(Text1, "abcd", "")
Text2 = Jaygozin
End Sub

SlowCode
سه شنبه 14 شهریور 1391, 19:42 عصر
1- ميخواي همه سلول هات رو قرمز كني يعني 841 تا رو؟ يا چي؟ با اين كد سلول هايي كه روي خط مورب هستن قرمز ميشن. بگو دقيقا چي ميخواي؟

Hassan2500
سه شنبه 14 شهریور 1391, 20:52 عصر
همه سلولها رو میخوام قرمز بشن

SlowCode
سه شنبه 14 شهریور 1391, 21:10 عصر
مال من backcolor داره و مستقيما رنگ همه سلول ها رو عوض ميكنه، مال تو نداره؟ امكان نداره يكم بگرد.
واسه سوال دومت هم:
For i = 1 To 4
a = Choose(i, "a", "b", "c", "d")
Text1 = Replace(Text1, a, "")
Next

Hassan2500
سه شنبه 14 شهریور 1391, 21:14 عصر
میخوام بارها ازش استفاده کنم کد این حالت رو میخوام نه فقط یه بار

SlowCode
سه شنبه 14 شهریور 1391, 21:16 عصر
پست ويرايش شد.

Hassan2500
سه شنبه 14 شهریور 1391, 22:09 عصر
از دوستان کسی میتونه کد پست4 رو اینطوری تغییر بده که اگر این چهار حرف بودند فقط نمایش داده بشن

aleas2
سه شنبه 14 شهریور 1391, 22:19 عصر
خب این چه کاری خب اینکارو بکن

Text2.Text = Text1.Text
For i = 1 To 4
a = Choose(i, "a", "b", "c", "d")
Text2.Text = Replace(Text2.Text, a, "")
Next i

Hassan2500
سه شنبه 14 شهریور 1391, 22:23 عصر
من جوابم این چیزی که شما گفتید نیست لطفاً پست7 رو بخونید

aleas2
سه شنبه 14 شهریور 1391, 22:24 عصر
از دوستان کسی میتونه کد پست4 رو اینطوری تغییر بده که اگر این چهار حرف بودند فقط نمایش داده بشن
یعنی چی از اگر فقط این چهار حرف بودن نمایش بده؟

Hassan2500
سه شنبه 14 شهریور 1391, 22:32 عصر
یعنی وقتی در تکست1 حروف غیر از اینها رو نوشتم در تکست2 نمایش داده نشه و فقط این چهار حرف هنگام نوشتن نمایش داده بشه

aleas2
سه شنبه 14 شهریور 1391, 22:59 عصر
والا آخر متوجه نشدم اگر میتونی یه مثال بزن !!
این کد بطور مثال اگر text1

salam b d c
باشه یعنی هم a - b- c-d هر چهار کلمه در text1 وجود داشته باشه داخل text2 نمایش میده

j = 0
For i = 1 To 4
a = Choose(i, "a", "b", "c", "d")
If InStr(1, Text1.Text, a) <> 0 Then j = j + 1
Next i
If j = 4 Then Text2.Text = Text1.Text

Hassan2500
سه شنبه 14 شهریور 1391, 23:10 عصر
منظورم اینه

تکست1: salam
تکست2: aa

تکست1: aban
تکست2: aba

aleas2
چهارشنبه 15 شهریور 1391, 00:03 صبح
نمیدونم امیدوارم این کد همونی باشه که میخواهی اگر نبود دگه شرمنده چون متوجه منظورت نمیشه انشالا دوستان جوابتو میدن

Dim chek1 As Boolean
chek1 = False
j = 0
For i = 1 To 4
a = Choose(i, "a", "b", "c", "d")
If InStr(1, Text1.Text, a) = 1 Then chek1 = True: Exit For
Next i

If chek1 = True Then
For i = 1 To 4
a = Choose(i, "a", "b", "c", "d")
If InStrRev(Text1.Text, a) > j Then j = InStrRev(Text1.Text, a)
Next i
Text2.Text = Left(Text1.Text, j)
Else

Text2.Text = ""
For i = 1 To Len(Text1.Text)
a = Mid(Text1.Text, i, 1)
If a = "a" Or a = "b" Or a = "c" Or a = "d" Then
Text2.Text = Text2.Text & a
End If
Next i
End If

MahmoodGH
جمعه 17 شهریور 1391, 23:12 عصر
نیازی به استفاده از حلقه ی For یا هیچ حلقه ی دیگه ای نیست ، با یک Replace ساده حل میشه ، باید براش یه Function بنویسی و اونو فراخوانی کنی که من برات یکیشو ساختم ، البته این فقط برای حروف انگلیسیه و برای اعداد و یا هر چیز دیگه رو باید خودت بهش اضافه کنی. برای استفاده از کد یه دکمه به اسم cmdRead و دوتا TextBox به اسم txtEnter و txtOut بزار روی فرمت و کد هایی رو تو فرمت کپی کن :

Dim txtFinal As String


Private Sub cmdRead_Click()
SpatialKey txtEnter
txtOut = txtFinal
End Sub

Private Sub Form_Load()
Me.Caption = "Mahmood Gharibi :) "
txtEnter = "Mahmood Gharibi :) "
End Sub

Public Sub SpatialKey(txtBase As String)
Dim mSearch As String
mSearch = LCase(txtBase)
mSearch = Replace(mSearch, "e", "")
mSearch = Replace(mSearch, "f", "")
mSearch = Replace(mSearch, "g", "")
mSearch = Replace(mSearch, "h", "")
mSearch = Replace(mSearch, "i", "")
mSearch = Replace(mSearch, "j", "")
mSearch = Replace(mSearch, "k", "")
mSearch = Replace(mSearch, "l", "")
mSearch = Replace(mSearch, "m", "")
mSearch = Replace(mSearch, "n", "")
mSearch = Replace(mSearch, "o", "")
mSearch = Replace(mSearch, "p", "")
mSearch = Replace(mSearch, "q", "")
mSearch = Replace(mSearch, "r", "")
mSearch = Replace(mSearch, "s", "")
mSearch = Replace(mSearch, "t", "")
mSearch = Replace(mSearch, "u", "")
mSearch = Replace(mSearch, "v", "")
mSearch = Replace(mSearch, "w", "")
mSearch = Replace(mSearch, "x", "")
mSearch = Replace(mSearch, "y", "")
mSearch = Replace(mSearch, "z", "")
mSearch = Replace(mSearch, " ", "")


txtFinal = mSearch
End Sub

abidana
دوشنبه 20 شهریور 1391, 15:22 عصر
خب یه حلقه بنویس

abidana
دوشنبه 20 شهریور 1391, 15:33 عصر
از یه حلقه استفاده کن