Funcion para ejecutar comandoS

Funcion para ejecutar comandoS

Postby mastintin » Tue Aug 31, 2010 3:30 pm

Con esta función podemos hacer que se ejecuten comandos en MacOSX. podemos hacer tambien que nos devuelva una cadena con el resultado añadiendo una linea al final de la función.
Port ejemplo para comprimir un archivo :
TaskExec("/usr/bin/gzip","archivo1")

para descomprimir :

TaskExec( "/usr/bin/gzip","-d", "archivo1")

y muchas cosas mas ...

Code: Select all  Expand view

HB_FUNC( TASKEXEC )
{
    NSString * comando = [ [ [ NSString alloc ] initWithCString: ISCHAR( 1 ) ? hb_parc( 1 ) : "" ] autorelease ];
    NSString * arg1 = [ [ [ NSString alloc ] initWithCString: ISCHAR( 1 ) ? hb_parc( 2 ) : "" ] autorelease ];
    NSString * arg2 = [ [ [ NSString alloc ] initWithCString: ISCHAR( 1 ) ? hb_parc( 3 ) : "" ] autorelease ];
    NSString * arg3 = [ [ [ NSString alloc ] initWithCString: ISCHAR( 1 ) ? hb_parc( 4 ) : "" ] autorelease ];
   
    NSTask *task;
    task = [[NSTask alloc] init];
    [task setLaunchPath: comando ];
   
    NSArray *arguments;
    arguments = [NSArray arrayWithObjects: arg1, arg2, arg3, nil];
    [task setArguments: arguments];
   
    NSPipe *pipe;
    pipe = [NSPipe pipe];
    [task setStandardOutput: pipe];
   
    NSFileHandle *file;
    file = [pipe fileHandleForReading];
   
    [task launch];
   
    NSData *data;
    data = [file readDataToEndOfFile];
   
    NSString *string;
    string = [[NSString alloc] initWithData: data
                                   encoding: NSUTF8StringEncoding];
  //  NSLog (@"woop!  got\n%@", string);
   
}
 
User avatar
mastintin
 
Posts: 1516
Joined: Thu May 27, 2010 2:06 pm

Return to FiveMac / FivePhone (iPhone, iPad)

Who is online

Users browsing this forum: No registered users and 3 guests