Vous êtes sur la page 1sur 9

Procesar datos con C#

Aintzane Conde

Procesar datos con C#

Procesar datos con C#

Aintzane Conde

Procesar datos con C#


Se trata de crear una aplicacin para poder abrir un archivo de texto, obtener su contenido y procesar la informacin que hay en l para poder utilizarla. Abrimos un nuevo proyecto de Microsoft Visual C# 2010.

Procesar datos con C#

Aintzane Conde

Para poder ver lo que hacemos con este e emplo! previamente! crearemos un fichero de te"to donde #uardaremos la informaci$n que aparece al final de este documento como exto e!emplo. Para ello! en la parte superior derecha de la pantalla principal! pinchamos con el bot$n secundario en el nombre de nuestro proyecto %dentro del "xplorador de soluciones& y ele#imos #$re$ar! %uevo elemento. 'eleccionamos #rchivo de texto y lo #uardamos con el nombre Datos.txt.

'e#uidamente se nos abrir( una ventana vac)a en la que copiaremos el te"to*

Procesar datos con C#

Aintzane Conde

Volvemos a la pesta+a de Diseo del formulario. Para reali,ar esta aplicaci$n debemos a+adir al formulario un &ich ext'ox %cuadro de te"to enriquecido&! - (abel %etiqueta& y . ext'ox %cuadro de te"to& desde el Cuadro de )erramientas! que se encuentra en el lateral i,quierdo de la pantalla.

Cambiaremos las si#uientes Propiedades %cuadro inferior derecho& de los ob etos a+adidos* (Name)* asi#naremos el nombre rtbDatos para el cuadro de texto enriquecido! los nombres lbFecha! lbUTC! lbLat! lbLong y lbAlt para las etiquetas y tbLat! tbLong y tbAlt para los cuadros de texto. Text* asi#naremos los te"tos Fecha hora! UTC! Latitud! Longitud y Altitud para los nombres lbFecha! lbUTC! lbLat! lbLong y lbAlt respectivamente.

Procesar datos con C# /e esta forma! tendremos un formulario como este*

Aintzane Conde

Para que este e emplo d0 el resultado que se ve a continuaci$n! debemos ir a *er! pinchar en Cdi$o y escribir el Cdi$o %en 1Ubicacin_del_archivo2 debemos indicar la !uta de acceso al archivo deseado&.

Procesar datos con C#

Aintzane Conde

Comentarios sobre el cdi$o


'e escribe la l)nea using System.IO para poder acceder a los datos mediante la funci$n StreamReader. 3ambi0n e"iste una funci$n para escribir en un fichero %StreamReader&. /ependiendo la confi#uraci$n del ordenador en el que estemos traba ando! los decimales se indicaran mediante un punto o una coma. 4os datos a los que accedemos vienen separados por puntos! por lo que se crea una funci$n PuntoPorComa(string) que los sustituye. rim() se utili,a para quitar los espacios en blanco que puede haber en el te"to. S!lit("#n") se utili,a para dividir un te"to en tantas partes como veces apare,ca el car(cter de separaci$n que hayamos introducido. try catch se utili,a para intentar reali,ar las operaciones que indiquemos dentro del 1try2 y! si esto no es posible! reali,ar otras operaciones distintas que a#ruparemos en el 1cath2. 3ambi0n e"iste la palabra $inally para! bien se haya pasado por el #rupo de c$di#o primero o se#undo! acabar e ecutando las sentencias incluidas dentro del 1finally2.

exto e!emplo
$GPRMC,204008.00,A,4320.42919,N,00300.99145,W,0.020,,071111,,,A*68 $GPVTG,,T,,M,0.020,N,0.038,K,A*2A $GPGGA,204008.00,4320.42919,N,00300.99145,W,1,08,1.19,4.9,M,49.9,M,,*49 $GPGSA,A,3,23,02,13,04,20,07,10,08,,,,,2.24,1.19,1.89*06 $GPGSV,3,1,11,02,41,302,35,04,66,226,33,05,09,291,,07,44,150,32*7D $GPGSV,3,2,11,08,21,172,30,10,65,313,35,13,66,044,31,16,03,064,*77 $GPGSV,3,3,11,17,02,206,,20,11,105,23,23,37,053,33*4D $GPGLL,4320.42919,N,00300.99145,W,204008.00,A,A*74

