• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

Grep-Problem mit NSTask

jack.jack

Klarapfel
Registriert
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?
 

LittlePixel

Strauwalds neue Goldparmäne
Registriert
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.
 
  • Like
Reaktionen: below

Zettt

Doppelter Melonenapfel
Registriert
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.
 

below

Purpurroter Cousinot
Registriert
08.10.06
Beiträge
2.858
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.

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
 

Poljpocket

Salvatico di Campascio
Registriert
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