Variablen aus TXT Datei auslesen und vergleichen.

Lorkin

Neues Mitglied
Hallo 😉,

Zu meinem Problem:

Ich möchte das eine txt Datei KOMPLETT ausgelesen wird und die Daten dann mit einem Wert verglichen werden. Wenn der Wert mit dem aktuellen Datum übereinstimmt soll eine PopUp Benachrichtigung erscheinen.

Mein Problem ist das ich nicht weiß wie ich Java sagen soll das es die ganze Datei ausliest und z.B. wenn da ein " ; " steht soll das Programm merken "da is cut" ^^ und wieder checken ob das Datum mit dem aktuellen übereinstimmt.

Format in der TXT soll ungefähr so aussehen am Ende: Peter 20.09.15;Günter 06.07.13;Bla 12.12.55;

Mein Code bis jetzt:

Java:
    public static void gebAuslesen() throws IOException {
        FileReader fr = new FileReader("geburtstage.txt");
        BufferedReader br = new BufferedReader(fr);

        Date heute = new Date();
        SimpleDateFormat df = new SimpleDateFormat("dd.MM.yy");

        String name = br.readLine();
        System.out.println(name);
        String datum = br.readLine();
        System.out.println(datum);
        br.close();
    
        String dd = df.format(heute);

        while (datum.equals(dd)){
            JOptionPane.showMessageDialog(null,""+name+" hat heute am "+df.format(heute)+" Geburtstag!");
        }

    }

PS: Mir geht es nur um das Auslesen der Variablen, den Rest will ich selber coden 😛

DANKE IM VORAUS!
 
Zuletzt bearbeitet von einem Moderator:
Hier mal ein Vorschlag wie du Namen und Datum aus einer Textdatei filtern kannst:

Java:
    public static void geburtstage() {
        String split[] = null;
        try (BufferedReader br = new BufferedReader(new FileReader("Test.txt"))) {
            StringBuilder sb = new StringBuilder();
            String line = br.readLine();

            while (line != null) {
                sb.append(line);
                line = br.readLine();
            }
            String everything = sb.toString();
            split = everything.split(";");

        } catch (IOException e) {
            e.printStackTrace();
        }

        for (int i = 0; i < split.length; i++) {
            String name = split[i].replaceAll("[\\d\\.]+", "");
            String datum = split[i].replaceAll("[^\\d\\.]+", "");
          
            //hier müsstest du dann das Datum überprüfen etc.
        }
    }
 
Eine einfache Möglichkeit wäre es erstmal alles einzulesen und dann am semikolon zu splitten
Java:
String[] parts = complete.split(";");
Dann erhälst du ein array mit den einzelnen Einträgen.
Nun musst du noch jeden Eintrag am leerzeichen auseinander nehmen
Java:
for(String p : parts) {
 int index = p.indexOf(" ");
 String name = p.substring(0, index);
 String date = p.substring(index+1);
}
 

Neue Themen


Zurück
Oben