Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

Hallo,

kennt jemand den Code oder die Methode mit der man in vb.net einen Text

durch einen String durchsuchen kann?

z. B. : Text : "Das Fachinformatiker forum ist toll und so weiter ..."

Suchtext : " toll"

Ergebnis wäre dann 1 mal gefunden

und weis jemand wie man alles nach diesem toll ausgeben kann?

Wenn möglich ohne Split^^

Danke im Voraus.

MFG

Wenn du nur wissen willst wie oft der text vorkommt dann kannst du es so machen.

Bin mir nicht ganz sicher ob du die jeweiligen startindexe haben willst oder nur die anzahl.....


Dim input as string = "Das Fachinformatiker forum ist toll und so weiter ..."

Dim matches As MatchCollection = Regex.Matches(input, "toll")

Dim anzahl as int = matches.Count

lg

Gateway

Bearbeitet von Gateway_man

Dim line As String = "Das Fachinformatiker forum ist toll und so weiter ..."


If line.Contains("toll") = True Then


'Mach was


End If

Nicht ausprobiert!! Kann auch sein, dass das nur im StreamReader funktioniert!

Dim line As String = "Das Fachinformatiker forum ist toll und so weiter ..."

If line.Contains("toll") = True Then

'Mach was

End If

Es funktioniert, aber If line.Contains("toll") = True ist schlechter Stil.

Contains liefert bereits einen boolschen Wert zurueck.

ok danke funktioniert soweit (: , habe nun noch ein problem ^^

und zwar lese ich den text aus einer xml datei aus und in ihr sind bestimmte "<tags>" deren Inhalt ich

filtern möchte. Kann mir jemand sagen wie ich nach diesen am besten Filtere ?

Ich hatte zuerst an Split gedacht aber das kommt mir ein bisschen umständlich vor.

gibt es vil. eine andere Methode?

z. B. : wenn ich folgenden xml code habe :

(er steht eig. in 1-2 zeilen aber habe ihn zur übersichtlichkeit in mehrere Zeilen eingeteilt)

Gesucht werden soll nach dem Inhalt des tags : "<Test>

<Info>

<test>

<Zeit 09:32:06>Mit welcher Methode das wohl funktionieren wird=?</Zeit 09:32:06>

<Zeit 09:32:06>HILFEEEE! </Zeit 07:32:06>

<Zeit 09:32:06>Test Text</Zeit 07:32:06>

</test>

<test>

<Zeit 09:32:06>Mit welcher Methode das wohl funktionieren wird=?</Zeit 09:32:06>

<Zeit 09:32:06>HILFEEEE! </Zeit 07:32:06>

<Zeit 09:32:06>Test Text</Zeit 07:32:06>

</test>

<test>

<Zeit 09:32:06>Mit welcher Methode das wohl funktionieren wird=?</Zeit 09:32:06>

<Zeit 09:32:06>HILFEEEE! </Zeit 07:32:06>

<Zeit 09:32:06>Test Text</Zeit 07:32:06>

</test>

</Info>

Ausgegeben werden soll von allen 3 test tags die Zeit und die Meldung.

Danke im vorraus.

mfg

Hallo

ich gebe dir nur ein paar Begriffe, die kannst dann Googeln ;). Weil willst ja nix vorgekaut bekommen sondern es verstehen :)

XMLDocument.Load

XMLDocument.DocumentElement.ChildNodes

XMLNode.ChildNodes

XMLNode.Name

XMLNode.Attributes

XMLNode.InnerText

XMLNode.OuterText

XMLAttribute.Name

Damit solltest du weiter kommen

Gruß Hans-Jörg

P.S. Gibt auch ein Galileo OpenBook zu VB.NET (evtl. auch C#) da sind auch XML- Beispiele dabei

Schau dir das mal an:

C#

 foreach (XElement item in xDoc.Element("DATASET").Element("TABLE").Element("LINE").Elements())

                {                    

                    if (item.Attribute("NAME").Value.Equals("NUM"))                    

                    {

                        sDescription = ((XElement)item.LastNode).Value;

                    }

                }
VB.Net:
For Each item As XElement In xDoc.Element("DATASET").Element("TABLE").Element("LINE").Elements() 

                    If item.@NAME = "NUM" Then 

                        sDescription = DirectCast(item.LastNode, XElement).Value

                    End If

                Next

Versuchs mal :)

Vielen dank für die Hilfe von euch allen (:

Habe es nun Hinbekommen.

Für alle die noch Suchen und nicht drauf kommen wie man weiter in die Knoten kommt

Hier mein Code :

Dim XML As XmlDocument = New XmlDocument()

Dim ni, nl As Integer

XML.Load("Dateipfad")

Dim np As Integer

ni = XML.DocumentElement.ChildNodes(0).ChildNodes.Count

'Parent Knoten

For np = 0 To XML.DocumentElement.ChildNodes.Count - 1 '4 Oberknoten

For ni = 0 To XML.DocumentElement.ChildNodes(np).ChildNodes.Count - 1 'Teil schleife 'Unterknoten Ebene 1

'MsgBox(XML.DocumentElement.ChildNodes(np).ChildNodes(ni).Name)

If XML.DocumentElement.ChildNodes(np).ChildNodes(ni).Name = "Fehler" Then

MsgBox(XML.DocumentElement.ChildNodes(np).ChildNodes(ni).Name, MsgBoxStyle.Critical)

For nl = 0 To XML.DocumentElement.ChildNodes(np).ChildNodes(ni).ChildNodes.Count - 1 ' Unterknoten Ebene 2

MsgBox(XML.DocumentElement.ChildNodes(np).Name)

MsgBox(XML.DocumentElement.ChildNodes(np).ChildNodes(ni).ChildNodes(nl).InnerText)

Next nl

End If

Next ni

Next np

End Function

das eigentliche Problem ist zwar gelöst, aber ich möchte dennoch auf einen Fehler hinweisen

der XML-Code ist nicht valide, da "Zeit 09:32:06" keinen gültigen Tagnamen darstellt (ungültige Zeichen)

zudem sollte der Name abhängig von dem zu speichernden Inhalt zu wählen sein (du willst in deinem Fall keine Zeiten speichern, sondern anscheinend Nachrichten, zu denen eine Zeitangabe dazu gehört)

und die tagnamen sollten nicht beliebig erweiter werden, bzw. es sollten keine Werte mit Hilfe von tagnamen gespeichert werden (dafür eignen sich Attribute oder weitere tags)

da du anscheinend nachrichten speichern willst, solltest du deine Tags ungefähr so aufbauen

<nachricht zeit="09:32:06">Dies ist eine Nachricht!</nachricht>

(die Namen der Tags und Attribute können selbstverständlich frei gewählt werden)

Edit:

weiterhin sollte man eine durchgängig einheitliche Groß- und Kleinschreibung verwenden (entweder fangen alle tags mit einem großen Buchstaben an oder es fangen alle mit einem kleinen Buchstaben an)

es ist zwar auch möglich, je nach Zusammenhang entweder mit großen oder mit kleinem Buchstaben anzufangen, allerdings kann dies zu Fehlern führen, wenn man später beim schreiben einer XML-Datei durcheinander kommt

Bearbeitet von Sacaldur

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.