Text Sortierung [Frage]

03/31/2018 14:12 Temx Keys#1
Hey,


ich hoffe jemand kann mir helfen beim Text sortieren in VB.NET.

In der Richtextbox ist folgendes:

Code:
31.03.2018;31792;Herr Max Mustermann;Flug von Berlin nach München vom 04.07-27.08.18 Reisende: Max 11010140;500.00 EUR;Bar erhalten
31.03.2018;31793;Frau Mustermann Sarah;Flug von Dortmund nach München vom 04.07-27.08.18 Reisende: Sarah 11010141;450.00 EUR;Bar erhalten
31.03.2018;31794;Herr Mark Mustermann;Umbuchung Flug von Dortmund nach München vom 04.07-27.08.18 Reisende: Mark 11010142;450.00 EUR;Bar erhalten
31.03.2018;31795;Herr Mustermann Kevin;Stornierung vom Flug von Dortmund nach München vom 04.07-27.08.18 Reisende: Kevin 11010143;450.00 EUR;Bar ausgezahlt
31.03.2018;31796;Herr Markus Mustermann;Pauschalreise von Dortmund nach München vom 04.07-27.08.18 Reisende: Markus 91010143;450.00 EUR;Bar erhalten
31.03.2018;31797;Kind Herbert Mustermann;Hotelbuchung Dortmund 04.07-27.08.18 Reisende: Herbert 91010144;450.00 EUR;Bar erhalten
31.03.2018;31798;Frau Anna Mustermann;Gepäck von Dortmund nach München vom 04.07-27.08.18 Reisende: Anna 11010145;50.00 EUR;Bar erhalten
Es soll der Vorname entfernt werden, dabei sollen einfach doppelte Wörter in jeder Zeile entfernt werden. Da in Reisende der Vorname noch mal enthalten ist.


Und gleich noch eine Frage.

Wenn man sowas hat:
Code:
31.03.2018;31792;X Herr Max Mustermann;Flug von Berlin nach München vom 04.07-27.08.18 Reisende: Max 11010140;500.00 EUR;Bar erhalten
31.03.2018;31793;X Frau Sarah Mustermann;Flug von Dortmund nach München vom 04.07-27.08.18 Reisende: Sarah 11010141;450.00 EUR;Bar erhalten
31.03.2018;31794;X Herr Mark Mustermann;Umbuchung Flug von Dortmund nach München vom 04.07-27.08.18 Reisende: Mark 11010142;450.00 EUR;Bar erhalten
31.03.2018;31795;X Herr Kevin Mustermann;Stornierung vom Flug von Dortmund nach München vom 04.07-27.08.18 Reisende: Kevin 11010143;450.00 EUR;Bar ausgezahlt
31.03.2018;31796;X Herr Markus Mustermann;Pauschalreise von Dortmund nach München vom 04.07-27.08.18 Reisende: Markus 91010143;450.00 EUR;Bar erhalten
31.03.2018;31797;X Kind Herbert Mustermann;Hotelbuchung Dortmund 04.07-27.08.18 Reisende: Herbert 91010144;450.00 EUR;Bar erhalten
31.03.2018;31798;X Frau Anna Mustermann;Gepäck von Dortmund nach München vom 04.07-27.08.18 Reisende: Anna 11010145;50.00 EUR;Bar erhalten
Ist es möglich das in den Zeilen nach den Wörtern "Stornierung, Umbuchung, Pauschalreise usw." gesucht werden und dann mit X ersetzt werden?



Ich bin für jede Hilfe dankbar.
03/31/2018 15:55 Bench#2
Quote:
Originally Posted by Temx Keys View Post
Hey,


ich hoffe jemand kann mir helfen beim Text sortieren in VB.NET.

In der Richtextbox ist folgendes:

Code:
31.03.2018;31792;Herr Max Mustermann;Flug von Berlin nach München vom 04.07-27.08.18 Reisende: Max 11010140;500.00 EUR;Bar erhalten
31.03.2018;31793;Frau Mustermann Sarah;Flug von Dortmund nach München vom 04.07-27.08.18 Reisende: Sarah 11010141;450.00 EUR;Bar erhalten
31.03.2018;31794;Herr Mark Mustermann;Umbuchung Flug von Dortmund nach München vom 04.07-27.08.18 Reisende: Mark 11010142;450.00 EUR;Bar erhalten
31.03.2018;31795;Herr Mustermann Kevin;Stornierung vom Flug von Dortmund nach München vom 04.07-27.08.18 Reisende: Kevin 11010143;450.00 EUR;Bar ausgezahlt
31.03.2018;31796;Herr Markus Mustermann;Pauschalreise von Dortmund nach München vom 04.07-27.08.18 Reisende: Markus 91010143;450.00 EUR;Bar erhalten
31.03.2018;31797;Kind Herbert Mustermann;Hotelbuchung Dortmund 04.07-27.08.18 Reisende: Herbert 91010144;450.00 EUR;Bar erhalten
31.03.2018;31798;Frau Anna Mustermann;Gepäck von Dortmund nach München vom 04.07-27.08.18 Reisende: Anna 11010145;50.00 EUR;Bar erhalten
Es soll der Vorname entfernt werden, dabei sollen einfach doppelte Wörter in jeder Zeile entfernt werden. Da in Reisende der Vorname noch mal enthalten ist.


