while schleife

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

  • while schleife

    Hallo,

    bitte um Entschuldigung für die dumme Frage. :wacko:
    Ich muss einen Text parsen. Ich habe in einen NSTextView einen Text drin. Da möchte ich bestimmte Bereiche vom Text auslesen. Sprich wenn ein @"blabla" kommt kopiere mir das zB in ein String.
    Das müßte ich ja mit einer while schleife machen.

    Leider habe ich keinen Plan wie ich das machen soll. Kann mir einer ein Kleines Beispiel mit einer kleinen Erklärung zeigen?
    Greenhorn

    MacBookPro 15" Mac OS X, Lion 10.7.2 , XCode V 4.2.1
  • Wenn Du einen Text parsen willst, nimm einen NSScanner. Wenn Du einen Teil rauskopieren willst, nimm substringWithRange:. Wenn Du irgendwas mit einer Schleife machen willst, mach' das (wenn Du an Buchstaben heran willst, nimm characterAtIndex: oder substringWithRange: ). Ich habe aber keinen blassen Schimmer, warum Du irgendwas mit einer Schleife machen willst. Du kannst mit einem NSScanner wunderbar parsen und auch ohne Scanner geht eigentlich alles (fast so wunderbar) mit den Bordmitteln von NSString.
    Multigrad - 360°-Produktfotografie für den Mac
  • ne es ist auch keine Hausaufgabe XD

    so ich habe mal bischen rum gespielt aber das klappt nicht so .... wie immer halt :D

    Quellcode

    1. - (IBAction)start:(id)sender {
    2. NSString *mystring = @"bla {var: text1} blubbla {var: text2} blubbla blubbla blubbla blubbla blubbla blub";
    3. NSScanner *scanner = [NSScanner scannerWithString: mystring];
    4. NSString *meintext;
    5. while (![scanner isAtEnd])
    6. {
    7. int ixLeft, ixRight;
    8. [scanner scanUpToString: @"{var:" intoString: nil];
    9. ixLeft = [scanner scanLocation];
    10. [scanner scanUpToString: @"}" intoString: nil];
    11. ixRight = [scanner scanLocation];
    12. meintext = [mystring substringWithRange:NSMakeRange(ixLeft, ixRight)];
    13. NSLog(@"meintext %@", meintext);
    14. }
    15. }
    Alles anzeigen



    ich möchte bei diesem Beispiel das mir ausgegeben wir text1 und text2
    was mach ich falsch und wie sollte ich das machen ?
    Greenhorn

    MacBookPro 15" Mac OS X, Lion 10.7.2 , XCode V 4.2.1
  • macmoonshine schrieb:

    Geht das um eine Hausaufgabe?

    Quellcode

    1. NSUInteger theIndex = 0;
    2. while(theIndex < theString.length) {
    3. unichar theCharacter = [theString characterAtIndex:theIndex];
    4. ...
    5. theIndex++;
    6. }



    Cocoa in der Schule? Ich würde das erste Mal im Leben gern in die Schule gehen!
  • XD die zeit wird kommen ..... dann sind wir aber schon zu alt wenn wir es nicht jetzt schon sind


    kleines update ist zwar immer noch nicht das Ergebnis das ich haben möchte aber sieht sauber aus ... für weiter hilfe währe ich dankbar

    Quellcode

    1. - (IBAction)start:(id)sender {
    2. NSString *mystring = @"bla {var: text1} blubbla {var: text2} blubbla blubbla blubbla blubbla blubbla blub";
    3. NSScanner *scanner = [NSScanner scannerWithString: mystring];
    4. NSString *meintext;
    5. while (![scanner isAtEnd])
    6. {
    7. NSInteger ixLeft, ixRight;
    8. [scanner scanUpToString: @"{var:" intoString: nil];
    9. ixLeft = [scanner scanLocation];
    10. [scanner scanUpToString: @"}" intoString: nil];
    11. ixRight = [scanner scanLocation];
    12. meintext = [mystring substringWithRange:NSMakeRange(ixLeft, ixRight-ixLeft)];
    13. NSLog(@"meintext %@", meintext);
    14. }
    15. }
    Alles anzeigen
    Greenhorn

    MacBookPro 15" Mac OS X, Lion 10.7.2 , XCode V 4.2.1
  • so geht es.. oder gibt es noch was anzumerken ?

    Quellcode

    1. - (IBAction)start:(id)sender {
    2. NSString *mystring = @"bla {var: text1} blubbla {var: text2} blubbla blubbla blubbla blubbla blubbla blub";
    3. NSScanner *scanner = [NSScanner scannerWithString: mystring];
    4. NSString *meintext;
    5. while (![scanner isAtEnd])
    6. {
    7. NSInteger ixLeft, ixRight;
    8. [scanner scanUpToString: @"{var:" intoString: nil];
    9. ixLeft = [scanner scanLocation] + 5;
    10. [scanner scanUpToString: @"}" intoString: nil];
    11. ixRight = [scanner scanLocation];
    12. meintext = [mystring substringWithRange:NSMakeRange(ixLeft, ixRight-ixLeft)];
    13. NSLog(@"meintext %@", meintext);
    14. }
    15. }
    Alles anzeigen
    Greenhorn

    MacBookPro 15" Mac OS X, Lion 10.7.2 , XCode V 4.2.1