*.txt endung counten

  • VB.NET

Es gibt 43 Antworten in diesem Thema. Der letzte Beitrag () ist von Snaptu.

    *.txt endung counten

    Hallo liebes Forum,

    ich sitze nun schon seit 2 Tagen an einem selbstgebastelten Quiz. Alles läuft, nur eben, bis auf den kleinen Fehler.

    VB.NET-Quellcode

    1. count += 1
    2. RichTextBox3.Text = RichTextBox3.Text.Remove(RichTextBox3.Text.Length - 5, 5)
    3. RichTextBox3.Text = RichTextBox3.Text & count & ".txt"

    Ich habe den Code so geschrieben, dass wenn ich auf den Button drücke, die an fünftletzter Stelle stehende Zahl lgelöscht wird und dann die nächte, mit +1 ersetzt wird. Alle Fragen für das Quiz hab ich als jeweils einzelne .txt Datei in einem Ordner abgespeichert. (Ich weiß bisschen umständlich aber egal)

    Nun ist mein Problem, wenn ich counte bis zur 10, da geht noch alles, counte ich jedoch noch einen weiter, steht da eine "111" anstatt einer "11". Dann nochmal ein Button click und ich bin bei "1112" anstatt bei "12".
    Ich muss dann irgendwie machen:
    If Richtextbox3.text >= ... Then

    Aber ich weiß nicht wie das gehen soll, vill bin ich auch voll auf dem Holz weg, nach 5 Stundne Coden komm ich auch bissl durch den Wind

    Bitte dringend um Hilfe.
    Wenn ihr noch mehr vom Code braucht einfach anfragen.

    MfG

    D3NN12
    Also macht dein Programm genau was es soll :)
    Das problem ist, du löscht das Letzte Element eines Strings und ersetzt es durch eine Zahl.

    Text9 -> Text -> Text10
    Text10 -> Text1 -> Text111

    Ich rate hier zu 2 seperaten Feldern Textbox für den Text und NumericUpDown (oder für die Optic eine Textbox) für die Zahl.
    There is no CLOUD - just other people's computers

    Q: Why do JAVA developers wear glasses?
    A: Because they can't C#

    Daily prayer:
    "Dear Lord, grand me the strength not to kill any stupid people today and please grant me the ability to punch them in the face over standard TCP/IP."
    Die 111 Kommt daher, da die 1 von der 10 nicht gelöscht wird,
    d.h. du musst ab der zehn entweder die 5- letzte und die 6_ letzte Zahl löschen, oder den
    eigentlichen Namen (alles vor .txt) neu definieren.

    Bsp.


    Quellcode

    1. Dim AllesVorTxt AS string = dein Text vor der Endung
    2. Richtextbox3.Text = AllesVorTxt & count & ".txt"

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „Kilian_98“ ()

    Schön wie ihr alle wiederholt was ich schon gesagt habe :)
    There is no CLOUD - just other people's computers

    Q: Why do JAVA developers wear glasses?
    A: Because they can't C#

    Daily prayer:
    "Dear Lord, grand me the strength not to kill any stupid people today and please grant me the ability to punch them in the face over standard TCP/IP."
    Hab dir mal eine kleine Vorlage fürn Quiz gemacht (falls es dich interessiert):

    VB.NET-Quellcode

    1. Option Strict On
    2. Public Class Form1
    3. Private WithEvents newQuiz As Quiz
    4. Private questionBinding As Binding
    5. Public Sub New()
    6. ' Dieser Aufruf ist für den Designer erforderlich.
    7. InitializeComponent()
    8. newQuiz = New Quiz(System.IO.File.ReadAllLines("Pfad der TextDatei", System.Text.Encoding.Default)) 'Quelle bzw Textdatei
    9. questionBinding = New Binding("Text", newQuiz, "ActualQuestion")
    10. Label1.DataBindings.Add(questionBinding)
    11. ' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu.
    12. End Sub
    13. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    14. If newQuiz.CheckAnswer(TextBox1.Text) Then
    15. newQuiz.NextQuestion()
    16. Else
    17. MessageBox.Show("Falsch!")
    18. End If
    19. End Sub
    20. Private Sub newQuiz_QuestionChanged(sender As Object, e As EventArgs) Handles newQuiz.QuestionChanged
    21. questionBinding.ReadValue()
    22. End Sub
    23. End Class
    24. Public Class Quiz
    25. Public Sub New(ByVal source As String())
    26. InitialiseQuiz(source)
    27. End Sub
    28. Public Sub InitialiseQuiz(ByVal source As String())
    29. Dim answer As String = String.Empty
    30. Dim question As String = String.Empty
    31. For Each line In source
    32. question = line.Split(":"c)(0)
    33. answer = line.Split(":"c)(1)
    34. Questions.Add(question, answer)
    35. Next
    36. ActualQuestionIndex = 0
    37. End Sub
    38. Public Property Questions As New Dictionary(Of String, String)
    39. Private _actualQuestionIndex As Integer
    40. Public Property ActualQuestionIndex As Integer
    41. Get
    42. Return _actualQuestionIndex
    43. End Get
    44. Set(value As Integer)
    45. If value < Questions.Count Then
    46. _actualQuestionIndex = value
    47. _actualQuestion = Questions.Keys(_actualQuestionIndex)
    48. RaiseEvent QuestionChanged(Me, EventArgs.Empty)
    49. Else
    50. Throw New ArgumentOutOfRangeException("Keine Fragen mehr vorhanden")
    51. End If
    52. End Set
    53. End Property
    54. Private _actualQuestion As String
    55. Public ReadOnly Property ActualQuestion As String
    56. Get
    57. Return _actualQuestion
    58. End Get
    59. End Property
    60. Public Event QuestionChanged As EventHandler
    61. Public Sub NextQuestion()
    62. ActualQuestionIndex += 1
    63. End Sub
    64. Public Function CheckAnswer(ByVal answer As String) As Boolean
    65. Return Questions.Values(_actualQuestionIndex) = answer
    66. End Function
    67. End Class


    Brauchst ein Label, eine Textbox und einen Button.
    Die Textdatei muss in diesem Format vorliegen:

    Frage:Antwort
    Frage:Antwort
    Frage:Antwort
    ...

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

    D3NN12 schrieb:

    Alle Fragen für das Quiz hab ich als jeweils einzelne .txt Datei in einem Ordner abgespeichert. (Ich weiß bisschen umständlich aber egal)
    ist es nicht.

    Aber erklär mal:
    Wie wird bei deim Quiz eine neue Frage eingegeben?
    Wie wird ühaupt gefragt - multiple Choice?
    wo wird hingeschrieben, ob eine Antwort richtig/falsch war?
    Gibt es mehrere Spieler, und iwie eine Punkt-Wertung?
    Hallo,
    Danke erstmal für die so schnellen und hilfreichen Antworten.

    @Don Batisto Ich habe alles verstanden, den Text von @RushDen bisher mir noch nicht durchgeguckt, weil ich erstmal mein eigenes Projekt fertig stellen wollte.

    @Kilian_98 Mit deinem Quellcode hab ich erst verstanden, was @Schamasch meinte.

    Ich bearbeite noch kurz Mein Quiz und dann kann ich auch dir schreiben @ErfinderDesRades ;)

    MfG
    D3NN12


    Edit:

    Jez habe ich den Code so umgeschrieben

    VB.NET-Quellcode

    1. RichTextBox3.Text = RichTextBox3.Text.Remove(RichTextBox3.Text.Length - 5, 5)
    2. Dim AllesVorTxt As String = RichTextBox3.Text
    3. RichTextBox3.Text = AllesVorTxt & count & ".txt"


    Jez kommt am Ende aber 111 und 1112 und 1113 und so raus. Aber vorher ging das irgendwie, habs aber leider aus meinem Clipboard gelöscht :/

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

    Dan erklär mir bitte wie, ich stehe total auf dem Schlauch.

    Meine Fragen werden aufgerufen, indem die endung vor der ".txt" geändert wird.
    Jede frage ist geordnet und Frage 14 ist zb. Fragen14, also im Pfad

    VB.NET-Quellcode

    1. "C:\....\Fragen14.txt"
    Bei mir ist das Problem, ich weiß nicht wie ich schreiben soll:

    VB.NET-Quellcode

    1. If Richtextbox3.Text >= 10 Then
    2. RichTextBox3.Text = RichTextBox3.Text.Remove(RichTextBox3.Text.Length - 5, 5)
    3. End If


    Das Funzt nicht. Da sagt mir VB Fehler

    Edit:
    Da macht mir Vb jez mein Pad kaputt und setzt nichtmal den Count & ".txt" hinter.



    Alles nur in eine Textdatei zu packen kommt für mein Programm nicht in Sichtweite.
    Es soll hinterher für jeden Meiner Leute frei änderbar sein und alles in einer TExtdatei, da kann seeeehr viel bei schief und kaputt gehen.

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