Und gleich noch eine Frage.

Wenn man sowas hat:
Code:
31.03.2018;31792;X Herr Max Mustermann;Flug von Berlin nach München vom 04.07-27.08.18 Reisende: Max 11010140;500.00 EUR;Bar erhalten
31.03.2018;31793;X Frau Sarah Mustermann;Flug von Dortmund nach München vom 04.07-27.08.18 Reisende: Sarah 11010141;450.00 EUR;Bar erhalten
31.03.2018;31794;X Herr Mark Mustermann;Umbuchung Flug von Dortmund nach München vom 04.07-27.08.18 Reisende: Mark 11010142;450.00 EUR;Bar erhalten
31.03.2018;31795;X Herr Kevin Mustermann;Stornierung vom Flug von Dortmund nach München vom 04.07-27.08.18 Reisende: Kevin 11010143;450.00 EUR;Bar ausgezahlt
31.03.2018;31796;X Herr Markus Mustermann;Pauschalreise von Dortmund nach München vom 04.07-27.08.18 Reisende: Markus 91010143;450.00 EUR;Bar erhalten
31.03.2018;31797;X Kind Herbert Mustermann;Hotelbuchung Dortmund 04.07-27.08.18 Reisende: Herbert 91010144;450.00 EUR;Bar erhalten
31.03.2018;31798;X Frau Anna Mustermann;Gepäck von Dortmund nach München vom 04.07-27.08.18 Reisende: Anna 11010145;50.00 EUR;Bar erhalten
Ist es möglich das in den Zeilen nach den Wörtern "Stornierung, Umbuchung, Pauschalreise usw." gesucht werden und dann mit X ersetzt werden?



Ich bin für jede Hilfe dankbar.
Deine erste Frage kann ich nicht ganz folgen, kannst du diese bitte genauer stellen? Falls du den Vornamen entfernen möchtest (also z.B. "Herbert") dann orientiere dich an dem Semikolon bzw. an dem Datum, da nach diesem jeweils "Herr" oder "Frau" folgt und danach der Vorname.

Bzgl. deiner zweiten Frage: Du kannst per

Code:
For Each xLine As string In Textbox.Text.Split(vbnewline) 'wahlweise hier mit RichTextBox eben
'Code hier
Next
jede Zeile abarbeiten und eben nach diesen gewünschten Begriffen suchen und am Ende oder eben zu Anfang der Zeile ein X setzen.
03/31/2018 16:25 Njahs#3
Ich würde RegEx dafür verwenden (zumindest teilweise). Es ist nicht der einfachste Lösungsansatz aber er hat viele Vorteile.

Ein Tutorial dafür findest du auf diversen anderen Seiten / Foren, einfach nach VB.Net Regex googlen.

Quote:
Originally Posted by Temx Keys View Post
Es soll der Vorname entfernt werden, dabei sollen einfach doppelte Wörter in jeder Zeile entfernt werden. Da in Reisende der Vorname noch mal enthalten ist.
Hier könntest du die RegEx.Replace Methode anwenden. Dazu musst du zuerst ein Pattern finden / erstellen mit dem du alle Vornamen herausfiltern kannst. Voraussetzung hier für ist, dass die Reihenfolge von bspw. Anrede, Vorname und Nachname immer die selbe ist.
Ein Beispiel:

Ein nützliches Tool um das Pattern zu erstellen ist: [Only registered and activated users can see links. Click Here To Register...]

Quote:
Originally Posted by Temx Keys View Post
Ist es möglich das in den Zeilen nach den Wörtern "Stornierung, Umbuchung, Pauschalreise usw." gesucht werden und dann mit X ersetzt werden?
Hier musst du nicht zwingend RegEx benutzen, hier reicht eigentlich auch die [Only registered and activated users can see links. Click Here To Register...] Methode. Beispiele findest du auf der MSDN Seite.

Grüße