Splitter splittet falsch?

  • VB.NET
  • .NET (FX) 3.0–3.5

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von Orion.

    Splitter splittet falsch?

    Tag zusammen
    Ich eröffne jetzt dazu ein neuer Thread weils im andern längst nicht mehr um die For each Schleife geht.
    Also ich splitte das Array nach dem Zeichen ";" aber die Ausgabe dabei ist komplett falsch kann mir jemand sagen woran das liegt ?
    Habe jetzt mal alles ausgeben lassen in MsgBoxen... Das File wird geöffnet und nach jedem Buchstaben gesplittet? Obwohl ich ";" angegeben habe... Ich verstehs langsam nicht mehr.

    VB.NET-Quellcode

    1. Dim reader = My.Computer.FileSystem.ReadAllText(path & "\Indexierung\" + auto.IsBestKeyWord)
    2. reader.Split(";"c)

    Die Ausgabe ist eben das er nach jedem einzelnen Buchstaben splittet obwohl das gar nicht so sein sollte:
    Spoiler anzeigen
    Firma,Strasse,Ort;
    Wird zu:
    F
    i
    r
    m
    a...
    Metal-Schweiz wurde nun offiziell veröffentlich nach all den Jahren :)

    Orion schrieb:

    aber die Ausgabe dabei ist komplett falsch
    Nö.
    Schreib einfach mal ein paar mehr Zeilen Code und verfolge den Inhalt der Variablen.
    Bilder
    • Split.png

      8,41 kB, 316×135, 101 mal angesehen
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Doofe Frage... Aber wie ruf ich die Reader length auf?
    Metal-Schweiz wurde nun offiziell veröffentlich nach all den Jahren :)

    Also wenn ich bei reader.split drüber fahre zeigt er mir nur den Inhalt der Datei.
    Metal-Schweiz wurde nun offiziell veröffentlich nach all den Jahren :)

    Also der Screenshot ist vom Ergebnis (einem Array) und nicht der zu splittenden Variable... Das nur am Rande.
    In deinem Quellcode sehe ich nichts dem du reader.Split(";"c) zu weist....

    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    ... Nun solltest es selber wissen. :'D

    Orion schrieb:

    Also
    Du splittest ins Leere. :rolleyes:
    Split hat einen Rückgabewert String-Array. War bei mir anders deklariert. Mit Deiner Deklaration könnte es so aussehen:

    VB.NET-Quellcode

    1. Dim reader = "Firma,Strasse,Ort;"
    2. Dim parts() = reader.Split(";"c)
    3. MessageBox.Show(parts.Length.ToString)
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Meine Glaskugel verrät mir den Code, den der TE vewendet hat. Local variable names and comments may vary.

    VB.NET-Quellcode

    1. 'System.IO.File ist dem My-Namespace vorzuziehen
    2. Dim reader = My.Computer.FileSystem.ReadAllText(path & "\Indexierung\" + auto.IsBestKeyWord)
    3. reader.Split(";"c) 'return Wert wird nicht benutzt... reader bleibt unverändert
    4. 'reader ist ein String und kein Array, durch den Aufruf von Split ändert sich weder der Wert noch der Typ von reader.
    5. 'Ein String kann nicht zu einem Array werden...
    6. For Each charcharDasIstEinChar111elf In reader
    7. Debug.WriteLine(charcharDasIstEinChar111elf)
    8. Next


    Strings konkateniert man mit & und nicht mit +. Teilpfade konkateniert man besser mit Path.Combine()

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „markus.obi“ ()

    Okay, danke euch für die Aufklärung ^^ jetzt weiss ich warum mir das ganze "falsch" rauskam.
    Metal-Schweiz wurde nun offiziell veröffentlich nach all den Jahren :)