为什么我的 NSString 不读取我的 .txt 文件?

发布于 2024-12-19 05:15:15 字数 3072 浏览 2 评论 0 原文

我有以下代码来读取 .txt 文件并将其放入字符串中以供 NSScanner 使用。

    NSString *Period1String = [[NSBundle mainBundle] pathForResource: @"Period1String" ofType: @"txt"];
    NSString *Period2String = [[NSBundle mainBundle] pathForResource: @"Period2String" ofType: @"txt"];
    NSString *Period3String = [[NSBundle mainBundle] pathForResource: @"Period3String" ofType: @"txt"];
    NSString *Period4String = [[NSBundle mainBundle] pathForResource: @"Period4String" ofType: @"txt"];
    NSString *Period5String = [[NSBundle mainBundle] pathForResource: @"Period5String" ofType: @"txt"];

    NSURL *requestTimetableURL = [NSURL URLWithString:@"http://www.dhsb.org/index.phtml?d=201435"];
    NSLog(@"Loaded Timetable");
    NSError *loaderror;
    NSString *page = [NSString stringWithContentsOfURL:requestTimetableURL 
                                              encoding:NSASCIIStringEncoding
                                                 error:&loaderror];

    [webView loadHTMLString:page baseURL:requestTimetableURL];

    NSString* Period1;

    NSScanner *htmlScanner =  [NSScanner scannerWithString:page];

    [htmlScanner scanUpToString:Period1String intoString:NULL];
    [htmlScanner scanString:Period1String intoString:NULL];
    [htmlScanner scanUpToString:@"</FONT>" intoString:&Period1];

    period1label.text= Period1;

    NSLog(@"Collected Period 1 Data: %@", Period1);

    NSScanner *htmlScanner2 =  [NSScanner scannerWithString:page];

    NSString* Period2;

    [htmlScanner2 scanUpToString:Period2String intoString:NULL];
    [htmlScanner2 scanString:Period2String intoString:NULL];
    [htmlScanner2 scanUpToString:@"</FONT>" intoString:&Period2];

    period2label.text= Period2;

    NSLog(@"Collected Period 2 Data: %@", Period2);

    NSScanner *htmlScanner3 =  [NSScanner scannerWithString:page];

    NSString* Period3;

    [htmlScanner3 scanUpToString:Period3String intoString:NULL];
    [htmlScanner3 scanString:Period3String intoString:NULL];
    [htmlScanner3 scanUpToString:@"</FONT>" intoString:&Period3];

    period3label.text= Period3;

    NSLog(@"Collected Period 3 Data: %@", Period3);

    NSScanner *htmlScanner4 =  [NSScanner scannerWithString:page];

    NSString* Period4;

    [htmlScanner4 scanUpToString:Period4String intoString:NULL];
    [htmlScanner4 scanString:Period4String intoString:NULL];
    [htmlScanner4 scanUpToString:@"</FONT>" intoString:&Period4];

    period4label.text= Period4;

    NSLog(@"Collected Period 4 Data: %@", Period4);

    NSScanner *htmlScanner5 =  [NSScanner scannerWithString:page];

    NSString* Period5;

    [htmlScanner5 scanUpToString:Period5String intoString:NULL];
    [htmlScanner5 scanString:Period5String intoString:NULL];
    [htmlScanner5 scanUpToString:@"</FONT>" intoString:&Period5];

    period5label.text = Period5;

    NSLog(@"Collected Period 5 Data: %@", Period5);

但是,当按下按钮使所有这一切发生时,它都是字符串(空)。每个文本文件 应该完全正常工作,因为它们已经为我的应用程序的其他部分工作了。

我应该有更好的方法吗?或者我可以改进当前的方法以获得我想要的结果吗?

谢谢

