Vb "Contains"

08/28/2010 12:46 Algaten™#1
Hi also:

Ich habe eine Textbox mit viel text und eine andere textbox mit auch wieder viel text möchte nun aber testen ob eines der wörter die in textbox2 stehen in textbox1 vorkommen habe das aber noch nciht herausgefunden!

lg algaten
08/28/2010 13:00 Yakiyo#2
Code:
If TextBox1.Text.Contains("A") then
.....
End if
Glaube ich, wenns falsch ist, liegt es an meinem Hunger xD
Nya, stichwort Contains.
08/28/2010 20:45 Algaten™#3
Quote:
Originally Posted by friseur View Post
Code:
If TextBox1.Text.Contains("A") then
.....
End if
Glaube ich, wenns falsch ist, liegt es an meinem Hunger xD
Nya, stichwort Contains.
Ja das kannt ich schon dein hnuger is schuld!

Also ich ahbe eine textbox mit mehren wörtern und eine anderen textbox mit auhc mehreren wörtern möchte nun aber wissen obich prüfen kann ob eines dieser wörter in den anderen auch vorkommt
Quote:
Originally Posted by waxexe222 View Post
ako weak
#reported!
08/28/2010 20:48 Noisuf-X#4
Quote:
Originally Posted by algaten View Post
Ja das kannt ich schon dein hnuger is schuld!

Also ich ahbe eine textbox mit mehren wörtern und eine anderen textbox mit auhc mehreren wörtern möchte nun aber wissen obich prüfen kann ob eines dieser wörter in den anderen auch vorkommt


#reported!
Stichwort ist Regex
08/28/2010 20:54 Algaten™#5
Quote:
Originally Posted by Noisuf-X View Post
Stichwort ist Regex
Tut mir leid kann damit ncihts anfangen habe auch gegoogelt!

Und ich lade die Textdatei von einem Server ist das dann nicht schwerer?
08/28/2010 20:58 Atheuz#6
Quote:
Originally Posted by algaten View Post
Ja das kannt ich schon dein hnuger is schuld!

Also ich ahbe eine textbox mit mehren wörtern und eine anderen textbox mit auhc mehreren wörtern möchte nun aber wissen obich prüfen kann ob eines dieser wörter in den anderen auch vorkommt
Ja, wo ist das Problem? Das hat nichts mit Contains zu tun, sondern das du nicht die InputBox mit den Stichwörtern aufteilst und in ein passendes Format konventierst. Contains nimmt nur einen ganzen String auf und vergleicht ihn.

Aber wie schon gesagt wurde, mit Regex Funktionen würde es effizienter gehen.
[Only registered and activated users can see links. Click Here To Register...]
08/28/2010 21:12 Algaten™#7
Quote:
Originally Posted by Atheuz View Post
Ja, wo ist das Problem? Das hat nichts mit Contains zu tun, sondern das du nicht die InputBox mit den Stichwörtern aufteilst und in ein passendes Format konventierst. Contains nimmt nur einen ganzen String auf und vergleicht ihn.

Aber wie schon gesagt wurde, mit Regex Funktionen würde es effizienter gehen.
[Only registered and activated users can see links. Click Here To Register...]
mal sehen ich guck das mal habe mit regex Keine erfahrungen!

EDIT:
Ok habe nun mal Geguckt nun hbae ihc dne code ja auhc jetzt kopiert

Quote:
Dim sr As New StreamReader(filename)
Dim input As String
Dim pattern As String = "\b(\w+)\s\1\b"
Dim rgx As New Regex(pattern, RegexOptions.IgnoreCase)
Do While sr.Peek() >= 0
input = sr.ReadLine()
Dim matches As MatchCollection = rgx.Matches(input)
If matches.Count > 0 Then
Console.WriteLine("{0} ({1} matches):", input, matches.Count)
For Each match As Match In matches
Console.WriteLine(" " + match.Value)
Next
End If
Loop
sr.Close()

Nun wo steht drin welche zeilen der ließt?
08/28/2010 21:37 Noisuf-X#8
wenn du dir die Wikipedia Seite ich gepostet habe würdest du verstehen was Regex ist und was man damit machen kann.
Weil Regex ist zum Parsen von Texten eine sehr mächtig Tool bloß um Regex richtig anzuwenden wirst du um ein bisschen lesen nicht rumkommen.

Und ich werde hier kein Stück Regexcode posten bevor nicht Regex bezogene Fragen kommen.

Quote:
Originally Posted by Atheuz View Post
Ja, wo ist das Problem? Das hat nichts mit Contains zu tun, sondern das du nicht die InputBox mit den Stichwörtern aufteilst und in ein passendes Format konventierst. Contains nimmt nur einen ganzen String auf und vergleicht ihn.

Aber wie schon gesagt wurde, mit Regex Funktionen würde es effizienter gehen.
[Only registered and activated users can see links. Click Here To Register...]
nicht nur würde sondern tut es, wenn man sich mir Texte parsen will muss man sich schon mit Regular Expression beschäftigen
08/28/2010 22:04 Atheuz#9
Quote:
Originally Posted by Noisuf-X View Post
nicht nur würde sondern tut es, wenn man sich mir Texte parsen will muss man sich schon mit Regular Expression beschäftigen
Es gibt Gründe für beides, aus lust und laune gibt es die Methode nicht.
Es wäre deutlich sinnvoller darauf hinzuweisen was Container in dem Fall hier sind bzw auch StringBuilder, aber er versteht die Sprache kaum also verschone ihn damit. Erstmal soll er lernen wie man Funktionen aufruft und nicht was angebrachter ist, optimierung kann man sich danach immernoch aneignen.

