File Read system

  • VB.NET
  • .NET (FX) 4.0

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von Acr0most.

    File Read system

    Hallo
    ich habe folgendes Problem ich habe ein kleine Programm zum test für einen ersatz der ini geschrieben ist fast ini mässig
    das tool list nach kleinen anfang schwierigkeiten 4 sachen aus nur leider möchte er die 5 sache nicht aus lesen



    so sieht es aus

    der Ladebereich

    VB.NET-Quellcode

    1. Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    2. tbHost.Text = con.ReadSettings("Host")
    3. tbUsername.Text = con.ReadSettings("User")
    4. tbPassword.Text = con.ReadSettings("Password")
    5. tbDBname.Text = con.ReadSettings("Database")
    6. tbsprache.Text = con.ReadSettings("Language")
    7. End Sub


    der Schreib bereich

    VB.NET-Quellcode

    1. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    2. Dim textWriter As TextWriter = DirectCast(New StreamWriter("Data/config/Settings.enc"), TextWriter)
    3. textWriter.WriteLine("## MySql Setting ")
    4. textWriter.WriteLine("SQL_HOST=" + tbHost.Text)
    5. textWriter.WriteLine("SQL_USER=" + tbUsername.Text)
    6. textWriter.WriteLine("SQL_PASSWORD=" + tbPassword.Text)
    7. textWriter.WriteLine("SQL_DATABASE=" + tbDBname.Text)
    8. textWriter.WriteLine("## Language")
    9. textWriter.WriteLine("SQL_LANGUAGE=" + tbsprache.Text)
    10. textWriter.Close()
    11. Me.Close()
    12. 'My.Settings.a_sprache = TextBox6.Text.ToString
    13. End Sub

    augabe der Datei

    Quellcode

    1. SQL_HOST=188.209.49.54
    2. SQL_USER=Mike
    3. SQL_PASSWORD=Wildflecken0809
    4. SQL_DATABASE=newproject_data
    5. SQL_LANGUAGE=usa


    meine Connection.dll

    VB.NET-Quellcode

    1. Imports System.IO
    2. Public Class Connection
    3. Private Shared Function InlineAssignHelper(Of T)(ByRef target As T, value As T) As T
    4. target = value
    5. Return value
    6. End Function
    7. Public Function ReadSettings(var As String) As String
    8. If Not File.Exists("Data/config/Settings.enc") Then
    9. Return ""
    10. End If
    11. Dim Host As String = ""
    12. Dim User As String = ""
    13. Dim Password As String = ""
    14. Dim Database As String = ""
    15. Dim Episode As String = ""
    16. Dim Language As String = ""
    17. Dim textReader As TextReader = DirectCast(New StreamReader("Data/config/Settings.enc"), TextReader)
    18. Dim str1 As String
    19. While (InlineAssignHelper(str1, textReader.ReadLine())) IsNot Nothing
    20. If Not str1.Contains("#") AndAlso str1.Length <> 0 Then
    21. Dim strArray As String() = str1.Split("="c)
    22. For Each str3 As String In strArray
    23. If strArray(0) = "SQL_HOST" Then
    24. Host = strArray(1)
    25. End If
    26. If strArray(0) = "SQL_USER" Then
    27. User = strArray(1)
    28. End If
    29. If strArray(0) = "SQL_PASSWORD" Then
    30. Password = strArray(1)
    31. End If
    32. If strArray(0) = "SQL_DATABASE" Then
    33. Database = strArray(1)
    34. End If
    35. If strArray(0) = "SQL_Language" Then
    36. Language = strArray(1)
    37. End If
    38. If strArray(0) = "Episode" Then
    39. Episode = strArray(1)
    40. End If
    41. Next
    42. End If
    43. End While
    44. textReader.Close()
    45. If var = "Host" Then
    46. Return Host
    47. ElseIf var = "User" Then
    48. Return User
    49. ElseIf var = "Password" Then
    50. Return Password
    51. ElseIf var = "Database" Then
    52. Return Database
    53. ElseIf var = "Language" Then
    54. Return Language
    55. ElseIf var = "Episode" Then
    56. Return Episode
    57. Else
    58. Return ""
    59. End If
    60. End Function
    61. End Class




    bei der roten Makierung bleibt er leer aber er schreibt es ja in die Setting.enc ohne probleme nur er holt sie nicht raus

    könnte mir da möglicherweise jemand auf die sprünge Helfen wie ich das beheben kann
    Boah, sorry, aber Deine Grammatik ist ... anstrengend. Sei's drum.
    Wie nennt sich denn die TextBox, die leer bleibt? Was soll drin stehen? Wenn Du mit

    Matzuake schrieb:

    aber er schreibt es ja in die Setting.enc ohne probleme

    das hier meinst

    Quellcode

    1. SQL_HOST=188.209.49.54
    2. SQL_USER=Mike
    3. SQL_PASSWORD=Wildflecken0809
    4. SQL_DATABASE=newproject_data
    5. SQL_LANGUAGE=usa

    nö, dann seh ich da nur Sachen, die im Formular auch drin stehen.
    Hat es irgendwas mit »Episode« zu tun? Ich seh da dieses Wort zwar im Code, aber nirgends im Importer:

    VB.NET-Quellcode

    1. tbHost.Text = con.ReadSettings("Host")
    2. tbUsername.Text = con.ReadSettings("User")
    3. tbPassword.Text = con.ReadSettings("Password")
    4. tbDBname.Text = con.ReadSettings("Database")
    5. tbsprache.Text = con.ReadSettings("Language")

    Und auch nicht in der Ausgabedatei.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Hallo schuldigung wegen dem ersten Post

    Ich habe da ein kleines Problem
    tbsprache.Text bleibt leer obwohl es in der setting.enc nieder geschrieben wird unter SQL_LANGUAGE=usa

    Das einschreiben in der Setting.enc funktioniert wunderbar und nur wenn es im Form_load ereigniss eingelesen werden soll bleibt tbsprache.text leer

    Ich habe schon geschaut wo dran es liegen könnte aber bis jetzt habe ich keine Lösung gefunden die mir da Abhilfe schaffen könnte
    Spekulatiusmodus on:
    Du schreibst mit textWriter.WriteLine("SQL_LANGUAGE=" + tbsprache.Text) liest aber mit If strArray(0) = "SQL_Language" Then => Groß-/Kleinschreibung beachten! (Auch) in VB ist bei einem direkten Textvergleich SQL_LANGUAGE nicht gleich SQL_Language.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    ist es zielführend, dass die Funktion ReadSettings pro Setting 1x mal aufgerufen wird?

    Ich würde ein Objekt bevorzugen, bei dem du Config lesen und Config schreiben einzeln triggern kannst und die Settings als Properties vorhanden sind.

    So wie es jetzt ist führst du das komplette lesen 5x aus und liest ALLES - gibst aber nur var zurück.

    Lg, Acr0most
    Wenn das Leben wirklich nur aus Nullen und Einsen besteht, dann laufen sicherlich genügen Nullen frei herum. :D
    Signature-Move 8o
    kein Problem mit privaten Konversationen zu Thema XY :thumbup: