Dateien Fortlaufend nummeriert Speichern

  • VB.NET

Es gibt 23 Antworten in diesem Thema. Der letzte Beitrag () ist von bla.

    Dateien Fortlaufend nummeriert Speichern

    Hallo,

    ich hab bei meinem Script bisher einen Dateinamen zum Speichern in ne Textbox Eingetragen.

    Möchte aber, das ich Ihm den Namen (z.B. "Datei " ) vorgebe und das Programm bei jedem beenden von selbst hinter das Datei ein Ziffer von 1 bis .....
    hängt und sich die zuletzt Verwendete merkt.

    Besser währe natürlich Datum und Zeit.

    Wer könnte mir bitte helfen !!
    Du schreibst dir eine Funktion, welche prüft, was die letzte "Datei" war und gibst dann die neue Ziffer wieder.
    Datum etc. kann man natürlich auch nehmen.

    Hast du schon was an Code?
    Der Code sah bisher so aus :

    Quellcode

    1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    2. If TextBox1.Text = "" Then
    3. MsgBox("Please type a file name")
    4. Else
    5. Button1.Enabled = False
    6. Button2.Enabled = True
    7. ' Befehl der Ausgeführt wird
    8. End If
    9. End Sub


    Ich denke mit dem Datum und der Zeit wäre die Elegantere Lösung. Habs auch schonmal gelesen, bekomms aber nimmer zusammen !
    Wieso?

    VB.NET-Quellcode

    1. Dim Dateiname As String = Dateiname & Date.Now.Date.ToString
    Ich habs jetzt mal so gemacht wie von MB-Tech vorgeschlagen !

    Quellcode

    1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    2. If TextBox1.Text = Dateiname Then
    3. Else
    4. Button1.Enabled = False
    5. Button2.Enabled = True
    6. ' Code der Ausgeführt wird
    7. End If
    8. End Sub


    incl. der Dim Anweisung !
    Sicherlich kann da noch einiges raus , aber der schreibt mir nichts in die " Dateinamen " rein. wie kann das ?


    Edit :

    habe jetzt mal das If, Then Else und End If rausgeworfen. Jetzt bekomm ich das Datum, jedoch als Zeit 00:00:00 !!
    Kann das sein das du erstmal Grundlagen büffeln musst?

    zu den Grundlagen...

    Weil so ausdrücke wie, ja der schreibt mir nix rein...
    Das liegt daran das du nichts zugewiesen hast. Mein Code ist ein Beispiel und kein C&P.

    Das mit der Uhrzeit ist auch klar, weil mein Code nur das Datum ausgiebt...
    Für das Datum inkl. Zeit musst du nur Date.Now nehmen.


    :thumbdown:
    Ich kenne das Buch und habs auch vor mir liegen !

    Ich habe deine Dimensionierung übernommen :

    Quellcode

    1. Dim Dateiname As String = Dateiname & Date.Now.Date.ToString


    und die Variable Dateiname dem Textfeld zugewiesen ! Folglich sollte dort auch der inhalt des Strings auftauchen oder nicht ?? -- Tut sie aber nicht !

    ändere ich das auf

    Quellcode

    1. Dim Dateiname As String = Dateiname & Date.Now.Hour.ToString


    bekomme ich als Rückwert für mein Textfeld nur die 18 für 18Uhr. Hilft mir jedoch nicht weiter, da das Script mehrmals aufgerufen werden kann und die erste Datei mit dem Namen dann Überschrieben wird.
    Der Dateiname muss ja voher noch von dir gesetzt werden...

    Ich habe dir nur mit meinem Beispiel gezeigt wie man an deinen zuvor festgelegten Dateinamen das Datum anhängst...

    :sleeping:
    @ Icebear19691
    das er sich das zuletzt verwendete merkt, kannst du mit my.settings machen.
    und dann liest du aus was das zuletztverwendete war und speicherst die datei mit einer zahl höher ab und erhöhst den wert in den settings.

    lg Gugi
    Nur ein Tipp:

    Es ist sinnvoll das Datum und Uhrzeit so zu formatieren, dass das Betriebssystem
    die Dateien auch in der normalen Reihenfolge sortiert.

    Also wenn man z.B. 15.8.2010 18:30 hat dann den Filenamen etwa so:

    20100815183000.txt

    Zumindest mache ich es meist so.
    @ MB-Tech

    is schon ganz Ok, ich hab den Bezeichner als Variable genommen und habe im endeffekt was ich wollte !!

    Quellcode

    1. Dim Dateiname As String = New DateTime


    Quellcode

    1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    2. Dateiname = DateTime.Now
    3. TextBox1.Text = Dateiname
    4. Button1.Enabled = False
    5. Button2.Enabled = True
    6. ' Befehl der Ausgeführt wird
    7. End Sub


    Danke Dir !

    Jetzt bleibt noch eine Frage : Kann ich in der Zeitangabe von DateTime den : durch _ ersetzen ? Wenn ja wie ?


    @Lightsource

    wie bekomm ich das hin ???
    Wie der vorgänger schon sagte...Replace.

    Schau auch mal in Zukunft in der MSDN nach -> Dafür ist die da!

    :thumbsup:

    Icebear19691 schrieb:

    hättste bitt mal men Link für mich ! Danke !
    Wie wärs wenn du dich mal mit der IDE samt Hilfefunktion beschäftigen würdest?
    Oder, kennst du schon: www.Google.de
    Dort kann man das Wort Replace zusammen mit VB eingeben und landest meist
    direkt bei MSDN
    Die Auflistung von Dir war mir schon logisch !

    was ich nicht Versteh ist der Befehl an sich, habs Versucht nachzuschagen, find jedoch nichts !

    Quellcode

    1. IO.File.WriteAllText(CStr(Now.Year & Now.Month & Now.Day & Now.Hour & Now.Minute & Now.Second & ".txt"), CStr("wasweisichwasdrinstehensoll"))


    also das IO.File.WriteAllText liest quasi in meinem fall die Textbox aus ??

    ersetzt die vorhandenen Daten von Now. in das von mir erstzte wasweisichwasdrinstehensoll !

    habe ich das soweit richtig Verstanden ?

    ___________________________________________________________________________________________________________
    Ich habe es derweil mal mit dem Replace versucht !

    Erfolgslos !

    Quellcode

    1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    2. Dateiname = DateTime.Now
    3. TextBox1.Text = Dateiname
    4. Dateiname = "11.11.1111 00:00:00"
    5. Debug.Print(Dateiname)
    6. Dateiname = Replace(Dateiname, ":", "_")
    7. Dateiname = Replace(Dateiname, ".", "_")
    8. Debug.Print(Dateiname)
    9. Button1.Enabled = False
    10. Button2.Enabled = True
    11. ' Coder der Ausgeführt werden soll
    12. End Sub


    Bei MSN gefunden !