String Array mit Foreach Schleife füllen

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

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

    Ja hab ein step by step Tut gefunden ^^ Nur habe ich das glaub ich schon mal ausprobiert und ich brings nicht fertig das CMD Fenster als Ausgabe zu nutzen oder was ist da gemeint mit dem Console command?
    Metal-Schweiz wurde nun offiziell veröffentlich nach all den Jahren :)

    Hmm wird mir hier auf der Arbeit nicht viel nutzen :/ Youtube gucken ist nicht erlaubt.
    Metal-Schweiz wurde nun offiziell veröffentlich nach all den Jahren :)

    Wollte mal fragen ob diese If Abfragen richtig eingepackt sind:
    Spoiler anzeigen

    VB.NET-Quellcode

    1. Private Sub Main_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
    2. If System.IO.Directory.Exists(path) = False Then
    3. System.IO.Directory.CreateDirectory(path)
    4. System.IO.Directory.CreateDirectory(path & "\Indexierung")
    5. System.IO.Directory.CreateDirectory(path & "\Vorlagen")
    6. Dim binaryw As New BinaryWriter(New FileStream(path & "\Vorlagen\Vorlage.dotx", FileMode.Create))
    7. binaryw.Write(My.Resources.Vorlage)
    8. binaryw.Close()
    9. End If
    10. If My.Settings.FirstStart = False Then
    11. DateTimePicker1.Value = DateTime.Now
    12. DateTimePicker2.Value = DateTime.Now
    13. DateTimePicker3.Value = DateTime.Now
    14. My.Settings.FirstStart = True
    15. End If
    16. End Sub

    Das hatte ich vor 2 Wochen geschrieben und nun hab ich nen clean Start versucht und dann kommt mir gleich ne Exception das die Datumsformate nicht auf 0.0.1900 gesetzt werden können obwohls ja mit dieser If-Schliefe gelöst sein sollte. In den My.Settings ist FirstStart auch definiert. Die Ordner werden auch auf einmal gar nicht erst erstellt.

    EDIT: Bin mit gerade echt nicht mehr sicher ob ich diese IDE noch weiter nutzen sollte... Habe auch keine Ahnung warum sie seit gestern gerade so extrem zickt.
    Metal-Schweiz wurde nun offiziell veröffentlich nach all den Jahren :)

    auch hier wäre die IDE zu nutzen der Weg direkt zum Ziel: Haltepunkt auf #11 setzen, und sich im Einzelschritt davon überzeugen, dasss die Zeilen #12 - #15 gar nicht ausgeführt werden.

    Die Fehlermeldung wird ein Folgefehler davon sein.

    Eine Alternative zur VS-IDE kann ich mir kaum vorstellen - da soll dein Chef eher zusehen, dass du mit richtig installiertem und funktionierendem Werkzeug ausgerüstet bist - wie soll man sonst funktionierenden Code abliefern?
    Ja, hab ich so gemacht. Hab mit den Breakpoints wenigstens üben können und festgestellt das mir meine IDE tatsächlich Hopps ist. Arbeite jetzt nur noch mit Visual Studio 2012. Aber noch eine Frage. Ich möchte das das Intellisense Fenster links von der MainForm andockt wenn sie auftritt. Dazu habe ich folgendes geschrieben:

    VB.NET-Quellcode

    1. Public Class Start
    2. Public scrWidth As Integer = Screen.PrimaryScreen.Bounds.Width
    3. Public scrHeight As Integer = Screen.PrimaryScreen.Bounds.Height
    4. Public poswid As Integer = CInt(scrWidth / 2)
    5. Public poswidi As Integer = CInt(poswid - 467)
    6. Public poshei As Integer = CInt(scrHeight / 2)
    7. Dim appData As String = GetFolderPath(SpecialFolder.ApplicationData)
    8. Dim path As String = appData & "\***Dokumente"
    9. Private Sub Start_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
    10. Main.Location = New Point(poswid, poshei)
    11. FormAutoComplete.StartPosition = FormStartPosition.Manual
    12. FormAutoComplete.Location = New Point(poswidi, poshei)
    13. End Sub
    14. End Class

    Zuerst hatte ich die Main Form auch mit den PrimaryScreen Bounds in der Mitte zentrieren wollen aber dann war das Fenster unten rechts in der Ecke zur Hälfte verschwunden. Hab dann einfach wieder auf Centerscreen gemacht will mich damit nicht rumschlagen wenns auch so geht. Aber mit der Intellisense Form hab ichs jetzt schon auf verschiedene Arten versucht aber es ändert partout die Position nicht.

    OT: Ja ... das soll mal einer meinem Chef sagen ich bin hier ja nur Lehrling, zudem noch der allererste den sie haben. Ich bin immer der der alles falsch macht und nichts zu sagen hat, ich warte nur darauf das er mich zum Lehrlingsamt ordert um über mein "Arbeitsverhalten" zu reden. Kann ja nix dafür das ich zu spät anfange zu arbeiten wenn der PC 10 Minuten zum booten hat. Alle Mitarbeiter hier haben ansonsten aktuellste UltraBooks und Workstations... Müsste am besten gleich ein Bild hier reinstellen vom Tisch neben mir, da hockt mein Lehrmeister und da stehen gerade 3 Ultrabooks und ein Surface 2 und 2 4K-Monitore währenddem ich hier Hardware von vor 10 Jahren hab... Naja... die Arbeitsgeschwindigkeit und Effizienz kann ja überhaupt nicht an meinem ca. 7 Jahre alten Arbeitsrechner liegen der mit Win 8.1 aufgesetzt ist und keine Grafiktreiberunterstützung bietet.
    Metal-Schweiz wurde nun offiziell veröffentlich nach all den Jahren :)

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

    Naja... im ganzen Thread vorher gings ja um dieses Autovervollständigungzeug über dieses Fenster. Grundfrage war da noch wie ich die Daten aus einem Ordner mit Dateien in das Fenster kriege. Jetzt muss ich nur noch rausfinden wieso mir alles doppel und dreifach gelistet wird, das Fenster richtig andocken und dann bei Klicken von Enter/Doppelklick die selektierte Datei in die Maske laden. Das mit den integer hatte ich so gemacht weils die IDE vorgeschlagen hat als ichs falsch hatte. wusste nicht das man \ statt / schreibt O.o
    Metal-Schweiz wurde nun offiziell veröffentlich nach all den Jahren :)

    Orion schrieb:

    VB.NET-Quellcode

    1. Public poswid As Integer = CInt(scrWidth / 2)
    Nimm Integer-Division: \

    VB.NET-Quellcode

    1. Public poswid As Integer = scrWidth \ 2
    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!
    Ja hab ich schon korrigiert. ändert aber trotzdem nichts an der Position :/ momentan siehts permanent so aus:
    Metal-Schweiz wurde nun offiziell veröffentlich nach all den Jahren :)

    Kann mir mal jemand helfen?
    Ich definier den Datenpfad aller Dateien im Appdata. Im Debug Modus sieht das dann ganz normal ungefähr so aus:

    C:\Users\*User*\AppData\Roaming\Ordner

    Aber sobald ich das Tool veröffentliche bekomme ich dann sowas hier und den Error das ein Teil des Pfades nicht gefunden wurde:

    C:\Users\*User*\AppData\Local\Apps\2.0\YV1NJ2ZV.LW8\VGTQ3NEH.LWV\hell..tion_bf9d7cec31f81424_0001.0000_351713095525c5fb\26\Ordner\Indexierung
    EDIT: hab das Gefühl das der Fehler hier liegt. Weil ich den Error immer bekomme sobald die Form mit diesem Code aufgerufen wird.

    VB.NET-Quellcode

    1. Dim Files = New System.IO.DirectoryInfo(Environment.SpecialFolder.ApplicationData & "\Dokumente\Indexierung").GetFiles("*.*", IO.SearchOption.TopDirectoryOnly)

    In allen anderen hab ich den Pfad so definiert:

    VB.NET-Quellcode

    1. Public appData As String = GetFolderPath(SpecialFolder.ApplicationData)
    2. Public path As String = appData & "\Dokumente"

    Metal-Schweiz wurde nun offiziell veröffentlich nach all den Jahren :)

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von „Orion“ ()

    Orion schrieb:

    "\Dokumente\Indexierung"
    Du musst natürlich sicherstellen, dass der Pfad existiert.
    Entweder Du erstellst ihn mit System.IO.Directory.CreateDirectory(PFAD) falls Du Daten speichern willst
    oder
    frag ab, ob er esistiert: System.IO.Directory.Exists(PFAD) und reaqgiere entsprechend des Rückgabewertes.
    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!
    Das mach ich schon im Main Load ereignis:
    Spoiler anzeigen

    VB.NET-Quellcode

    1. If System.IO.Directory.Exists(path) = False Then
    2. System.IO.Directory.CreateDirectory(path)
    3. System.IO.Directory.CreateDirectory(path & "\Indexierung")
    4. System.IO.Directory.CreateDirectory(path & "\Vorlagen")
    5. Dim binaryw As New BinaryWriter(New FileStream(path & "\Vorlagen\Vorlage.dotx", FileMode.Create))
    6. binaryw.Write(My.Resources.Vorlage)
    7. binaryw.Close()
    8. End If
    Metal-Schweiz wurde nun offiziell veröffentlich nach all den Jahren :)

    Orion schrieb:

    VB.NET-Quellcode

    1. System.IO.Directory.CreateDirectory(path)
    Den kannste weglassen, der wird bei den anderen automatisch mit generiert.
    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!
    Okay... Habe jetzt mal testweise den Search String umgeschrieben in

    VB.NET-Quellcode

    1. Dim Files = New System.IO.DirectoryInfo(path + "\Indexierung").GetFiles("*.*", IO.SearchOption.TopDirectoryOnly)

    Wenn ich das Programm veröffentliche speichert es aber nun keine Dateien und so findet er auch nichts. Wie soll ich das denn Debuggen? das Endprogramm verhält sich ja komplett anders als das Projekt selber.
    Metal-Schweiz wurde nun offiziell veröffentlich nach all den Jahren :)

    Beim Debuggen der Dateierstellung bekomm ich eine unbekannte NullreferenceException hab gerade keine Ahnung wieso, vorher gings ja auch
    Spoiler anzeigen

    VB.NET-Quellcode

    1. Dim strEnt As String = RichTextBox1.Text
    2. Dim splitStrEnt As String() = strEnt.Split(","c)
    3. Dim StringEnt As String
    4. Dim Checkboxs As String
    5. Dim RadB As String
    6. StringEnt = splitStrEnt(0).ToString()
    7. Dokumentname = Dokumentname + 1
    8. DokumentnameS = Dokumentname.ToString
    9. If RadioButton1.Checked = True Then
    10. RadB = "Frei"
    11. Else
    12. RadB = "Unfrei"
    13. End If
    14. If CheckBox1.Checked = True Then
    15. Checkboxs = "True"
    16. Else
    17. Checkboxs = "False"
    18. End If
    19. My.Computer.FileSystem.WriteAllText(path & "\Indexierung\" + StringEnt + " - " + DokumentnameS + ".cch", RichTextBox1.Text + ";" _
    20. + RichTextBox2.Text + ";" + RichTextBox3.Text + ";" + RichTextBox4.Text + ";" + DateTimePicker2.Value.ToString _
    21. + ";" + RichTextBox5.Text + ";" + RichTextBox6.Text + ";" + RichTextBox7.Text + ";" + RichTextBox8.Text _
    22. + ";" + TextBox9.Text + ";" + TextBox1.Text + ";" + ComboBox1.SelectedValue.ToString + ";" + ComboBox10.SelectedValue.ToString + ";" + ComboBox11.SelectedValue.ToString _
    23. + ";" + ComboBox12.SelectedValue.ToString + ";" + TextBox10.Text + ";" + TextBox11.Text + ";" + RichTextBox9.Text + ";" + Checkboxs _
    24. + ";" + RadB + ";" + RichTextBox13.Text + ";" + RichTextBox11.Text + ";" + TextBox4.Text + ";" + TextBox8.Text _
    25. + ";" + TextBox2.Text + ";" + TextBox5.Text + ";" + TextBox6.Text + ";" + TextBox7.Text + ";" + TextBox3.Text _
    26. + ";" + ComboBox21.SelectedValue.ToString + ";" + ComboBox16.SelectedValue.ToString + ";" + ComboBox20.SelectedValue.ToString _
    27. + ";" + ComboBox7.SelectedValue.ToString + ";" + ComboBox9.SelectedValue.ToString + ";" + ComboBox15.SelectedValue.ToString _
    28. + ";" + ComboBox22.SelectedValue.ToString + ";" + RichTextBox12.Text + ";" + RichTextBox10.Text + ";" + ComboBox4.SelectedValue.ToString + ";" _
    29. + TextBox12.Text + ";" + DateTimePicker1.Value.ToString + ";" + RichTextBox14.Text + ";" + RichTextBox15.Text + ";" + RichTextBox16.Text + ";" + DateTimePicker3.Value.ToString + ";" + ComboBox2.SelectedValue.ToString, True)

    Ich sollte das Programm bis heute Abend fertigstellen darum gerate ich jetzt ein bisschen in Stress wegen diesem Fehler...
    Metal-Schweiz wurde nun offiziell veröffentlich nach all den Jahren :)