componentsSeparatedbyString

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • componentsSeparatedbyString

    Ich habe eine grössere Textdatei, die ich einlese und zeilenweise dann zur Weiterverarbeitung einem Array zuweise:

    Quellcode

    1. var tmp = String?
    2. var zeilen = [String]()
    3. ...
    4. do {
    5. tmp = try String(contentsOfFile:"datei.txt")
    6. zeilen = tmp!.componentsSeparatedByString("\n")
    7. }
    8. catch {
    9. ...
    Mein Problem ist, dass das Zeilenumbruchzeichen nicht erkannt wird, das Array hat danach nur einen (sehr grossen) Eintrag :(
    Mit "," oder " abc" - wie auch immer - funktioniert es, mit \n aber einfach nicht

    Das erstaunt mich umso mehr als die vergleichbare Vorgehensweise in Objective-C tadellos ihren Dienst verrichtet.

    Was mache ich denn hier falsch?

    Quellcode

    1. zeilen = [tmp componentsSeparatedByString:@"\n"]
  • Ich mache in dem Programm, an dem ich gerade sitze, genau das gleiche.^^ So geht's:

    Quellcode

    1. let file = try String(contentsOfURL: url, encoding: NSUTF8StringEncoding)
    2. let lines = file.componentsSeparatedByCharactersInSet(NSCharacterSet.newlineCharacterSet())
    Das hat dann auch den Vorteil, daß Unix- und Windowsdateien beide gleichermaßen funktonieren. ;)