CSV data manipulation: Difference between revisions

Line 720:
3,7,11,300,19
4,8,12,16,400
</pre>
 
==={{libheader|Gadget}}===
<syntaxhighlight lang="c">
#include <gadget/gadget.h>
 
LIB_GADGET_START
 
void Muestra_archivo_original();
 
Main
if(Exist_file("save_matrix.txt"))
{
/* recupero informacion del archivo para su apertura segura */
F_STAT dataFile = Stat_file("load_matrix.txt");
if(dataFile.is_matrix) // tiene forma de matriz???
{
New multitype test;
/* establezco los rangos a leer */
Range for test [0:1:dataFile.total_lines-1, 0:1:dataFile.max_tokens_per_line-1];
/* cargamos el array todo DOUBLE */
test = Load_matrix_mt( pSDS(test), "load_matrix.txt", dataFile, DET_LONG);
/* modifica algunas cosas del archivo */
sChg( test, 0,1, "Columna 1");
$l-test[2,1] = 1000;
$l-test[2,2] = 2000;
/* inserto filas */
/* preparo la fila a insertar */
New multitype nueva_fila;
sAppend_mt(nueva_fila,"fila 3.1");
Append_mt(nueva_fila,float,0.0);
Append_mt(nueva_fila,int,0);
Append_mt(nueva_fila,double,0.0);
Append_mt(nueva_fila,long, 0L);
/* insertamos la misma fila en el array, 3 veces */
test = Insert_row_mt(pSDS(test),pSDS(nueva_fila), 4);
test = Insert_row_mt(pSDS(test),pSDS(nueva_fila), 4);
test = Insert_row_mt(pSDS(test),pSDS(nueva_fila), 4);
Free multitype nueva_fila;
Print "\nGuardando archivo en \"save_matrix.txt\"...\n";
DEC_PREC = 20; /* establece precision decimal para despliegue */
All range for test;
Save_matrix_mt(SDS(test), "save_matrix.txt" );
 
Free multitype test;
Print "\nArchivo original:\n";
Muestra_archivo_original();
}
}
 
End
 
void Muestra_archivo_original(){
String csys;
csys = `cat load_matrix.txt`;
Print "\n%s\n", csys;
Free secure csys;
}
</syntaxhighlight>
{{out}}
<pre>
$ ./tests/loadmt
 
Guardando archivo en "save_matrix.txt"...
 
Archivo original:
 
+,head 1,head 2,head 3,head 4
fila 1,0.7226562500000,0.7198443412781,0.7170542478561,0.7142857313156
fila 2,83,77,93,86
fila 3,0.5000000000000,0.5150380749101,0.5299192642332,0.5446390350150
fila 4,30886,36915,38335,60492
fila 5,1.8213465987073e+2,1.8213465987073e+4,1.8213465987073e+6,1.8213465987073e+8
fila 6,1.8213465987073e-2,1.8213465987073e-4,1.8213465987073e-6,1.8213465987073e-8
 
$ cat save_matrix.txt
+,Columna 1,head 2,head 3,head 4
fila 1,0.72265625000000000000,0.71984434127810004167,0.71705424785609994665,0.71428573131560002540
fila 2,1000,2000,93,86
fila 3,0.50000000000000000000,0.51503807491010000774,0.52991926423320001582,0.54463903501499999482
fila 3.1,0.00000000000000000000,0,0.00000000000000000000,0
fila 3.1,0.00000000000000000000,0,0.00000000000000000000,0
fila 3.1,0.00000000000000000000,0,0.00000000000000000000,0
fila 4,30886,36915,38335,60492
fila 5,182.13465987073001883800,18213.46598707299926900305,1821346.59870730014517903328,182134659.87073001265525817871
fila 6,0.01821346598707300132,0.00018213465987073003,0.00000182134659870730,0.00000001821346598707
$
</pre>
 
543

edits