From 1313918745b40f4f01e237fc48991c72f41a8157 Mon Sep 17 00:00:00 2001 From: cmerkens Date: Mon, 6 May 2024 23:50:11 +0200 Subject: [PATCH] Aufgabe 1 fertig! --- .../12_Dateien_Fuer_Aufgabe1/Nachnamen.TXT | 12 ++ Semester2/12_Dateien_Fuer_Aufgabe1/PLZOrt.TXT | 25 +++ .../12_Dateien_Fuer_Aufgabe1/Strassen.TXT | 11 ++ .../12_Dateien_Fuer_Aufgabe1/Vornamen.TXT | 10 ++ .../12_Dateien_Fuer_Aufgabe1/festeBreite.txt | 0 .../12_Dateien_Fuer_Aufgabe1/trennzeichen.txt | 0 Semester2/Vorlesung1.java | 144 +++++++++++++++++- Semester2/test.java | 95 ++++++++++++ 8 files changed, 296 insertions(+), 1 deletion(-) create mode 100644 Semester2/12_Dateien_Fuer_Aufgabe1/Nachnamen.TXT create mode 100644 Semester2/12_Dateien_Fuer_Aufgabe1/PLZOrt.TXT create mode 100644 Semester2/12_Dateien_Fuer_Aufgabe1/Strassen.TXT create mode 100644 Semester2/12_Dateien_Fuer_Aufgabe1/Vornamen.TXT create mode 100644 Semester2/12_Dateien_Fuer_Aufgabe1/festeBreite.txt create mode 100644 Semester2/12_Dateien_Fuer_Aufgabe1/trennzeichen.txt create mode 100644 Semester2/test.java diff --git a/Semester2/12_Dateien_Fuer_Aufgabe1/Nachnamen.TXT b/Semester2/12_Dateien_Fuer_Aufgabe1/Nachnamen.TXT new file mode 100644 index 0000000..d9e9565 --- /dev/null +++ b/Semester2/12_Dateien_Fuer_Aufgabe1/Nachnamen.TXT @@ -0,0 +1,12 @@ +Meier +Kaiser +Hellmann +Fuchs +Hampel +Hinz +Schmidt +Andrack +Zerlett +Novincack +Ullmann +Mayer \ No newline at end of file diff --git a/Semester2/12_Dateien_Fuer_Aufgabe1/PLZOrt.TXT b/Semester2/12_Dateien_Fuer_Aufgabe1/PLZOrt.TXT new file mode 100644 index 0000000..929ca05 --- /dev/null +++ b/Semester2/12_Dateien_Fuer_Aufgabe1/PLZOrt.TXT @@ -0,0 +1,25 @@ +72160 Horb +70179 Stuttgart +70191 Stuttgart +70192 Stuttgart +70193 Stuttgart +70195 Stuttgart +70197 Stuttgart +70199 Stuttgart +70327 Stuttgart +72070 T�bingen +72072 T�bingen +72074 T�bingen +72076 T�bingen +72181 Starzach +72182 Eutingen +72184 Eutingen +72185 Empfingen +72186 Empfingen +72186 Weiherhof +72187 V�hringen +72189 V�hringen +72202 Nagold +72210 Altensteig +72213 Altensteig +72218 Wildberg \ No newline at end of file diff --git a/Semester2/12_Dateien_Fuer_Aufgabe1/Strassen.TXT b/Semester2/12_Dateien_Fuer_Aufgabe1/Strassen.TXT new file mode 100644 index 0000000..08c8bfe --- /dev/null +++ b/Semester2/12_Dateien_Fuer_Aufgabe1/Strassen.TXT @@ -0,0 +1,11 @@ +Hauptstr. +Dorfstr. +Rosenweg +Nelkenweg +Stuttgarter Str. +Ulmer Str. +Freiburger Str. +M�nchner Str. +Goetheweg +Beethovenallee +Schillerstr. \ No newline at end of file diff --git a/Semester2/12_Dateien_Fuer_Aufgabe1/Vornamen.TXT b/Semester2/12_Dateien_Fuer_Aufgabe1/Vornamen.TXT new file mode 100644 index 0000000..20b93e2 --- /dev/null +++ b/Semester2/12_Dateien_Fuer_Aufgabe1/Vornamen.TXT @@ -0,0 +1,10 @@ +Frank +Steffi +Uschi +Carola +Susanne +Marion +Ingo +Stefan +Jochen +Holger \ No newline at end of file diff --git a/Semester2/12_Dateien_Fuer_Aufgabe1/festeBreite.txt b/Semester2/12_Dateien_Fuer_Aufgabe1/festeBreite.txt new file mode 100644 index 0000000..e69de29 diff --git a/Semester2/12_Dateien_Fuer_Aufgabe1/trennzeichen.txt b/Semester2/12_Dateien_Fuer_Aufgabe1/trennzeichen.txt new file mode 100644 index 0000000..e69de29 diff --git a/Semester2/Vorlesung1.java b/Semester2/Vorlesung1.java index a58028b..09d7a56 100644 --- a/Semester2/Vorlesung1.java +++ b/Semester2/Vorlesung1.java @@ -1,4 +1,146 @@ package Semester2; +import java.io.*; +import java.util.ArrayList; +import java.util.Random; + public class Vorlesung1 { -} + + // [6 Kundennummer, 20 Nachname, 20 Vorname, 20 Straße, 5 Hausnummer, 5 PLZ, 20 Ort, int Umsatz] + + private ArrayList nachnamen = erstelleArrays(0); + private ArrayList vornamen = erstelleArrays(1); + private ArrayList strassen = erstelleArrays(2); + private ArrayList plzort = erstelleArrays(3); + + public Vorlesung1() { + this.nachnamen = erstelleArrays(0); + this.vornamen = erstelleArrays(1); + this.strassen = erstelleArrays(2); + this.plzort = erstelleArrays(3); + } + + + public static void main(String[] args) { + Vorlesung1 liste = new Vorlesung1(); + try { + BufferedReader eingabe = new BufferedReader(new InputStreamReader(System.in)); + String laenge; + System.out.println("Wie viele Testsätze: "); + laenge = eingabe.readLine(); + String was; + System.out.println("Als CSV?"); + was = eingabe.readLine(); + + if (was == "1") { + liste.mitTrennzeichen(Integer.parseInt(laenge)); + } else { + liste.mitLeerzeichen(Integer.parseInt(laenge)); + } + } catch (Exception e) { + System.out.println(e.getMessage()); + } + } + + + private static ArrayList erstelleArrays(int index) { + ArrayList rueckgabe = new ArrayList<>(); + String zeile; + String[] dateien = new String[]{"C:\\Git\\Hochschule\\Semester2\\12_Dateien_Fuer_Aufgabe1\\Nachnamen.txt", + "C:\\Git\\Hochschule\\Semester2\\12_Dateien_Fuer_Aufgabe1\\Vornamen.txt", + "C:\\Git\\Hochschule\\Semester2\\12_Dateien_Fuer_Aufgabe1\\Strassen.txt", + "C:\\Git\\Hochschule\\Semester2\\12_Dateien_Fuer_Aufgabe1\\PLZOrt.txt"}; + try { + BufferedReader leseQuelle = new LineNumberReader(new FileReader(dateien[index])); + while ((zeile=leseQuelle.readLine()) != null) { + rueckgabe.add(zeile); + } + leseQuelle.close(); + } catch (Exception e) { + System.out.println(e.getMessage()); + } + return rueckgabe; + } + + + private static String fuelleMitLeerzeichen(ArrayList liste, int laenge) { + Random random = new Random(); + String neu = liste.get(random.nextInt(liste.size())); + if (neu.length() < laenge) { + neu = neu + " ".repeat(laenge - neu.length()); + } + return neu; + } + + + + + public void mitTrennzeichen(int anzahl) { + try { + BufferedWriter schreibeDatei = new BufferedWriter(new FileWriter("C:\\Git\\Hochschule\\Semester2\\12_Dateien_Fuer_Aufgabe1\\trennzeichen.txt")); + Random random = new Random(); + for (int i = 0; i < anzahl; i++) { + StringBuilder fertigerEintrag = new StringBuilder(); + // Kundennummer + fertigerEintrag.append(String.format("%06d", i)); + fertigerEintrag.append("#"); + // Nachname + fertigerEintrag.append(nachnamen.get(random.nextInt(nachnamen.size()))); + fertigerEintrag.append("#"); + // Vorname + fertigerEintrag.append(vornamen.get(random.nextInt(vornamen.size()))); + fertigerEintrag.append("#"); + // Straße + fertigerEintrag.append(strassen.get(random.nextInt(strassen.size()))); + fertigerEintrag.append("#"); + // Hausnummer + fertigerEintrag.append(String.format("%05d", random.nextInt(99999))); + fertigerEintrag.append("#"); + // PLZ Ort + fertigerEintrag.append(plzort.get(random.nextInt(plzort.size()))); + fertigerEintrag.append("#"); + // Umsatz + fertigerEintrag.append(String.format("%04d", random.nextInt(500, 2000))); + fertigerEintrag.append("#"); + + schreibeDatei.write(fertigerEintrag.toString()); + schreibeDatei.newLine(); + } + schreibeDatei.close(); + } catch (Exception e) { + System.out.println(e.getMessage()); + } + + } + + public void mitLeerzeichen(int anzahl) { + try { + BufferedWriter schreibeDatei = new BufferedWriter(new FileWriter("C:\\Git\\Hochschule\\Semester2\\12_Dateien_Fuer_Aufgabe1\\festeBreite.txt")); + Random random = new Random(); + for (int i = 0; i < anzahl; i++) { + StringBuilder fertigerEintrag = new StringBuilder(); + // Kundennummer + fertigerEintrag.append(String.format("%06d", i)); + // Nachname + fertigerEintrag.append(fuelleMitLeerzeichen(nachnamen, 20)); + // Vorname + fertigerEintrag.append(fuelleMitLeerzeichen(vornamen, 20)); + // Straße + fertigerEintrag.append(fuelleMitLeerzeichen(strassen, 20)); + // Hausnummer + fertigerEintrag.append(String.format("%05d", random.nextInt(99999))); + // PLZ Ort + fertigerEintrag.append(fuelleMitLeerzeichen(plzort, 25)); + // Umsatz + fertigerEintrag.append(String.format("%04d", random.nextInt(500, 2000))); + + schreibeDatei.write(fertigerEintrag.toString()); + schreibeDatei.newLine(); + } + schreibeDatei.close(); + } catch (Exception e) { + System.out.println(e.getMessage()); + } + } + +} \ No newline at end of file diff --git a/Semester2/test.java b/Semester2/test.java new file mode 100644 index 0000000..1c2f99e --- /dev/null +++ b/Semester2/test.java @@ -0,0 +1,95 @@ +package Semester2; + +import java.io.*; +import java.util.HashMap; + +public class test { + + // [6 Kundennummer, 20 Nachname, 20 Vorname, 20 Straße, 5 Hausnummer, 5 PLZ, 20 Ort, int Umsatz] + +public static void main (String[] args) { + try { + File festeBreite = new File("C:\\Git\\Hochschule\\Semester2\\12_Dateien_Fuer_Aufgabe1\\festeBreite.txt"); + File trennzeichen = new File("C:\\Git\\Hochschule\\Semester2\\12_Dateien_Fuer_Aufgabe1\\trennzeichen.txt"); + festeBreite.createNewFile(); + trennzeichen.createNewFile(); + } catch (Exception e) { + System.out.println(e.getMessage()); + System.out.println("error"); + } + + + HashMap dateien = new HashMap<>(); + dateien.put("C:\\Git\\Hochschule\\Semester2\\12_Dateien_Fuer_Aufgabe1\\Nachnamen.txt", 20); + dateien.put("C:\\Git\\Hochschule\\Semester2\\12_Dateien_Fuer_Aufgabe1\\PLZOrt.txt", 20); + dateien.put("C:\\Git\\Hochschule\\Semester2\\12_Dateien_Fuer_Aufgabe1\\Strassen.txt", 20); + dateien.put("C:\\Git\\Hochschule\\Semester2\\12_Dateien_Fuer_Aufgabe1\\Vornamen.txt", 20); + + try { + // eröffne leere Temp Datei + File tempDatei = File.createTempFile("temp_", ".txt"); + + for (String i : dateien.keySet()) { + // eröffne Zieldatei + BufferedWriter schreibeDatei = new BufferedWriter(new FileWriter("C:\\Git\\Hochschule\\Semester2\\12_Dateien_Fuer_Aufgabe1\\festeBreite.txt")); + + String zeile; + String tempzeile; + + // lese Quelle und Temp aus + BufferedReader leseQuelle = new LineNumberReader(new FileReader(i)); + BufferedReader leseTemp = new BufferedReader(new FileReader(tempDatei)); + + while ((zeile=leseQuelle.readLine()) != null) { + int laenge = zeile.length(); + if (laenge <= dateien.get(i)) { + // Leerzeichen hinzufügen + zeile = mitLeerzeichen(dateien.get(i)-laenge, zeile); + + // Füge Quelle und Temp zusammen in Zieldatei + if ((tempzeile=leseTemp.readLine()) != null) { + schreibeDatei.write(tempzeile+zeile); + } else { + zeile = mitLeerzeichen(dateien.get(i), zeile); + schreibeDatei.write(zeile); + } + schreibeDatei.newLine(); + } + } + + // Füge den Rest der Tempdatei ein + while ((tempzeile=leseTemp.readLine()) != null) { + tempzeile = mitLeerzeichen(dateien.get(i), tempzeile); + schreibeDatei.write(tempzeile); + schreibeDatei.newLine(); + } + + schreibeDatei.close(); + leseQuelle.close(); + leseTemp.close(); + + // Lese Zieldatei und kopiere in Temp + BufferedReader leseDatei = new BufferedReader(new FileReader("C:\\Git\\Hochschule\\Semester2\\12_Dateien_Fuer_Aufgabe1\\festeBreite.txt")); + BufferedWriter schreibeTemp = new BufferedWriter(new FileWriter(tempDatei)); + while ((zeile=leseDatei.readLine()) != null) { + schreibeTemp.write(zeile); + schreibeTemp.newLine(); + } + schreibeTemp.close(); + leseDatei.close(); + } + } catch (Exception e) { + System.out.println(e.getMessage()); + System.out.println("error"); + } + } + + public static String mitLeerzeichen(int laenge, String daten) { + for (int i = 0; i <= laenge; i++) { + daten = daten.concat(" "); + } + return daten; + } + + +}