1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Grep-Problem mit NSTask

Dieses Thema im Forum "OS X-Developer" wurde erstellt von jack.jack, 08.11.09.

  1. jack.jack

    jack.jack Klarapfel

    Dabei seit:
    20.03.09
    Beiträge:
    280
    Hallo

    In meinem Programm wird zuerst ein NSTask mit curl ausgeführt, der funktioniert. Dann wird das Ergebnis mit einer Pipe zum nächsten NSTask mit grep hineingeleitet. Grep soll folgendes aus dem Text heraussuchen: "t": Doch es gibt kein Ergebnis zurück. Ich habe es so gemacht:

    grepTask = [NSTask alloc];
    [grepTask setLaunchPath:mad:"/usr/bin/grep"];

    [grepTask setArguments:[NSArray arrayWithObjects:
    @"\"t\":",
    nil]];

    NSPipe *grepPipe = [NSPipe pipe];
    NSPipe *grepError = [NSPipe pipe];
    [grepTask setStandardInput:pipe];
    [grepTask setStandardError:grepError];
    [grepTask setStandardOutput:grepPipe];

    NSFileHandle *grepRead = [grepPipe fileHandleForReading];

    [grepTask launch];

    NSData *grepData = [grepRead readDataToEndOfFile];
    NSString *grepString = [[[NSString alloc] initWithData:grepData encoding:NSUTF8StringEncoding] autorelease];
    [test setStringValue:grepString];


    Wo liegt der Fehler?
     
  2. LittlePixel

    LittlePixel Strauwalds neue Goldparmäne

    Dabei seit:
    09.07.08
    Beiträge:
    641
    Hallo jack.jack,

    Deine Bemühungen sind toll… aber Dir wurde schon mehrfach gesagt, dass es so wertlos ist.
    Wenn ich Deiner erste Zeile sehe, dann schaue ich mir den Rest erst gar nicht an.

    Kauf Dir doch bitte jetzt irgend ein Buch und setze Dich ein paar Stunden in Ruhe hin und lese dieses.
    Dann wird bei Dir ganz oft der Aha-Effekt eintreten und Du wirst schneller Resultate erreichen.

    Viele Grüße

    PS: Nutze doch bitte die Code-Tags.
     
    below gefällt das.
  3. Zettt

    Zettt Doppelter Melonenapfel

    Dabei seit:
    16.10.05
    Beiträge:
    3.374
    Benutze doch das von Alex hier angesprochene regex(3).
    Der Thread ist ja auch von dir. Kennst den Tipp also bereits.
     
  4. below

    below Kalterer Böhmer

    Dabei seit:
    08.10.06
    Beiträge:
    2.865
    Das kann ich so unterschreiben.

    Lieber jack.jack, Programmieren muss man lernen. Du kannst Dir auch nicht einfach ein Klavier kaufen und erwarten, dass Du nach drei Tagen Bach spielen kannst.

    Am Anfang musst Du mitunter langweilige und dröge Etuden (Übungstücke) spielen.

    Wirklich, Dein Engagement in allen Ehren. Aber es führt zu nichts, sich mit Dir über NSTask zu unterhalten ist wirklcih sinnlos, wenn Du die Basisdinge nicht begriffen hast

    Alex
     
  5. Poljpocket

    Poljpocket Salvatico di Campascio

    Dabei seit:
    07.01.07
    Beiträge:
    432
    Ich zeige dir mal alle Fehler, die du machst.

    Code:
    // 2 - Fehler:
    grepTask = [NSTask alloc];
    // - richtig: NSTask *grepTask = [[NSTask alloc] init];
    [grepTask setLaunchPath:@"/usr/bin/grep"];
    
    [grepTask setArguments:[NSArray arrayWithObjects:@"\"t\":", nil]];
    
    NSPipe *grepPipe = [NSPipe pipe];
    NSPipe *grepError = [NSPipe pipe];
    // - wo ist diese 'pipe' definiert?
    [grepTask setStandardInput:pipe];
    [grepTask setStandardError:grepError];
    [grepTask setStandardOutput:grepPipe];
    
    NSFileHandle *grepRead = [grepPipe fileHandleForReading];
    
    [grepTask launch];
    
    NSData *grepData = [grepRead readDataToEndOfFile];
    // - geht einfacher:
    NSString *grepString = [[[NSString alloc] initWithData:grepData encoding:NSUTF8StringEncoding] autorelease];
    // - also so: NSString *grepString = [NSString stringWithData:grepData encoding:NSUTF8StringEncoding];
    [test setStringValue:grepString];
    Wie du siehst, scheiterst du an den grundlegensten Dingen der Grundlagen, also lerne diese Sprache! Kauf dir ein Buch! Dann mach dir mal ein "Hallo Welt"...

    Gruss ppocket
     

Diese Seite empfehlen