Hilo
No se como puedo leer archivos de textos con tabuladores (mamanente) 2020-01-10 19:28:11
Hola soy Miguel, me permito molestarlos, pero necesito una ayuda con C++.Tengo un archivo de texto de dos registro con aproximadamente 1503 campos por cada registros, son cifras numericas como strings tabuladas entre cifras y cifras.lo que necesito que me den una mano es poder leer el archivo y convertir cada numero que esta en un registro tipo string en un entero para después cargarlo a un vector.
Realmente necesito su ayuda por que no se como hacerlo. Adjunto archivo de texto.
Agradecería mucho su ayuda.
Gracias muy atte.
498137 464779 484201 425899 380539 349685 427784 417256 375643 381353 481231 451429 353699 355102 399923 352876 335686 319726 420995 425114 379926 375833 386249 392393 387793 368747 388279 359107 312900 312553 400079 411257 387796 433952 453964 440307 425791 426336 460989 427354 372478 359612 460803 463664 430744 479526 491134 479547 452859 427794 474336 407178 370907 378678 450743 491445 475337 518148 497501 488068 486618 450105 479082 440834 392916 372136 429579 473610 453689 498606 523086 491151 475503 457685 498211 439444 389122 327904 459669 499624 483991 545331 565259 533112 531833 511621 548477 453931 365635 370457 453175 494480 478809 534362 547497 534203 498463 485993 509202 503606 454615 448072 525166 583315 606697 642758 634469 601853 581930 522552 605770 554275 532476 484241 607538 616928 612392 642148 535643 619265 637153 584874 625832 582953 531575 267554 386341 488796 538930 580020 610659 626496 639427 596704 646829 573170 533034 497020 646657 619348 645018 699677 729716 705521 690589 631295 703030 644313 614589 601187 744354 710712 720683 746191 787111 757212 760831 703472 751824 702297 677461 609692 793363 783303 787970 854025 866578 851328 854968 790249 827137 767227 725629 659582 946224 937208 945689 954267 952949 952843 1000812 916071 905663 752744 720902 700308 982606 975267 932678 1016536 997664 1014521 1087066 977017 998309 918105 902258 866562 1157874 1147350 1140139 1154815 1173481 1114420 1192998 1076384 1173269 1038997 1002396 948762 1354039 1316549 1255526 1339070
803349 714951 657722 549250 496487 454910 517051 496006 427259 403315 433967 479749 478775 386017 411617 377785 387883 382388 447189 433749 403509 431326 448771 495678 529398 479693 486928 430329 411425 441642 545910 531022 487616 502866 517739 538925 605534 591093 569995 532649 475180 472591 585816 550604 518381 575009 581463 603906 703500 636284 673407 549695 542216 529484 687549 624352 614893 642965 638718 658850 752210 674015 692351 638307 583047 558442 697742 649684 646400 698098 704081 730076 849464 801959 785999 718116 647976 643767 812951 732955 707112 743460 751944 797552 919584 859652 874663 694857 712254 680180 835025 779111 718584 720028 705099 759437 862170 772690 756452 713428 637194 629763 640946 640264 699036 790667 786018 831420 959971 859375 847169 771183 781741 768318 955826 879402 898600 915108 869746 927143 1136651 1000615 998845 912827 870886 741322 1004030 924827 965483 940793 939590 975305 1195274 1077856 1066482 972734 901392 858456 993058 895715 907649 901499 882762 915395 1105098 974810 1030748 898583 797233 867336 1006629 928346 926890 946434 942823 966132 1086196 978037 995328 897172 902585 898723 1002530 937643 900793 942384 914368 970461 1069540 962324 994793 914705 914201 869467 1018082 999930 979920 1005319 985542 1037744 1173643 1101061 1096782 974517 992347 959973 1105131 1072235 1060833 1097015 1066986 1150595 1335301 1228723 1263403 1152970 1145287 1080141 1300697 1216705 1200890 1247885 1212974 1304474 1539035 1371250 1402441 1285787 1208538 1040896 1276201 1168195 1152293 1152935_______________________________________________
Lista de correo Cconclase Cconclase@listas.conclase.net
http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
Re: No se como puedo leer archivos de textos con tabuladores (Steven Davidson) 2020-01-10 20:03:43
Hola Miguel,
Viendo el fichero de texto a leer, la forma más sencilla es usar el
operador >> para la lectura formateada de un canal de fichero. Cree un
objeto de la clase 'std::ifstream' (definida en <fstream>) para abrir el
fichero y simplemente vaya leyendo cada texto que será interpretado y
convertido a un número entero para ser guardado en cada elemento
correspondiente en el array (o vector). Esto es,
int aCifras[1503];
std::ifstream ifsDatos( "EANA.txt" );
ifsDatos >> aCifras[0]; // Aseguramos la primera lectura
for( int i=1; !ifs.eof(); ++i )
ifsDatos >> aCifras[i];
En general, uno debe intentar la lectura seguida de una validación de tal
lectura (la condición en el bucle 'for'). El operador >> aplica varios
formatos y además ignora los caracteres de espacios blancos que son: ' ',
'\t', '\r', '\n', '\f', y '\v'.
Si necesita mayor control acerca de los criterios de la lectura, como por
ejemplo, realizar tandas de lecturas hasta el final de la línea, entonces
podría leer una línea completa (hasta el fin-de-línea), para luego procesar
esa gran cadena de caracteres independientemente de otras líneas. Podemos
usar 'std::istringstream' (definida en <sstream>) para crear un objeto
parecido a un fichero pero "lee" de una cadena de caracteres. Por ejemplo,
int aCifras[1503];
std::ifstream ifsDatos( "EANA.txt" );
char szLinea[10240]; // 10 KB de búfer
int i=0;
while( !ifs.eof() )
{
// Procesar línea a línea
ifs.getline( szLinea, 10240 ); // Leer una línea de texto, sin incluir
'\n'
std::istringstream issLinea( szLinea );
issLinea >> aCifras[i]; // Aseguramos la primera lectura
while( !ifs.eof() )
issLinea >> aCifras[++i];
}
Aquí he metido todas las cifras en 'aCifras', pero al ir línea a línea,
puede optar por guardar la secuencia de cifras en otra parte.
Espero que esto le oriente.
Steven
On Fri, Jan 10, 2020 at 2:35 PM miguel manente <manente2001@yahoo.com.ar>
wrote:
> Hola soy Miguel, me permito molestarlos, pero necesito una ayuda con C++.
> Tengo un archivo de texto de dos registro con aproximadamente 1503 campos
> por cada registros, son cifras numericas como strings tabuladas entre
> cifras y cifras.
> lo que necesito que me den una mano es poder leer el archivo y convertir
> cada numero que esta en un registro tipo string en un entero para después
> cargarlo a un vector.
>
> Realmente necesito su ayuda por que no se como hacerlo. Adjunto archivo de
> texto.
>
> Agradecería mucho su ayuda.
>
> Gracias muy atte.
>
_______________________________________________
Lista de correo Cconclase Cconclase@listas.conclase.net
http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
Re: No se como puedo leer archivos de textos con tabuladores (mamanente) 2020-01-11 20:10:07
Hola Steven
Lo que usted me envió me resultó bárbaro, anduvo de diez el programa y desde ya le agradezco enormemente su ayuda.
Sinceramente era más sencillo de lo que yo hacía y cada vez me complicaba cada vez más.
Muy agradecido por su invaluable ayuda, desde ya muchísimas gracias.
Miguel Manente
_______________________________________________
Lista de correo Cconclase Cconclase@listas.conclase.net
http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
Re: No se como puedo leer archivos de textos con tabuladores (mamanente) 2020-01-14 19:22:34
Les hago otra pregunta. ¿Cómo puedo saber la longitud de la cadena de texto en el archivo EANA por registro?, ¿Hay algún manera de hacer esto?.
Desde ya muchas gracias, Miguel.
_______________________________________________
Lista de correo Cconclase Cconclase@listas.conclase.net
http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
Re: No se como puedo leer archivos de textos con tabuladores (Salvador Pozo) 2020-01-17 11:29:24
El pasado 2020-01-14 19:22:34, mamanente escribió:
m> Les hago otra pregunta. ¿Cómo puedo saber la longitud de la cadena de texto en el archivo EANA por registro?, ¿Hay algún manera de hacer esto?.
m> Desde ya muchas gracias, Miguel.
Hola:
Sí, lo primero que se me ocurre es modificar un poco el programa que te envió Steven:
----8<------
#include <fstream>
#include <iostream>
using namespace std;
int main() {
ifstream ifsDatos( "EANA.txt" );
char c;
int lon;
int lonmax = 0;
do {
lon = 0;
// Leer y contar caracteres hasta encontrar el fin de linea
do {
ifsDatos.get(c);
lon++;
} while (c != '\n');
cout << "Longitud linea: " << lon << endl;
if(lon > lonmax) lonmax = lon;
} while( !ifsDatos.eof());
cout << "Longitud maxima: " << lonmax << endl;
return 0;
}
----8<------
--
Salvador Pozo (Administrador)
mailto:salvador@conclase.net
Blog con Clase: http://blogconclase.wordpress.com
Con Clase: http://conclase.net
_______________________________________________
Lista de correo Cconclase Cconclase@listas.conclase.net
http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
Re: No se como puedo leer archivos de textos con tabuladores (mamanente) 2020-01-22 17:48:02
Muchas gracias Salvador muy amable me fue de gran ayuda.
_______________________________________________
Lista de correo Cconclase Cconclase@listas.conclase.net
http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