Pfadangabe mit Platzhaltern

  • VB.NET

Es gibt 11 Antworten in diesem Thema. Der letzte Beitrag () ist von kiter20.

    Pfadangabe mit Platzhaltern

    Hallo Forum,

    Ich muss in meinem Prog immer den Pfad zu einer Datenbank angeben.
    Ist auch alles kein Problem und funktioniert auch.

    Ich würde aber gerne im Programm eine Standard Pfadangabe machen, bei der aber immer nur ein gewisser Teil des
    Ordnernamens gleich ist.

    c:\ordnerTC\Projekt\AT1234\

    c:\ordnerTC\Projekt\AT56789123\

    Also bis zu dem AT ist das immer gleich.
    Kann Ich also dort mit Platzhaltern arbeiten ?
    "Mann" lernt mit seinen Projekten.
    Hallo kiter20,
    Klar geht das. Meinst du das?

    VB.NET-Quellcode

    1. String.Format("C:\ordnerTC\Projekt\AT{0}\", 123)

    Oder habe ich dich falsch verstanden?
    Danke für die schnelle Antwort,

    kann Ich das so verstehen, daß das {0} somit für das Unbekante steht?
    was bedeutet 123 ?


    Ich möchte quasi egal was nach dem AT kommt, in den Ordner gehen.
    "Mann" lernt mit seinen Projekten.

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

    Richtig, das {0} ist ein Platzhalter, der dann mit dem nächstfolgenden Argument ersetzt wird. Dies kann auch weitergeführt werden:

    VB.NET-Quellcode

    1. String.Format("Dies {0} ein {1}satz.", "ist", "Beispiel")

    Ergibt zum Beispiel: "Dies ist ein Beispielsatz."...
    Dabei spielt es keine Rolle, wann die Platzhalter eingefügt wurden:

    VB.NET-Quellcode

    1. Dim a = "Dies {0} ein {1}satz."
    2. Dim b = "ist"
    3. Dim c = "Beispiel"
    4. Dim d = String.Format(a, b, c)
    5. MessageBox.Show(d)
    Okay, das musste Ich erstmal wirken lassen.

    Nein, Ich glaube das ist nicht das was Ich meine.
    Ich kenne das nicht was nach dem AT kommt und kann somit den Platzhalter nicht befüllen.

    Es gibt nur einen einsigen Ordner, der mit AT anfängt und aus dem möchte Ich die Datei öffnen.

    Ev. ist Platzhalter der falsche Begriff. Wildcard ??
    "Mann" lernt mit seinen Projekten.
    Sowas?

    VB.NET-Quellcode

    1. Dim dir = New IO.DirectoryInfo("c:\ordnerTC\Projekt\").GetDirectories
    2. For Each d As IO.DirectoryInfo In dir
    3. If d.Name.StartsWith("AT") Then
    4. 'Mach was
    5. Exit For
    6. End If
    7. Next
    Mfg
    Vincent

    Okay, mal so aus dem stehgreif sieht die komplette Pfadangabe so aus:

    c:\ordnerTC\Projekt\AT-1234-ABC\Profil/Datenbank.mdb

    Wie gesagt, das AT-1234-ABC kenne Ich nicht, sondern Ich weiß nur daß der Pfad mit AT beginnt.

    Momentan wähle Ich den Pfad manuell aus und verwende ihn direkt beim Datenbankzugriff.

    Ich hatte gedacht es gäbe so etwas wie zb. c:\ordnerTC\Projekt\AT*\Profil/Datenbank.mdb
    Wobei das * natürlich für irgend etwas stehenn kann.


    @Artentus
    Wenn Ich das jetzt richtig verstehe, lese Ich mir somit alle mit AT beginnenden Pfadangaben in die Var. d ein.
    Dadurch dass es eh nur einen Ordner damit gibt, könnte Ich mir damit eine vollstaändige Pfadangabe zusammenstricken?
    "Mann" lernt mit seinen Projekten.

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

    Schau mal in meinen Post, da wird das genau so gemacht, nur dass du leider nicht gleich den kompletten Pfad suchen kannst. Stattdessen musst du innerhalb des Ordners über dem AT*-Ordner nach einem solchen Ordner suchen und danach kannst du den Rest des Pfades anhängen.

    Artentus schrieb:

    Schau mal in meinen Post, da wird das genau so gemacht, nur dass du leider nicht gleich den kompletten Pfad suchen kannst. Stattdessen musst du innerhalb des Ordners über dem AT*-Ordner nach einem solchen Ordner suchen und danach kannst du den Rest des Pfades anhängen.

    Ja, wir haben gerade etwas Zeitversetzt geschrieben. :thumbup:

    Aber kann mir das als Lösung vorstellen und werde es mal versuchen.

    Thx
    "Mann" lernt mit seinen Projekten.
    Genau. Wenn du Framework 4.0 oder höher hast, dann geht das ganze sogar noch ein bisschen leichter:

    VB.NET-Quellcode

    1. Dim f = New FileInfo(Path.Combine(New DirectoryInfo("c:\ordnerTC\Projekt\").EnumerateDirectories("AT*").First().FullName, "Profil\Datenbank.mdb"))
    Super danke,
    hat soweit alles funktioniert.

    Sieht jetzt so aus.

    VB.NET-Quellcode

    1. Dim dir = New IO.DirectoryInfo("c:\ordnerTC\Kunde\")
    2. Dim dr As DialogResult
    3. For Each d As IO.DirectoryInfo In dir.GetDirectories("AT*")
    4. Dim ATName = String.Format("C:\ordnerTC\Kunde\{0}\Projekt\", d)
    5. PfadDatenbank = ATName & "Profil"
    6. PfadDatensatz = ATName & "01_Datensatz"
    "Mann" lernt mit seinen Projekten.