Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people, just like you, are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
Solved

am i doing it wrong? how can i improve this code.

Posted on 2004-08-26
17
256 Views
Last Modified: 2010-04-17
For i = 0 To Form1.banned.ListCount - 1
If LCase(text1x) Like "*" & LCase(Form1.banned.list(i)) & "*" Then
'MsgBox Form1.banned.list(i)
send "/unban " & Form1.banned.list(i)
else
send "/unban " & text1x
 End If
Next i

basically it searches the banned.list for a matching text *text* , *text, text*, and /unbans them 1 by 1, and if the text is not in the list then just /unban & the original text without the  * btw its not working :{
0
Comment
Question by:andyakira
  • 7
  • 6
  • 3
  • +1
17 Comments
 
LVL 19

Expert Comment

by:arif_eqbal
ID: 11909837
what's the error can you elaborate
0
 

Author Comment

by:andyakira
ID: 11909841
it adds whatever is in text1x , even though some matches are in the list.
0
 
LVL 10

Expert Comment

by:anv
ID: 11909873
why dont u use
instr instead of Like

here's how ur code will go using instr

For i = 0 To Form1.banned.ListCount - 1
If instr(1,LCase(text1x),Form1.banned.list(i),vbTextCompare)) then
 'MsgBox Form1.banned.list(i)
send "/unban " & Form1.banned.list(i)
else
send "/unban " & text1x
 End If
Next i
0
Free Tool: Site Down Detector

Helpful to verify reports of your own downtime, or to double check a downed website you are trying to access.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

 
LVL 19

Expert Comment

by:arif_eqbal
ID: 11909971
You can use InStr of course but your If clause is fine
there's no problem in the If clause.

Check your logic

You are matching a part of text1x with list value

if text1x value is ABCD and List contains CD it will match and call send "/unban " & Form1.banned.list(i)

not the other way round i.e. if text1x value is CD and list contains ABCD it will call send "/unban " & text1x

If this is what you want its working fine for me...
0
 

Author Comment

by:andyakira
ID: 11909981
its doing : send "/unban " & text1x like 10 times . i dont get whats wrong
0
 
LVL 10

Expert Comment

by:anv
ID: 11910011
could u xplain it with an example what exactly u want

say if the list item is "abcdefg" then if text1 has "ab" or "cd" etc... then ur condition is true is this what u want??

if yes then best would be to use Instr
0
 

Author Comment

by:andyakira
ID: 11910132
the list:
anv
andy
andz
candy
blur
scout
haste
doom
anvil




if text1x=an* or *n* or *nv it would find the following matches: anv, anvil

if text1x=o* it would find the following matches: doom, scout


-Andy
0
 
LVL 10

Expert Comment

by:anv
ID: 11910159
hi andy

try this

For i = 0 To Form1.banned.ListCount - 1
    If (Form1.banned.List(i) - 1
 Like Text1) Then
'MsgBox Form1.banned.list(i)
send "/unban " & Form1.banned.list(i)
else
send "/unban " & text1x
 End If
Next
0
 
LVL 10

Expert Comment

by:anv
ID: 11910161
i hope in the text box u r passing values like this
*an* or *an or an*

in your code u will have to interchange the positions of text and Form1.banned.List(i)  

hope it helped
0
 
LVL 19

Expert Comment

by:arif_eqbal
ID: 11910921
that's the problem actually...
even in your first code if you interchange the positions of text1x and Form1.banned.List(i) it would work.

0
 
LVL 10

Expert Comment

by:anv
ID: 11910962
great!! So ur Problem is solved...

how much points will i get now??
0
 
LVL 10

Accepted Solution

by:
anv earned 500 total points
ID: 11910968
:)) lol
0
 

Author Comment

by:andyakira
ID: 11914153
yes it works, now. but theres a problem: even if there is matches in the list (after successfully unbanning the matches) it does a /unban & text1x.  how do i make it not do a /unban text1x after it finds / unbans the matches?
0
 

Author Comment

by:andyakira
ID: 11914275
everytime there is no match, it adds a /unban text1x to the queue. so if theres 30 names in that bannedlist and there are no matches it does /unban text1x 30 times.
0
 

Author Comment

by:andyakira
ID: 11914323
For i = 0 To Form1.banned.ListCount - 1
If LCase(Form1.banned.list(i)) Like "*" & LCase(text1x) & "*" Then
send "/unban " & Form1.banned.list(i)
End If
Next i
send "/unban " & text1x



if i put it like this it still sends  /unban " & text1x after fixing searching/unbanning the list
0
 
LVL 26

Expert Comment

by:EDDYKT
ID: 11917557
then use variable

ie

dim found as boolean


For i = 0 To Form1.banned.ListCount - 1
If LCase(Form1.banned.list(i)) Like "*" & LCase(text1x) & "*" Then
send "/unban " & Form1.banned.list(i)
found = true
End If
Next i
if not found then send "/unban " & text1x
0
 

Author Comment

by:andyakira
ID: 11917940
thanks all, i wish i can split the points since everyone helped on this one. anv can choose to accept assisted answer from arif_eqbal  if he likes :)
0

Featured Post

Free Tool: Site Down Detector

Helpful to verify reports of your own downtime, or to double check a downed website you are trying to access.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Entering a date in Microsoft Access can be tricky. A typo can cause month and day to be shuffled, entering the day only causes an error, as does entering, say, day 31 in June. This article shows how an inputmask supported by code can help the user a…
Whether you’re a college noob or a soon-to-be pro, these tips are sure to help you in your journey to becoming a programming ninja and stand out from the crowd.
Viewers will learn how to properly install Eclipse with the necessary JDK, and will take a look at an introductory Java program. Download Eclipse installation zip file: Extract files from zip file: Download and install JDK 8: Open Eclipse and …

829 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question