Zum Inhalt springen

String Split


Gateway_man

Empfohlene Beiträge

Hi,

vorab es handelt sich hier um die Programmiersprache Visual Basic 2005.

Ich habe folgendes vor:

-Zwei Textboxen die 2 Strings in eine Textdatei anfügen. Die Strings sind nur ~ getrennt und nach jedem Stringsatz wird in der Textzeile ein Zeilenumbruch mit vbclf gemacht.

Sieht folgendermaßen aus:


 Dim Eingabe1 As String

        Dim Eingabe2 As String

        Eingabe1 = TextBox1.Text

        Eingabe2 = TextBox2.Text

        Dim inputString As String = Eingabe1 & "~" & Eingabe2 & vbCrLf

        My.Computer.FileSystem.WriteAllText _

        ("C:\WINDOWS\system32\reg2.txt", inputString, True)
So jetzt will ich folgende Stringsatz wieder auslesen und die 2 Eingaben der Textboxen trennen. Das Problem: -einlesen der Texdatei -erstes Spliten in Stringsätze (damit ich die 2 Strings schonmal als ganzes habe)
Userdaten = regreader.ReadToEnd

        Usersatz = Split(Userdaten, vbCrLf)

So jetzt zum eigentlichen Problem:

Wenn ich dann den String gesplitet habe in Userdaten, welche nochmals das ~ als Trennzeichen haben und ich diese nocheinmal spliten will sagt er mir das ich ein eindimmensionales Array nicht spliten kann. Was klar ist, jedoch fällt mir dazu jetzt keine passende lösung ein :-(

Sofern mir jemand folgen konnte in meiner doch recht wirren beschreibung wäre ich über postive vorschläge sehr froh.

lg

simon

Link zu diesem Kommentar
Auf anderen Seiten teilen

Kleines Upadate die User kann ich schon trennen sieht wie folgt aus:


  Dim regreader As New StreamReader("C:\WINDOWS\system32\reg2.txt")



        Do While Not regreader.EndOfStream

            Userdaten = regreader.ReadLine

                        user = Split(Userdaten, "~")

                   Loop

allerdings hab ich keine ahnung wie ich den Teil nach dem ~ Zeichen ausgelesen bekomme. Entweder er ließt mir beide strings oder nur den user String raus.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Moin!

Ich bin mir nicht ganz sicher, ob ich alles verstanden habe, was Du da so geschrieben hast, daher versuche ich mal es mit eigenen Worten wiederzugeben.

1. Du setzt einen String aus den Texten zweier Editfelder zusammen, die durch das Zeichen "~" getrennt sind.

Bsp.: Edit1 "Hallo"

Edit2 "Welt"

Zusammengesetzer und gespeicherter String "Hallo~Welt"

2. Du liest den String wieder ein und trennst ihn mit der Methode Split

Dadurch solltest Du ein Array mit Strings zurueckbekommen.

In Deinem Fall muesste also user[0] "Hallo" und user[1] "Welt" enthalten

Liege ich da falsch oder habe ich etwas falsch verstanden?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hab jetzt leider keine Editor zur Hand, aber ich probiers trotzdem mal zu erklären.

Du kannst innerhalb eines Strings die Position eines bestimmten Zeichens abfragen; in deinem Fall "~".

dann liest du mit der Methode substring vom anfang des zusammengesetzten strings bis (Position des Zeichens -1) und speicherst den zurückgegebenen Wert in einem String. Als nächstes leist du mit substring von (Position des Zeichens +1) bis zum Ende des zusammengesetzten Strings und speicherst das Ergebniss in einem weiteren String. Schon hast du beide Textfelder wieder zusammen

Link zu diesem Kommentar
Auf anderen Seiten teilen

also nochmal das Grundprinzip. Ich will ein registrierungspannel machen welches 2 Texboxen hat wo Benutzernamen und Passwort reingehören.

Diese werden dann in einer Textdatei gespeichert und zwar folgendermaßen:

"Username"~"Passwort" vbcrlf

das Zeichen ~ dient als delimiter zum spliten. vbcrlf ist für den Zeilenumbruch da.

jetzt habe ich bereits den Text Zeile für Zeile eingelesen. Das passiert so:

Do While Not regreader.EndOfStream

            Userdaten = regreader.ReadLine

Loop 

Und da ich das vbcrlf nutze benötige dafür keinen split. Jetzt muss ich jedoch noch Username und Passwort voneinander spliten und jedem einen eigenen string zuweisen, damit ich dies später in der If abfrage verwenden kann.

Jedoch hab ich schon gesagt sobald ich Userdaten splite in user, welches mir dann den Usernamen schon einmal alleine anzeigt:

user = Split(Userdaten, "~")

kann ich diesen String nicht nocheinmal spliten da er schon gesplitet ist und ich somit nich an mein dazugehöriges Passwort rankomme.

LadyPreis deine Beschreibung ist für mich noch nicht ganz verständlich.

Trotzdem danke

Link zu diesem Kommentar
Auf anderen Seiten teilen

Eventuell versteht mans besser wenn ich den ganzen prozess mal reinposte:


Imports System.Text

Imports System

Imports System.IO

Imports System.Collections


Public Class Form1

    Dim user() As String

    Dim Passwort() As String

    Dim Userdaten As String

    Dim Usersatz() As String

    Dim lin_val() As String

    Dim recordsatz() As String






    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Dim regreader As New StreamReader("C:\WINDOWS\system32\reg2.txt")



        Do While Not regreader.EndOfStream

            Userdaten = regreader.ReadLine

            user = Split(Userdaten, "~")

        Loop




    End Sub


    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

        Dim Eingabe1 As String

        Dim Eingabe2 As String

        Eingabe1 = TextBox1.Text

        Eingabe2 = TextBox2.Text

        Dim inputString As String = Eingabe1 & "~" & Eingabe2 & vbCrLf

        My.Computer.FileSystem.WriteAllText _

        ("C:\WINDOWS\system32\reg2.txt", inputString, True)



    End Sub


    Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged


    End Sub


    Private Sub TextBox2_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox2.TextChanged


    End Sub

End Class

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...