Text aus Textbox auswerten

  • VB.NET

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von BeatsleigherXDA.

    Text aus Textbox auswerten

    Hallo Zusammen,

    ich habe folgendes vor:

    Ein Auftragssystem schickt eine Text E-Mail in ein Postfach, dieses Postfach wird jede Minute durch meine Anwendung überprüft und geleert. Die E-Mail die im Postfach ist wird heruntergeladen und gelöscht. Der Inhalt dieser E-Mail wird in einer Textbox angezeigt.
    Soweit so gut das ist auch schon alles realisiert. Jetzt zu meinem Problem.

    Der Inhalt ist wie folgt aufgebaut:

    Auftragsart: Testauftrag
    Auftragsort: Musterhausen
    Auftragsstraße: Musterstrasse
    Auftraggeber: Mustermann

    usw....

    Jetzt möglich ich diese sachen abfragen und ganz groß auf einem 42" Bildschirm anzeigen. Also muss das was bei Auftragsart steht jetzt in die Textbox: txt_auftragsart
    Wie bekomme ich das hin?

    Danke für eure Hilfe

    VB.NET-Quellcode

    1. Using sReader as StringReader = new StringReader(textbox1.Text)
    2. Dim line As String = Nothing
    3. While Not sReader.Peek() = -1
    4. line = sReader.ReadLine()
    5. If line.ToLower().StartsWith("auftragsort") Then
    6. '// Bearbeiten
    7. Else If line.ToLower().StartsWith("auftragsdatum") Then
    8. '// Bearbeiten
    9. End If
    10. End While
    11. End Using


    Das wäre so dein Ansatz.
    Im Prinzip geht das den Text Zeile für Zeile durch und dann kannst du alles abarbeiten und bearbeiten.

    EDIT: Warte mal, ich mache das mal ein bisschen OOP-er.

    VB.NET-Quellcode

    1. Public Class Contract
    2. Public Enum ContractType
    3. Gib, Hier, Die, Verschiedenen, Typen, Ein
    4. End Enum
    5. #Region "Variables"
    6. Private m_contractType As ContractType = Nothing
    7. Private m_contractLocation As String = Nothing
    8. Private m_contractClient As String = Nothing
    9. #End Region
    10. Public Property ContractType() As ContractType
    11. Get
    12. Return m_contractType
    13. End Get
    14. Set (value As ContractType)
    15. m_contractType = value
    16. End Set
    17. End Property
    18. Public Property ContractLocation() As String '// Ja, das kann man auch als eigenständige Klasse machen, fand ich jetzt aber nicht so wichtig
    19. Get
    20. return m_contractLocation
    21. End Get
    22. End Property
    23. Public Property ContractClient() As String
    24. Get
    25. return m_contractClient
    26. End Get
    27. End Property
    28. Public Sub SetContractLocation(street As String, houseNr As Integer, city As String, postcode As String)
    29. m_contractLocation = String.Format("Straße / Haus Nr.: {0} {1}" + vbNewLine _
    30. + "Postleitzahl / Stadt: {2} {3}" + vbNewLine _
    31. + "Deutschland", street, houseNr.ToString(), postcode, city)
    32. End Sub
    33. Public Sub SetContractName(title As String, firstName As String, lastName As String)
    34. m_contractName = String.Format("{0} {1} {2}", title, firstName, lastName)
    35. End Sub
    36. Public Sub New(type As ContractType, street As String, houseNr As Integer, city As String, postcode As String, title As String, firstName As String, lastName As String)
    37. m_contractType = type
    38. SetContractLocation(street, houseNr, city, postcode)
    39. SetContractName(title, firstName, lastName)
    40. End Sub
    41. '// Wenn du wirklich pingelig sein willst, kannst du das hier mit Events und Delegates schmücken
    42. End Class
    43. Public NotInheritable Class ContractParser
    44. Public Shared Function GetContract(rawEmail As String) As Contract
    45. Dim contract As Contract = Nothing
    46. Using sReader As StringReader = New StringReader(rawEmail)
    47. Dim line As String = Nothing
    48. Dim type As Contract.ContractType = Nothing
    49. Dim street As String
    50. Dim houseNr As Integer
    51. Dim postcode As String
    52. DIm city As String
    53. Dim title As String
    54. Dim firstName As String
    55. Dim lastName As String
    56. Dim splitData As String() = Nothing
    57. While Not sReader.Peek() = -1
    58. line = sReader.ReadLine()
    59. if (line.ToLower().StartsWith("auftragsart: ") Then
    60. splitData = Regex.Split(line, "[:]")
    61. Select Case splitData(1)
    62. Case "testauftrag"
    63. type = Contract.ContractType.TestAuftrag
    64. Case "bauauftrag"
    65. type = Contract.ContractType.BauAuftrag
    66. Case Else
    67. type = Contract.ContractType.Unbekannt
    68. End Select
    69. Else If (line.ToLower().StartsWith("auftragsort: ")) Then
    70. '// Ich gehe mal davon aus, dass es so aufgebaut ist: Auftrags-Ort: Musterstraße 47, 12345 Musterhausen
    71. splitData = Regex.Split(Regex.Split(line, "[:\s]")(1), "[,]")
    72. street = Regex.Split(splitData(0), "[\s]")(0)
    73. houseNr = Integer.Parse(Regex.Split(splitData(0), "[\s]")(1))
    74. splitData = Regex.Split(splitData(1), "[\s]")
    75. postcode = splitData(0)
    76. city = splitData(1)
    77. Else If (line.ToLower().StartsWith("auftraggeber")) Then
    78. '// Hier gehe ich davon aus, dass es so aufgebaut ist: Auftraggeber: Herr Max Mustermann
    79. splitData = Regex.Split(Regex.Split(line, "[:\s]")(1), "[\s]")
    80. title = splitData(0)
    81. firstName = splitData(1)
    82. lastName = splitData(2)
    83. End If
    84. End While
    85. sReader.Close()
    86. contract = New Contract(type, street, houseNr, city, postcode, title, firstName, lastName)
    87. End Using
    88. If Not contract = Nothing Then
    89. Return contract
    90. Else : Return Nothing
    91. End Function
    92. End Class


    Wenn ich Fehler gemacht habe, bitte darauf hinweisen; ich habe den Code direkt hier in der Antwort geschrieben, ohne VS. Die Fehler werden dann korrigiert.
    "Nichts ist unendlich, bis auf die menschliche Dummheit" - Albert Einstein
    "Man sollte nicht alles vertrauen, was im Netz steht" - Abraham Lincoln

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „BeatsleigherXDA“ ()

    @BeatsleigherXDA ich habe in dem Quellcode gerade

    VB.NET-Quellcode

    1. If Not contract = Nothing Then
    2. Return contract
    3. Else : Return Nothing

    Gefunden...
    Das ist doch das gleiche wie

    VB.NET-Quellcode

    1. Return contract

    Oder sehe ich da gerade etwas falsch?
    Ich Antworte nach bestem Wissen und Gewissen. Ich übernehme keine Garantie für die Richtigkeit oder Fehlerfreiheit meiner Texte.


    Ich konnte dir helfen?
    - Das ist schön :) Ich würde mich über ein "Hilfreich" freuen ^^
    Ja, doch stimmt. Mein Hirn hat gefurzt.

    So müsste es richtig sein:

    VB.NET-Quellcode

    1. If Not contract = Nothing Then
    2. Return contract
    3. Else
    4. Throw New Exception("Contract cannot be null")
    5. End If
    "Nichts ist unendlich, bis auf die menschliche Dummheit" - Albert Einstein
    "Man sollte nicht alles vertrauen, was im Netz steht" - Abraham Lincoln

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „BeatsleigherXDA“ ()