fortlaufende Nummer

Bitte aktiviere JavaScript!
Hallo zusammen,

ich schreibe grad ein Programm, der mir an einer Stelle die Nummer um eins erhöht,
wenn ich speichern tätige, das klappt auch soweit. Nur ich will, dass der Wert gespeichert wird
und wenn ich das Programm erneut öffne da weitermacht, wo ich aufgehört habe.
Also nicht von 0 sondern mit 124 Beispielsweise :)

Danke schonmal im Voraus für die Tipps,

VG

muha
 
Ich verstehe das Problem nicht ganz. Du schreibst Dir eine Methode, die Dir den nächsten Wert liefert. Dabei wird der Wert aus einer Datei/DB ausgelesen, erhöht und zurückgeschrieben. Den erhöhten Wert gibt die Methode zurück und das wars.
 
Ich verstehe das Problem nicht ganz. Du schreibst Dir eine Methode, die Dir den nächsten Wert liefert. Dabei wird der Wert aus einer Datei/DB ausgelesen, erhöht und zurückgeschrieben. Den erhöhten Wert gibt die Methode zurück und das wars.
ich weiß leider nicht wie ich das machen kann, wie muss ich das angehen.
 
Ich verstehe das Problem nicht ganz. Du schreibst Dir eine Methode, die Dir den nächsten Wert liefert. Dabei wird der Wert aus einer Datei/DB ausgelesen, erhöht und zurückgeschrieben. Den erhöhten Wert gibt die Methode zurück und das wars.
Wo lest ihr das mit der DB heraus? Ich glaube tatsächlich, dass der TE eine lokale variable erhöht und die eben nirgends hinschreibt. Falls dem so ist: überleg dir irgendetwas um den Zustand zu speichern, am einfachsten wäre wohl eine .txt
 
ich weiß leider nicht wie ich das machen kann, wie muss ich das angehen.
Es gibt verschiedene Möglichkeiten, die vom jeweiligen Einsatzszenario und auch -zweck abhängig sind.

Zum Beispiel:
Java:
import java.io.RandomAccessFile;
import java.io.IOException;
import java.io.UncheckedIOException;

public class Sequence implements AutoCloseable {
    private final RandomAccessFile raf;

    public Sequence(String filename) {
        try {
            raf = new RandomAccessFile(filename, "rwd");
            if (raf.length() == 0) {
                raf.writeInt(0);
            }
        } catch (IOException ex) {
            throw new UncheckedIOException(ex);
        }
    }

    public void close() {
        try {
            raf.close();
        } catch (IOException ex) {
            throw new UncheckedIOException(ex);
        }
    }

    public int next() {
        try {
            raf.seek(0L);
            int value = raf.readInt() + 1;
            raf.seek(0L);
            raf.writeInt(value);
            return value;
        } catch (IOException ex) {
            throw new UncheckedIOException(ex);
        }
    }
}
Verwendung:
Java:
public class Test {
    public static void main(String[] args) {
        try(Sequence seq = new Sequence("sequence.dat")) {
            for (int i = 0; i < 10; i++) {
                System.out.println(seq.next());
            }
        }
    }
}
 
Es gibt verschiedene Möglichkeiten, die vom jeweiligen Einsatzszenario und auch -zweck abhängig sind.

Zum Beispiel:
Java:
import java.io.RandomAccessFile;
import java.io.IOException;
import java.io.UncheckedIOException;

public class Sequence implements AutoCloseable {
    private final RandomAccessFile raf;

    public Sequence(String filename) {
        try {
            raf = new RandomAccessFile(filename, "rwd");
            if (raf.length() == 0) {
                raf.writeInt(0);
            }
        } catch (IOException ex) {
            throw new UncheckedIOException(ex);
        }
    }

    public void close() {
        try {
            raf.close();
        } catch (IOException ex) {
            throw new UncheckedIOException(ex);
        }
    }

    public int next() {
        try {
            raf.seek(0L);
            int value = raf.readInt() + 1;
            raf.seek(0L);
            raf.writeInt(value);
            return value;
        } catch (IOException ex) {
            throw new UncheckedIOException(ex);
        }
    }
}
Verwendung:
Java:
public class Test {
    public static void main(String[] args) {
        try(Sequence seq = new Sequence("sequence.dat")) {
            for (int i = 0; i < 10; i++) {
                System.out.println(seq.next());
            }
        }
    }
}
Vielen Dank habe es damit echt verstanden und hingekriegt :)
 
Passende Stellenanzeigen aus deiner Region:

Neue Themen

Oben