Announcement

Collapse
No announcement yet.

csv lesen / inhalt Berechnen und in csv schreiben

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • csv lesen / inhalt Berechnen und in csv schreiben

    Hey zusammen,

    hab ein großes Problem...brauche unbedingt Hilfe, da ich mithilfe eines
    Tutorials einen Reader / Scanner geschrieben habe und nun nicht weiter komme.

    Das muss ich erledigen:

  • #2
    da das bild nicht hochgeladen hier:
    • Die csv-Datei mit den Temperaturdaten soll eingelesen werden
    • es sollen 2 csv-Dateien geschrieben werden:
      1. die Tagesdurchschnittstemperaturen, pro Monat eine Zeile (also eine Zeile mit diesem Beispiel)
      2. die Tageshöchsttemperaturen, pro Monat eine Zeile (also eine Zeile mit diesem Beispiel)
    • die Methoden sollen maximal 5-10 Zeilen lang sein
    • die Klassen, Methoden und Variablen sollen so gut benannt sein, dass eine Dokumentation nicht notwendig ist
    • es soll eine vollständige Testabdeckung vorliegen (nutze hierbei JUnit)


      die Formel zur Berechnung ist diese: T Avg=1(T7+T14+2∗T21)

    Code:

    public class main {

    public static void main(String [] args) {

    String fileName = "Arbeitsmappe1.csv";

    File file = new File (fileName);

    try {

    Scanner inputStream = new Scanner(file);

    while (inputStream.hasNext()){

    String data = inputStream.next();

    System.out.println(data);
    }
    inputStream.close();

    } catch (FileNotFoundException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }
    }



    vielen danke euch schonmal im Voraus

    Comment


    • #3
      Und was ist die Frage?
      Was ist mit dem ungültigen Link im ersten Post?
      Und was soll der Unsinn mit bsp.
      die Methoden sollen maximal 5-10 Zeilen lang sein
      Wenn soll die Formel jetzt etwas sagen?

      http://opencsv.sourceforge.net/
      Christian

      Comment


      • #4
        Die frage ist wie ich daran gehen soll, worauf ich achten soll bzw welche Funktionen ich brauche.

        Die Formel muss ich nutzen um die Durchschnittstemperatur zu errechnen...der ungültige link sollte eigentlich die Aufgabenbeschreibung zeigen, da es nicht funktioniert hat hab ich es im zweiten Post eingefügt (die 5 Punkte)

        ...habe den Scanner geschrieben siehe oben, aber wie muss ich weiter ran gehen ?
        um eben die Durchschnittstemperatur zu berechnen anhand der Formel (welche java Funktionen brauche ich da)


        Comment


        • #5
          Für das CSV einlesen habe ich dir den Link auf eine Bibliothek gegeben. Dort kriegst du jeden Satz. Da brauchst du nichts selber zu schreiben
          Einen Durchschnitt errechnet man durch summieren der Werte und dividieren durch die Anzahl der Werte. Spezielle math. Funktionen nicht erforderlich. Ansonsten siehe https://docs.oracle.com/javase/8/doc...lang/Math.html
          Insofern kann deine Formel nur ein Eingeweihter anwenden, weil keiner hier weiß was warum multipliziert werden muss, um einen AVG zu berechnen.
          Zuletzt editiert von Christian Marquardt; 23.03.2019, 20:32.
          Christian

          Comment


          • #6
            die formel muss ich verwenden da die mit der gegebenen csv Datei zusammenhängt
            T7 / T14 / t21 - stehen für die spalten (Uhrzeiten)

            Reader hab ich ja schon siehe 2. Post der läuft auch.

            danke dir schonmal

            Comment


            • #7
              Würde anders vorgehen:

              Code:
              BufferedReader br = new BufferedReader(new FileReader("test.txt"));
              int wert1; //Beispiel
              String zeile=br.readLine();
              while (zeile !=null)
                 {
                 //Zeile aufteilen mit String-> split, Werte merken oder schon berechnen, Werte in Variablen merken
                 zeile=br.readLine();
                 }
              br.close();
              // ggf. Gesamtwerte berechnen
              Zuletzt editiert von Christian Marquardt; 23.03.2019, 21:29.
              Christian

              Comment


              • #8
                ok danke dir für den tipp...werd mich morgen denk weiter dran machen ggf. nochmal melden

                Comment


                • #9
                  Lesen der CSV mit o.a. JAR

                  Code:
                   CSVIterator iterator = new CSVIterator(new CSVReader(new FileReader("deine.csv")));
                  for(String[] nextLine : iterator)
                       {
                      // nextLine[] is an array of values from the line
                      System.out.println(nextLine[0] + nextLine[1] + "etc...");
                      }
                  Konfiguration des Readers hinsichtlich delimiter, Anführungszeichen usw. http://opencsv.sourceforge.net/apidocs/index.html
                  Christian

                  Comment


                  • #10
                    so... nun hab ich folgendes Problem und zwar wie ich weiter machen soll
                    und zwar muss ich nun die werte der .csv verwenden um den durchschnitt
                    laut der formal von oben zu berechnen

                    Comment


                    • #11
                      In dem Array befinden sich - sofern das split funktioniert hat (was du durch debuggen prüfen kannst) - die einzelnen Elemente der CSV. Du kannst also mit split[index] darauf zugreifen.
                      Zum berechen kann ein String mit Integer.valueOf(split[index]) in einen int umgewandelt werden, mit dem Rechenoperationen möglich sind
                      Christian

                      Comment

                      Working...
                      X