5
// Created by Jean-François Roy on 13/10/2006.
6
// Copyright 2006 MacStorm. All rights reserved.
9
#import "NSArrayListfileAdditions.h"
12
@implementation NSArray (ListfileAdditions)
14
+ (id)arrayWithListfileData:(NSData *)listfileData {
15
NSParameterAssert(listfileData != nil);
17
// What we are doing to do here is extract all the lines from stringData and add an entry for each of those lines
18
NSMutableString *listfileString = [[NSMutableString alloc] initWithData:listfileData encoding:NSASCIIStringEncoding];
19
[listfileString replaceOccurrencesOfString:@"\r\n" withString:@"\n" options:NSLiteralSearch | NSCaseInsensitiveSearch range:NSMakeRange(0, [listfileString length])];
20
[listfileString replaceOccurrencesOfString:@"\r" withString:@"\n" options:NSLiteralSearch | NSCaseInsensitiveSearch range:NSMakeRange(0, [listfileString length])];
22
NSArray *listfileArray = [listfileString componentsSeparatedByString:@"\n"];
23
[listfileString release];
29
@implementation NSMutableArray (ListfileAdditions)
31
+ (id)arrayWithListfileData:(NSData *)listfileData {
32
return [[[[self class] alloc] initWithListfileData:listfileData] autorelease];
35
- (id)initWithListfileData:(NSData *)listfileData {
36
NSParameterAssert(listfileData != nil);
38
NSArray *returnArray = [NSArray arrayWithListfileData:listfileData];
39
self = [self initWithCapacity:[returnArray count]];
40
[self setArray:returnArray];
42
if ([[self lastObject] isEqualToString:@""]) [self removeLastObject];
47
- (void)sortAndDeleteDuplicates {
48
[self sortUsingSelector:@selector(caseInsensitiveCompare:)];
50
if ([self count] > 1) {
52
for (; i < [self count] - 1; i++) {
53
if ([[self objectAtIndex:i] caseInsensitiveCompare:[self objectAtIndex:(i+1)]] == NSOrderedSame) {
54
[self removeObjectAtIndex:i];