Cdi$o
using using using using using using using using System% System.Collections.&eneric% System.Com!onent'odel% System.(ata% System.(ra)ing% System.*in+% System. e,t% System.-indo)s..orms%

using System.IO% //Para !oder leer los datos names!ace -indo)s.orms0!!lication1 2 !ublic !artial class .orm3 4 .orm 2

Procesar datos con C#


5region 6ariables globales !ublic string st*atitud% !ublic string st*ongitud% !ublic string st0ltitud% !ublic double do*atitud% !ublic double do*ongitud% string (atos% const string Ruta 7 89C4Ubicacin_del_archivo#(atos.t,t9% 5endregion 5region .unciones 5region .ormato hora string .ormato:ora(string Cadena) 2 Cadena 7 Cadena.Insert(;< 949)% Cadena 7 Cadena.Insert(1< 949)% return Cadena% = 5endregion 5region Signo de las coordenadas string SignoCoor(string Cadena3< string Cadena1) 2 double doCadena3% doCadena3 7 Convert. o(ouble(Cadena3)% s)itch (Cadena1) 2 case 9S94 doCadena3 Cadena3 7 brea@% case 9-94 doCadena3 Cadena3 7 brea@% de$ault4 Cadena3 7 brea@% = return Cadena3% = 5endregion 5region Cambiar un !unto !or una coma string PuntoPorComa(string Cadena) 2 Cadena 7 Cadena.Re!lace("."< "<")% return Cadena% = 5endregion 5endregion 5region Obtencin de los datos string Obtencion_datos() 2 StreamReader sr 7 ne) StreamReader(Ruta)%

Aintzane Conde

7 (>3) ? doCadena3% Convert. oString(doCadena3)% 7 (>3) ? doCadena3% Convert. oString(doCadena3)% Convert. oString(doCadena3)%

Procesar datos con C#


string 0ctual 7 sr.Read oAnd()% sr.Close()% return 0ctual% = 5endregion 5region Procesar los datos !rivate void Procesar_datos(string (atos) 2 string st*at% string st*ong% string st0lt% string stU C% rtb(atos. e,t 7 (atos% (atos 7 (atos. rim()% stringBC st0rray 7 (atos.S!lit("#n")% $or (int i 7 D% i E st0rray.*ength% iFF) 2 string str em! 7 st0rrayBiC% stringBC st0rray*inea 7 str em!.S!lit("<")% i$ (st0rray*ineaBDC 77 9G&P&&09) 2 try 2

Aintzane Conde

//U C stU C 7 .ormato:ora(st0rray*ineaB3C)% lbU C. e,t 7 stU C%

//*atitud (ouble do*at 7 Convert. o(ouble(PuntoPorComa(st0rray*ineaB1C))% do*at 7 do*at / 3DD% stringBC lat 7 do*at. oString().S!lit("<")% st*at 7 latBDC. oString() F 9<9 F ((Convert. o(ouble(latB3C) / HD)). oString(95555559)% st*at 7 SignoCoor(st*at< Convert. oString(st0rray*ineaBIC))% tb*at. e,t 7 st*at. oString()% //*ongitud (ouble do*ong 7 Convert. o(ouble(PuntoPorComa(st0rray*ineaB;C))% do*ong 7 do*ong / 3DD% stringBC lon 7 do*ong. oString().S!lit("<")% st*ong 7 lonBDC. oString() F 9<9 F ((Convert. o(ouble(lonB3C) / HD)). oString(95555559)% st*ong 7 SignoCoor(st*ong< st0rray*ineaBJC)% tb*ong. e,t 7 st*ong. oString()% //0ltitud st0lt 7 st0rray*ineaBKC% tb0lt. e,t 7 PuntoPorComa(st0lt)%

catch 2 //Lo se !ueden leer los valores &PS tb*at. e,t 7 9&PS invMlido9%

Procesar datos con C#


= = = 5endregion !ublic .orm3() 2 InitialiNeCom!onent()% (atos 7 Obtencion_datos()% Procesar_datos((atos)% = = = = tb*ong. e,t 7 9&PS invMlido9%

Aintzane Conde

Vous aimerez peut-être aussi