Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Semikolon nicht als Trennzeichen interpretieren

Empfohlene Antworten

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?

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.

  • Autor

@ 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?

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?

  • Autor

@ 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.

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.

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.