Dateigröße überschritten ---> neu erstellen

  • VB.NET

Es gibt 16 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    Dateigröße überschritten ---> neu erstellen

    Guten Tag,

    mein Programm schreibt Daten in eine Datenbank und bis jetzt ist es so dass die Datei unendlich groß werden kann und falls mir die Datei dann aus irgendwelchen Gründen gelöscht wird, alle Daten verloren sind.


    Meine Frage... ist es möglich dass man sagt, wenn die Db größer als 200MB ist wird eine neue Db erstellt? :huh:
    dass die Datei unendlich groß werden kann und falls mir die Datei dann aus irgendwelchen Gründen gelöscht wird, alle Daten verloren sind.
    1) Datenbank regelmässig komprimieren
    2) Datenbank regelmässig sichern.

    Welche Art von DB verwendest du?

    Welche Daten speicherst du eigentlich, dass du auf Teile der Datenbank verzichten kannst?
    Vielleicht wäre ja ein Logfile anstatt DB die bessere Lösung.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --
    soll die neue DB dann leer sein? - ist dein Proggi dann noch arbeitsfähig?


    Ganz leer soll sie nicht sein, die Feldname und die Felddatentypen sollten schon festgelegt sein...dann müsste mein Programm auch noch arbeitsfähig sein


    Welche Art von DB verwendest du?


    Eine Access Datenbank (.mdb)


    Welche Daten speicherst du eigentlich, dass du auf Teile der Datenbank verzichten kannst?


    Nur Preis die sich stündlich ändern, und dazu die Uhrzeit



    der Code von Mr.VB funktioniert, alles super aber wie erstelle ich eine neue db mit Feldname ? :S
    btw. würde ich es nicht über die Dateigröße sondern über die Anzahl der Datensätze machen.

    Zudem ist der Code von Mr.VB mal wieder total hirnrissiger Schrott und mich wundert es das noch niemand dazu was gesagt hat.

    1. My-Namespace
    2. ToString und danach mathematischer Operator?
    3. Die doppelte Bedingung True!!!
    4. Es gibt nur ein Dezimaltrennzeichen momentan würde geprüft ob die Datei 200 Byte groß ist, wenn nicht die IDE bereits Fehler auswerfen würde bei sovielen Dezimaltrennzeichen.
    stimmt.
    Aber immerhin verwendet er schomal ein FileInfo.

    Wenn auch es ohne My einfacher und v.a. verständlicher zu erzeugen wäre:

    VB.NET-Quellcode

    1. dim fi = new IO.FileInfo("FileFullName")
    nämlich mitte gute alte New-Schlüsselwort.

    @TE: du benutzt schon FileInfo.CopyTo(), und nicht iwas komisches, oder?
    ich habs jetzt so gemacht dass ich 3 backup dateien hab die in einer bestimmten reihenfolge überschrieben werden nach einer bestimmten zeit, sonst wär ,mein rechner irgendwann mal extrem langsam mit den ganzen dateien :P



    weitere frage zu den daten^^

    hab eine Combobox die mir eine Spalte aus meiner Datenbank anzeigt, die Spalte Zeit.

    In dieser Zeile stehen natürlich Zeiten ( tt.mm.jjjj hh:nn:ss) drin. Es wird jede Sekunde ein neuer Datensatz in diese Db geschrieben, also 60 pro min. Ich will aber jetzt in meiner Combobox nicht Deitangaben mit Sekunden stehen haben, sondern nur minuten. Wenn ich jetzt nur das format ändere habe ich ja logischerweiße immernoch z.B. 60 Datensätze mit 22.11.2011 16:51 .
    Wie bekomme ich es hin dass dann nur einer von diesen 60 angezeigt wird??

    Dodo schrieb:

    btw. würde ich es nicht über die Dateigröße sondern über die Anzahl der Datensätze machen.

    Zudem ist der Code von Mr.VB mal wieder total hirnrissiger Schrott und mich wundert es das noch niemand dazu was gesagt hat.

    1. My-Namespace
    2. ToString und danach mathematischer Operator?
    3. Die doppelte Bedingung True!!!
    4. Es gibt nur ein Dezimaltrennzeichen momentan würde geprüft ob die Datei 200 Byte groß ist, wenn nicht die IDE bereits Fehler auswerfen würde bei sovielen Dezimaltrennzeichen.



    Habs grade gelesen und wollte was dazu schreiben, da sehe ich deine wunderbare vorlage :]
    Und.. Wie kommt man auf 200.000.000 ?!
    Length ist die größe in bytes oder? -> Das sollten dann bei 200mb (glaube ich) etwa so aussehen:

    13743895347200 bytes.
    Lege ich da falsch?
    Ich musste so rechnen:
    200 MegaByte -> Megabit (* 8)
    Megabit -> Kilobyte (* 1024)
    Kilobyte -> Kilobit (* 8)
    Kilobit -> Byte (* 1024)

    Wobei..
    Ich seh grade.. ich bin so strohdoof. :P
    Ich weiß nicht genau wieso aber das *8 war total unnötig X(
    Schande über mich xD
    ich glaub. man muß die Zeiten garnet aus der DB abrufen.
    Wenn in deine DB eh jede Sekunde was reingefeuert wird, dann brauchst du das nicht abzurufen, um zu wissen, dasses für jede Minute auf der Welt mindestens einen Datensatz darin gibt.

    also kannste die Minuten werte doch viel einfacher generieren, iwie:

    VB.NET-Quellcode

    1. for I= HeuteMorgen to HeuteAbend step 1 Minute
    2. '...
    äh - also dassis jetz krasser pseudoCode, wie du den Zeitraum berechnest, und die darin darzustellenden Zeitschritte - binnichjetzt zu faul für drüber nachzudenken.