Dateinamen zerlegen und teile in ein Label ausgeben

  • VB.NET
  • .NET (FX) 4.0

Es gibt 12 Antworten in diesem Thema. Der letzte Beitrag () ist von RoulettePilot.

    Dateinamen zerlegen und teile in ein Label ausgeben

    Hallo Liebe VBler

    Ich habe da eine Frage wo ich kein Ansatz habe und da wollte ich um eure Tips beten

    Und Zwar möchte ich ein Dateinamen von einer CSV zerlegen und die Teile in einem Label oder TextBox anzeigen lassen.

    Der Dateinamen lautet z.b. 1_140425_1147.CSV

    Die 1 ist die Anlage also sollte das Label anzeigen Anlage 1 nach dem _ kommt das Datum also ein Label mit dem Datum und dann die Startuhrzeit hier waere das 3te Label denkbar.

    Hat mir jemand ein Ansatz?

    Grüsse der Anfänger
    Naja - bei was genau hängst du denn? Den Dateinamen kannst du per dateiname.Split("_") zerlegen (einem Array zuweisen), und dann die Elemente 0, 1 & 2 jeweils als Label-Inhalt zuweisen (Label1.Text = arr(0) usw).

    vG,
    Lupus
    Das könnte helfen

    VB.NET-Quellcode

    1. Dim OriginalString As String = "1_22_33_444_555"
    2. Dim Teilstrings() As String
    3. Teilstrings = OriginalString.Split("_")
    4. ' in Teilstrings sind nun die String drinnen
    5. For i = 0 To Teilstrings.Length - 1 ' die Anahl der Teile
    6. MacheWasMit(Teilstrings(i))
    7. Next


    Edit:
    Huch .. da kam ich wohl zu spät.
    Dann musst du halt ERST den Pfad zerlgen z.b. mit .split("\"). Aber da gibs ne extra Funktion, die irgendwo hier im Forum steht,
    der deinen Pfad in Pfad, Datei und Endung zerlegt. (fällt mir gerade nicht mehr ein)

    RoulettePilot schrieb:

    oder, ohne Endung (habe es gefunden)

    VB.NET-Quellcode

    1. Dim OrgDateiname As String = "C:\blabla\Irgendwas.txt"
    2. Dim DateinameOnly As String
    3. DateinameOnly = System.IO.Path.GetFileNameWithoutExtension(OrgDateiname)


    Hatte nun leider kein erfolg wird Hier der ganze Pfad ausgegeben


    \\edit

    Ich weiss nicht ob das so schön ist aber würde das Ergebnis geben.

    VB.NET-Quellcode

    1. Dim Dateionly As String
    2. Dim dateiname As String() = TextBox1.Text.Split("\")
    3. Dateionly = dateiname(6)
    4. Dim ausgabe As String() = Dateionly.Split("_")
    5. Label2.Text = ausgabe(0)

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „DerAnfänger2014“ ()

    @DerAnfänger2014 -> Posting 7
    Wo benutzt du denn? : System.IO.Path.GetFileNameWithoutExtension
    Also, an welcher Stelle wandelst du deinen Dateinamen mit Pfad in einen String, in dem sich nur der Dateiname befindet.

    Du splittest die TextBox mit "nix", und greifst dir dann das 6. Teil ....was immer da auch zurückkommt.
    und dieses zerhackst du dann nach "_", ohne aber vorher den Pfad usw. abgetrennt zu haben.

    Setze doch mal HaltePunkte, debugge das ganze, und schau was so in den Variablen drinnen steht.
    @RoulettePilot das ist bei dem Posting blöd weil hier das \ nicht angezeigt wird. wenn ich das editiere ist es da.

    Bei dem System.IO.GetFileNameWithoutExtension wird mir den Ganzen Dateinamenen ausgegeben und wird nichts "zerhackt". Also hier war es zum Beispiel C:\tools\1_01042014_0748.


    Also habe ich die andere lösung gemacht -> code weiter unten im Posting 7 und es kommt das was gewollt ist.

    \\ Edit

    So funktioniert es auch :)

    VB.NET-Quellcode

    1. Dim OrgDateiname As String = TextBox1.Text
    2. Dim DateinameOnly As String
    3. DateinameOnly = System.IO.Path.GetFileNameWithoutExtension(OrgDateiname)
    4. Dim hack As String() = DateinameOnly.Split("_")
    5. Label2.Text = hack(0)
    6. label3.text.Text = hack(1)
    7. label4.Text = hack(2)

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „DerAnfänger2014“ ()

    DerAnfänger2014 schrieb:


    Bei dem System.IO.GetFileNameWithoutExtension wird mir den Ganzen Dateinamenen ausgegeben und wird nichts "zerhackt". Also hier war es zum Beispiel C:\tools\1_01042014_0748.

    Das glaube ich nicht :)
    Zeig doch mal die Zeile, wo du deinen String "zerhackst" und als Ergebnis nicht dein Dateiname rauskommt.
    Bei dieser Funktion muss als Ergebnis dein Dateiname alleine kommen, (den du dann natürlich noch danach mit deinen "_" spitten musst)
    na prima.. geht doch :)

    übrigens... (kann sein, ich steh mit dieser Meinung alleine),
    aber wenn bereits bei den Antworten auf deinen Code eingegangen wurde, solltest du ihn nicht im nachhinein im altem Beitrag korrigieren.
    Evtl. haben andere Leute ähnliche Probleme, und können dann den Weg zur Lösung nicht nachvollziehen.
    Keine Ahnung, wie so etwas hier im allg. gehandhabt wird.