hi,
i have 3 files in a foundation tool, main.m, scanner1.h, scanner1.m:
main.m:
#import <Foundation/Foundation.h>
#import "scanner1.h"
int main (int argc, const char * argv[]) {
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
NSString *returnstring;
returnstring = [[NSString alloc] _scanString:@"\\valuen\\xak2dj\\blahblah\\xyz\\val ue1\\1\\value2\\teststring" startTag:@"\\value2" endTag:@""];
NSLog(@"Result = %@", returnstring);
[pool release];
return 0;
}
scanner1.h:
#import <Foundation/Foundation.h>
@interface scanner1 : NSObject {
NSString *_scanString;
}
-(NSString *)_scanString:(NSString *)source startTag:(NSString *)startTag endTag:(NSString *)endTag;
@end
scanner1.m:
#import "scanner1.h"
@implementation scanner1
-(NSString *)_scanString:(NSString *)source startTag:(NSString *)startTag endTag:(NSString *)endTag
{
NSScanner *scanner = [NSScanner scannerWithString:source];
NSString *result;
//find start tag
if (![scanner scanUpToString:startTag intoString:nil])
//not found!
return nil;
//skip over the strat tag we found
[scanner scanString:startTag intoString:nil];
//then scan up to the end tag in the result
[scanner scanString:endTag intoString:&result];
//see if the end tag actually exists, if so return the result, if not return nil
if ([scanner scanString:endTag intoString:nil])
return result;
else
return nil;
}
@end
i just want to scan out what after value2\\ comes. (and what after \\valueX comes)but this doesn't work! anyone knows where the problem is?