Alex_winf01 Geschrieben 18. Juni 2008 Teilen Geschrieben 18. Juni 2008 Hallo liebe Forengemeinde, ich habe folgendes Problem: Ich habe eine JTextArea, in denen die Anwender auch ";" eintragen. Nun lese ich die Werte aus und speichere die Werte in eine CSV-Datei. Dort ist das Trennzeichen ein ";". Wie kann ich nun erreichen, dass das ";" in der JTextArea nicht als Trennzeichen interpretiert wird, sondern als Text? Und dann habe ich noch das Problem, dass dort auch ein \n eingegeben wird, d. h. der Anwender drückt ENTER und schreibt weiter. Wie kann ich das beheben? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Crash2001 Geschrieben 18. Juni 2008 Teilen Geschrieben 18. Juni 2008 Wenn du das in Anführungszeichen (einfach oder doppelt) speicherst, sollte es eigentlich gehen. Ansonsten muss man das evtl irgendwie maskieren mittels \ oder so. Was soll bei dem /n denn passieren? Soll der Zeilenumbruch mit rein oder nicht. Falls nicht, rausfiltern und falls mit rein, dann sollte das auch in Anführungszeichen gehen beim speichern. Musst dann halt nur beim Auslesen die Anführungszeichen entsprechend auch wieder entfernen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Alex_winf01 Geschrieben 18. Juni 2008 Autor Teilen Geschrieben 18. Juni 2008 @ Crash2001 Das mit dem \n habe ich gelöst. Nur habe ich mit dem Semikolon noch ein Problem. Der Wert kommt aus der DB. Da steht dann z. B. Drin: Dies ist ein Text mit ; notizen_string = notizen_string.replaceAll("\\;", ":"); Statt dem : muss da natürlich das ; hin. Leider funzt es nicht, wenn ich das ; so schreibe: notizen_string = notizen_string.replaceAll("\\;", "\";\""); Ich setze einen FieldDelimiter mit ''. Das heisst Die Felder sehen so aus: 'Text'; Kannst Du mir helfen? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
geloescht_Newlukai Geschrieben 18. Juni 2008 Teilen Geschrieben 18. Juni 2008 notizen_string = notizen_string.replaceAll("\\;", ":"); Statt dem : muss da natürlich das ; hin. Leider funzt es nicht, wenn ich das ; so schreibe: notizen_string = notizen_string.replaceAll("\\;", "\";\""); Ich setze einen FieldDelimiter mit ''. Das heisst Die Felder sehen so aus: 'Text'; Klappt notizen_string = notizen_string.replaceAll("\\;", ";"); denn nicht? Aber abgesehen davon, ist mir nicht klar, was denn Dein Problem ist. Wo kommen welche Daten hin und wo stört das Semikolon und wodurch soll es wo ersetzt werden? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Alex_winf01 Geschrieben 19. Juni 2008 Autor Teilen Geschrieben 19. Juni 2008 @ Newlukai Das Problem hat sich erledigt. Hab es jetzt so gelöst: notizen_string = "\"" + notizen_string + "\"" + ";" Problem war: Ich habe ein Textfeld, in dem der Anwender folgendes eintragen kann: Ich bin ein Kommtentar; mit Semikolom Und was passiert, wenn ich so was in eine CSV-Datei überspiele? Excel interpretiert das ; als Trennzeichen und schreibt den Teil hinter dem Semikolon in der nächsten Spalte. Und das ist nicht gewollt. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Crash2001 Geschrieben 19. Juni 2008 Teilen Geschrieben 19. Juni 2008 Das kommt ganz drauf an, was man als Trennzeichen verwendet. In anderen Versionen hat man das z.B. mit einem Komma. Wenn aber einfache oder doppelte Anführungszeichen drum sind, ignoriert Excel den Spaltensprung normal. Bei mir muss ich z.B. wenn ich das unter Excel eingebe nichtmals die Anführungszeichen setzen, damit es als CSV dann richtig interpretiert wird. Wenn mans mit dem Editor öffnet sieht man,dass um jede Zelle Anführungszeichen drum sind. Anhand dessen sollte Excel das normal auswerten, ob hinter dem Semikolon der nächste Spaltenwert folgt, oder ob es in der Spalte weiter geht. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.