I have the following code to read a .txt file and to put it into a string to use for NSScanner.

    NSString *Period1String = [[NSBundle mainBundle] pathForResource: @"Period1String" ofType: @"txt"];
    NSString *Period2String = [[NSBundle mainBundle] pathForResource: @"Period2String" ofType: @"txt"];
    NSString *Period3String = [[NSBundle mainBundle] pathForResource: @"Period3String" ofType: @"txt"];
    NSString *Period4String = [[NSBundle mainBundle] pathForResource: @"Period4String" ofType: @"txt"];
    NSString *Period5String = [[NSBundle mainBundle] pathForResource: @"Period5String" ofType: @"txt"];

    NSURL *requestTimetableURL = [NSURL URLWithString:@"http://www.dhsb.org/index.phtml?d=201435"];
    NSLog(@"Loaded Timetable");
    NSError *loaderror;
    NSString *page = [NSString stringWithContentsOfURL:requestTimetableURL 
                                              encoding:NSASCIIStringEncoding
                                                 error:&loaderror];

    [webView loadHTMLString:page baseURL:requestTimetableURL];

    NSString* Period1;

    NSScanner *htmlScanner =  [NSScanner scannerWithString:page];

    [htmlScanner scanUpToString:Period1String intoString:NULL];
    [htmlScanner scanString:Period1String intoString:NULL];
    [htmlScanner scanUpToString:@"</FONT>" intoString:&Period1];

    period1label.text= Period1;

    NSLog(@"Collected Period 1 Data: %@", Period1);

    NSScanner *htmlScanner2 =  [NSScanner scannerWithString:page];

    NSString* Period2;

    [htmlScanner2 scanUpToString:Period2String intoString:NULL];
    [htmlScanner2 scanString:Period2String intoString:NULL];
    [htmlScanner2 scanUpToString:@"</FONT>" intoString:&Period2];

    period2label.text= Period2;

    NSLog(@"Collected Period 2 Data: %@", Period2);

    NSScanner *htmlScanner3 =  [NSScanner scannerWithString:page];

    NSString* Period3;

    [htmlScanner3 scanUpToString:Period3String intoString:NULL];
    [htmlScanner3 scanString:Period3String intoString:NULL];
    [htmlScanner3 scanUpToString:@"</FONT>" intoString:&Period3];

    period3label.text= Period3;

    NSLog(@"Collected Period 3 Data: %@", Period3);

    NSScanner *htmlScanner4 =  [NSScanner scannerWithString:page];

    NSString* Period4;

    [htmlScanner4 scanUpToString:Period4String intoString:NULL];
    [htmlScanner4 scanString:Period4String intoString:NULL];
    [htmlScanner4 scanUpToString:@"</FONT>" intoString:&Period4];

    period4label.text= Period4;

    NSLog(@"Collected Period 4 Data: %@", Period4);

    NSScanner *htmlScanner5 =  [NSScanner scannerWithString:page];

    NSString* Period5;

    [htmlScanner5 scanUpToString:Period5String intoString:NULL];
    [htmlScanner5 scanString:Period5String intoString:NULL];
    [htmlScanner5 scanUpToString:@"</FONT>" intoString:&Period5];

    period5label.text = Period5;

    NSLog(@"Collected Period 5 Data: %@", Period5);

But, when the button is pressed for all of this to happen, it all the strings (null). Every text file
should be fully working as they have worked for other parts of my app.

Is there a better way I should be doing this or can I improve on this current method to get the results I am looking for?

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

芯好空 2024-12-26 05:15:15
 NSString *Period1String = [[NSBundle mainBundle] pathForResource: @"Period1String" ofType: @"txt"];

这是将Period1String 设置为Period1String.txt 的路径而不是Period1String.txt 的内容。

它应该

 NSString *Period1String = [NSString stringWithContentsOfFile:[[NSBundle mainBundle] pathForResource: @"Period1String" ofType: @"txt"] usedEncoding:nil error:nil];

适当地替换为编码和错误的值。

 NSString *Period1String = [[NSBundle mainBundle] pathForResource: @"Period1String" ofType: @"txt"];

This is setting Period1String to the path to Period1String.txt rather than the contents of Period1String.txt.

It should be

 NSString *Period1String = [NSString stringWithContentsOfFile:[[NSBundle mainBundle] pathForResource: @"Period1String" ofType: @"txt"] usedEncoding:nil error:nil];

Substitute in values for encoding and error as appropriate.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文