Jump to content

Leer y Manejar Datos de Fichero


soulless
 Share

Recommended Posts

Explico mi problema en Cocoa (soy novatisimo) .

 

Tengo un fichero muchisimos puntos xyz. Quiero leer estos datos y posteriormente trabajar con ellos.

 

Pensé utilizar NSData (mediante el uso del método dataWithContentsOfFile:), pero ¿como manejo posteriormente estos datos y los puedo ir metiendo en float, int…?

 

¿Algún experto en Cocoa ve otro método mejor que tenga mejor rendimiento?

 

	// Create NSData to store file data
NSData *dataBem;

// Save file data to NSData
dataBem = [NSData dataWithContentsOfFile: pathFile];

// Como lo manejo para ir sacando del NSData e ir metiendolos en float,int
	float myfloat = ...

Edited by soulless
Link to comment
Share on other sites

Puede que te sirva, al igual que me va a servir a mi, el "framework" BioCocoa [http://www.bioinformatics.org/biococoa/wiki/pmwiki.php]. Desde luego lo hará si se trata de un conjunto de coordenadas que se encuentran en un fichero con formato PDB. ;)

Ante todo gracias jaime. He estado leyendo el link que escribistes y es muy interesante. Sin embargo es distinto a lo que necesito.

 

Yo trabajo en ingeniería civil, con ficheros con filas y columnas almacenadas en binario para una lectura más rápida. Busco el procedimiento "estándar" para realizar la lectura y posterior almacenamiento en vectores de dos dimensiones usando Objective-C / Cocoa.

No sé si utilizar ordenes de C estándar o bien clases de Cocoa como NSFileHandle, NSData…

Link to comment
Share on other sites

Leyendo este documento del ADC de Apple, me doy cuenta que la mejor manera de trabajar con datos binarios en Cocoa es con NSData y NSMutableData.

 

Los ejemplos del documento anterior solo utiliza NSString y char. ¿Que ocurre si mis datos son float o int? ¿Como sería el método getBytes para tomar flotante, int... teniendo en cuenta que sea 32bits o 64bits?:

 

// Save file data to NSData

dataBem = [NSData dataWithContentsOfFile: pathFile];

 

// Allocate a buffer

char *abuffer = malloc(length);

 

// ¿Como uso NSUInteger?

[dataBem getBytes:buffer length:¿NSUInteger?];

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.