Quote:
Originally Posted by algaten View Post
mal sehen ich guck das mal habe mit regex Keine erfahrungen!

EDIT:
Ok habe nun mal Geguckt nun hbae ihc dne code ja auhc jetzt kopiert



Nun wo steht drin welche zeilen der ließt?
Ich kopier einfach mal nur die Funktion raus, vielleicht verstehst du dann den Syntax...

Match match = Regex.Match(stringinput, "regex");
Ausgabe wäre dann mit match.Groups[0].value.

Sollte einfacher sein zu verstehen, regex muss natürlich ersetzt werden mit einem regex. :3
08/28/2010 23:18 Noisuf-X#10
Quote:
Originally Posted by Atheuz View Post
Es gibt Gründe für beides, aus lust und laune gibt es die Methode nicht.
Es wäre deutlich sinnvoller darauf hinzuweisen was Container in dem Fall hier sind bzw auch StringBuilder, aber er versteht die Sprache kaum also verschone ihn damit. Erstmal soll er lernen wie man Funktionen aufruft und nicht was angebrachter ist, optimierung kann man sich danach immernoch aneignen.



Ich kopier einfach mal nur die Funktion raus, vielleicht verstehst du dann den Syntax...

Match match = Regex.Match(stringinput, "regex");
Ausgabe wäre dann mit match.Groups[0].value.

Sollte einfacher sein zu verstehen, regex muss natürlich ersetzt werden mit einem regex. :3
:awesome: you made my day
1. beschwerst dich bei mir das ihn irgentwas nicht erklärt habe:confused:
(was ich schonmal nicht verstehe da ich garnicht auf VB.Net eingegangen bin sondern ihn nur sagen wollte, wo er ansetzten kann nämlich bei Regex und ich rede hier nicht von der .Net Klasse sonst hätte ich die verlinkt)
und what the hell mit optimierung Regex hat nichts mit Optimierung zutun
2. machst du dann so ein mist (sry ich will nicht beleidigen aber es ist mist da du nichts rüber gebracht hast, weil wie er seine wörter findet weiss er auch nicht er hat jetzt bloß mal die Regex .NET Implementierung gesehen)
Nicht weiss was .Match() überhaupt macht, außerdem braucht er eher .Matches() und in deiner so gesagten Ausgabe greiifst du auch die einzelnen Gruppen zu, warum? Ich kenne Regex die 20 Gruppen besitzen und meistens intersiert einen der gesamte string und so wie ich das gelesen haben will er das. Also warum so unerklärt und dann noch verwirrend beschrieben?

Mich würde auch mal brennend intressieren was du unter Container versteht.
Regex und Stringbuilder sind es nicht.

@TE
Regex(Regular Expressions) sind Zeichenfolgen um bestimmt Sachen in Texten zufinden zb um eine E-Mail in einem Text zu finden oder man kann Webseiten nach Links durch suchen.
Das ist ein sehr intressantes Thema und aber auch sehr komplexes Thema
Beispiel: das ist ein Regex Code um ein URI in einem Text zufinden

Die Klasse Regex ist die Implementierung von Regular Expressions in .NET.
.Match(), übergibt man den Text den man durchsuchen will und dann übergibt man ihn noch Regular Expression mit der man suchen will, [WICHTIG] das hier gibt einem bloß den ersten gefunden string zurück.
.Matches() gibt halt eine Liste vond en gefunden Zeichenfolgen zurück.
08/28/2010 23:46 Madd Eye#11
Warum so kompleziert?
Code:
Dim sArray as String()
Dim sub as String

sArray = Split(TextBox1.Text, " ")
For Each sub in sArray
If TextBox2.Text.Contains(sub) then
.....
End if
next sub
08/29/2010 00:37 Noisuf-X#12
Quote:
Originally Posted by Madd Eye View Post
Warum so kompleziert?
Code:
Dim sArray as String()
Dim sub as String

sArray = Split(TextBox1.Text, " ")
For Each sub in sArray
If TextBox2.Text.Contains(sub) then
.....
End if
next sub
Problem bei der Methode ist das du auch alle Zeichen mit raus bekommst.
Beispiel: ... super, dann... du würdest "super," rausbekommen und wenn im anderen text "super" steht würdest du nicht finden.
2tes Beispiel: Heavy - Metal ... du würdest das "-" bekommen, naja also bei mir ist ein bindestrich kein wort
08/29/2010 01:11 Madd Eye#13
Kann man ja per Abfrage rausschneiden
Code:
Dim sArray as String()
Dim sub as String
Dim zeichen as String() = (".","?","!",":",";")
Dim szeichen as String
sArray = Split(TextBox1.Text, " ")
for each szeichen in zeichen
For Each sub in sArray
sub = sub.Replace( szeichen, "" );
next szeichen
If TextBox2.Text.Contains(sub) then
.....
End if
next sub
08/31/2010 15:01 Algaten™#14
Neue Question :D
Quote:
Label4.Text = "0"
Label1.Text = "0"

Dim sArray As String()
Dim user As String
sArray = Split(TextBox1.Text, " ")
Dim erlaubt As String
Dim sarray1 As String()
sarray1 = Split(TextBox2.Text, "")

For Each user In sArray
For Each erlaubt In sarray1
If erlaubt.Contains(user) Then

Label4.Text = Val(Label4.Text) + Val("1")
Else

Label1.Text = Val(Label1.Text) + Val("1")

End If
Next erlaubt
Next user
End Sub
So
wenn ich das mache und ich den text überprüfe macht der immer die selbenn angaben !
Wieso?
08/31/2010 15:58 Madd Eye#15
Was heißt immer die Selben Angaben?
Ein paar mehr infos wären nicht schlecht ^^

Evtl. auch die zwei Texte dazu