text editieren

  • Themenstarter Themenstarter schnuller
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
S

schnuller

Gast
ist sicherlich eine einfache sache aber ich komm da nicht drauf... :bahnhof:

und zwar lese ich mit meinem programm eine txt-datei ein...klappt soweit.
in der txt stehen etwa 100 messergebnisse die aber hintereinander weg, nur durch ein leerzeichen getrennt sind.
am ende werden die daten wieder in eine txt geschrieben...allerdings möchte ich das sie in der neuen txt untereinander stehen.

ich lese die datei also mit einem BufferedReader ein und schreibe sie dann wieder mit BufferedWriter...

Code:
2.45567 3.87463 3.65433 ....

und das sollte möglichst in der neuen datei stehen
Code:
2.45567
3.87463
3.65433
....

wäre schön wenn ihr mir helfen könntet.

mfg
schnuller
 
mit BufferedReader inlesen, splitten und mit dem PrintWriter und der Methode println wieder zeilenweise schreiben
 
Code:
       //einlesen geht ja schon bei dir
        String str = "2.45567 3.87463 3.65433";
        String[] sp = str.split(" ");
        for (int i = 0; i < sp.length; i++) {
            System.out.println(sp[i]);
            // du musst natürlich hier in die Datei schreiben
        }
 
das heißt also das splitten muss beim BufferedWriter passieren, richtig?

mfg
Schnuller
 
ich raff nich wo das hin muss...

so sieht mein bufferedreader aus ... und nach dem einlesen der zeilen muss das jetzt rein oder?
Code:
    public void readData(BufferedReader reader) throws IOException {
        int row, col;
        String str;
        int begin, end;

        floatValue = new float[rows][cols];

        for (row = 0; row < rows; row++) {
            str = reader.readLine();

            if (str.startsWith(" ")) str = str.trim();
            begin = 0;
            for (col = 0; col < cols; col++) {
                end = str.indexOf(' ', begin);
                if (end==-1) end = str.length();
                floatValue[row][col] = Float.parseFloat(str.substring(begin, end));
                begin = end + 1;
            } 
        }
    }

oder muss das woanders hin???? :bahnhof:

mfg
schnuller
 
Schnuller hat gesagt.:
ich raff nich wo das hin muss...

so sieht mein bufferedreader aus ... und nach dem einlesen der zeilen muss das jetzt rein oder?
Code:
    public void readData(BufferedReader reader) throws IOException {
        int row, col;
        String str;
        int begin, end;

        floatValue = new float[rows][cols];

        for (row = 0; row < rows; row++) {
            str = reader.readLine();

            if (str.startsWith(" ")) str = str.trim();
            begin = 0;
            for (col = 0; col < cols; col++) {
                end = str.indexOf(' ', begin);
                if (end==-1) end = str.length();
                floatValue[row][col] = Float.parseFloat(str.substring(begin, end));
                begin = end + 1;
            } 
        }
    }

oder muss das woanders hin???? :bahnhof:

mfg
schnuller

wtf, was machst du da? Ich denke du möchtest nur lesen, bearbeiten und wieder speichern!? Andre Uhres hat das dcoh schon gut geschrieben. Ersetz halt das System.out.println durch deinen BufferedWriter.write()! Scho hastes

Code:
    //einlesen geht ja schon bei dir 
        BufferedWriter wuffy = new BufferedWriter(new FileWriter(daSollsHin));
        String str = "2.45567 3.87463 3.65433"; 
        String[] sp = str.split(" "); 
        for (int i = 0; i < sp.length; i++) { 
            wuffy.write(sp[i] + System.getProperty("line.separator"); 
        }
        wuffy.close()
 
😳
so sieht das also aus...
Code:
 public void writeData(String filename) throws IOException {
        logger.debug("schreibe "+filename);
        BufferedWriter writer = new BufferedWriter(new FileWriter(filename));
        if (format == FORMAT_GRASS_ASCII) {
            writeDataGrassAscii(writer);
        } else if (format == FORMAT_ESRI_ARC_INFO_ASCII) {
            writeDataEsriArcInfoAscii(writer);
        }
        writer.close();

        logger.debug("datei wurde geschrieben");
    }

also setze ich das so ein?

Code:
public void writeData(String filename) throws IOException {
        logger.debug("schreibe "+filename);
        String[] sp = str.splitt(" ");
         for (int i = 0; i < sp.lenght; i++){  
           BufferedWriter writer = new BufferedWriter(new FileWriter(filename));
            if (format == FORMAT_GRASS_ASCII) {
            writeDataGrassAscii(writer);
        } else if (format == FORMAT_ESRI_ARC_INFO_ASCII) {
            writeDataEsriArcInfoAscii(writer);
        }
        writer.close();

        logger.debug("datei wurde geschrieben");
    }

im moment scheint mir das nicht in den kopf zu wollen...
 
ach ne!

Code:
public void writeData(String filename) throws IOException {
        logger.debug("schreibe "+filename);
           BufferedWriter writer = new BufferedWriter(new FileWriter(filename));
            String[] sp = str.splitt(" ");
              for (int i = 0; i < sp.lenght; i++){ 
                writer.write(sp[i]...
               
            if (format == FORMAT_GRASS_ASCII) {
            writeDataGrassAscii(writer);
        } else if (format == FORMAT_ESRI_ARC_INFO_ASCII) {
            writeDataEsriArcInfoAscii(writer);
        }
        writer.close();

        logger.debug("datei wurde geschrieben");
    }
 
hat sich erledigt...hab mich bisschen blöd angestellt 😳
danke an alle!!!! die geduld bewiesen haben 🙂

mfg
schnuller
 
Ach ja, das ist ja alles nur halb so schlimm. Du bist wenigstens ehrlich und jetzt ist ja
alles wieder im positiven Bereich. Mach nur weiter so 😀
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben