SORU
25 HAZİRAN 2009, PERŞEMBE


Objective-C: satırı ile dosya satır Okumak

Objective-C büyük metin dosyaları ile ilgili uygun yol nedir? Hadi her satırı ayrı ayrı okumak lazım diyorum ve bir NSString olarak her satırı tedavi etmek istiyor. Bunu yapmanın en etkili yolu nedir?

Bir çözüm NSString yöntemi kullanıyor:

  (id)stringWithContentsOfFile:(NSString *)path 
      encoding:(NSStringEncoding)enc 
      error:(NSError **)error

ve sonra yeni satır ayırıcı çizgiler bölünmüş, ve dizinin elemanları üzerinde yineleme. Ancak, bu oldukça yetersiz görünüyor. Kolay yolu sadece bir kez okumak yerine bir akışı olarak dosya, her satır numaralandırma üzerinde tedavi etmek için yok mu? Java gibi java.ıo.BufferedReader.

CEVAP
17 Aralık 2010, Cuma


Bu TextString genel bir okuma için çalışacak. Daha uzun metin okumak isterseniz(metin boyutu büyük)o kişi burada tamponlu gibi bahsedilen yöntemi kullanın(bellek alanında metin boyutunu rezerv).

Metin Dosyası okumak demek.

NSString* filePath = @""//file path...
NSString* fileRoot = [[NSBundle mainBundle] 
               pathForResource:filePath ofType:@"txt"];

Yeni hattından kurtulmak istiyorsun.

// read everything from text
NSString* fileContents = 
      [NSString stringWithContentsOfFile:fileRoot 
       encoding:NSUTF8StringEncoding error:nil];

// first, separate by new line
NSArray* allLinedStrings = 
      [fileContents componentsSeparatedByCharactersInSet:
      [NSCharacterSet newlineCharacterSet]];

// then break down even further 
NSString* strsInOneLine = 
      [allLinedStrings objectAtIndex:0];

// choose whatever input identity you have decided. in this case ;
NSArray* singleStrs = 
      [currentPointString componentsSeparatedByCharactersInSet:
      [NSCharacterSet characterSetWithCharactersInString:@";"]];

İşte gördünüz.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • footiecyclo

    footiecyclo

    26 EYLÜL 2009
  • MrSuicideSheep

    MrSuicideShe

    9 NİSAN 2010
  • Snazzy Labs

    Snazzy Labs

    9 Aralık 2008