FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Tratamiento de un bloque de datos
No tengo experiencia programando y quisiera que me aconsejaran.
Por un lado recibo en Ascii la direccion con 8 bytes de datos, desde la 0000000 hasta la 16000000 y por otro lado (tambien en Ascci) la intensidad de una señal con 2 bytes desde 00 hasta 99 (en la práctica este último valor pasará de 75). Cada direccion de 8 bytes llevará aparejado su valor de señal de 2 bytes. Esta señal de 2 bytes será maxima en un intervalo de direcciones. Tengo que saber la dirección media cuando la señal es maxima. No se que hacer, si crear un fichero de texto para almacenar estos datos y luego hallar el valor/es maximo/s leyendo de nuevo los datos o hacerlo con algún tipo de base de datos. ¿Que debo hacer?. Saludos. |
#2
|
||||
|
||||
Depende de cómo deba funcionar.
El principal problema que le veo al archivo de texto es cómo gestionar el acceso y mantenimiento (eliminar lo que ya no necesitas, acceder desde diferentes partes/hilos/programas, etc), algo que los gestores de bases de datos hacen muy bien. Su ventaja es que necesita menos memoria. |
#3
|
|||
|
|||
Gracias Ñuño. Ayer he conseguido grabar perfectamente los datos de direccion y fuerza de señal en un fichero de texto. Tienes toda la razón pero me enfrento a algo verdaderamente dificil para mi, no tengo experiencia pero he conseguido que los datos se graben. Ahora que ya tengo la seguridad de que los datos están ahí toca pasarlos a un array dinámico, no se como pero a lo mejor alguien me pueda orientar...
Vean el código que llevo hecho y que ya graba los datos a un archivo de texto: Código:
procedure TForm1.Button10Click(Sender: TObject); var a: string; i, j, ndirecciones: integer; begin CrearFichero; ndirecciones:= 200; dato:=#105; //Izquierda 1ra vez FileWrite(FHandle,PChar(dato)^,Length(dato)); for i:=0 to ndirecciones-1 do begin Fileread(FHandle,PChar(dato)^,Length(dato)); if dato = '(' then begin memo2.Lines[0] := '(' ; for j:=0 to 8 do begin Fileread(FHandle,PChar(dato)^,Length(dato)); memo2.Lines[0] := memo2.Lines[0] + dato; end; EnviaDatos('iwconfig wlan0 | grep -i "Link Quality" | cut -f2 -d ''='' | cut -f1 -d"/"'); RecibeDatosB; memo2.Lines[0] := memo2.Lines[0] + FuerzaSenialB; a:=memo2.Lines[0]; end; EscribirDatos (a); end; dato:=#112; FileWrite(FHandle,PChar(dato)^,Length(dato)); //Paramos end; Código:
(00080137)00(00120137)41(00160137)41(00200137)41(00240137)40(00280137)42(00320137)42(00360137)40(00400137)41(00440137)41(00480137)40(00520137)41(00560137)41(00600137)39(00640137)39(00680137)39(00720137)40... Saludos. |
#4
|
||||
|
||||
Échale un vistazo a la clase TStringList. Después, deberías cambiar un poco el formato del archivo, separando usando saltos de línea y comas. Así puedes leer el archivo diréctamente con TStringList.LoadFromFile, saber el número de entradas con TStringList.Count, y usar otras propiedades y métodos para obtener los datos.
|
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Tratamiento de base de datos con Imagenes | zugazua2001 | Gráficos | 5 | 25-03-2012 21:12:31 |
Bloque de Registros | Morphine | SQL | 5 | 13-01-2006 15:15:56 |
tratamiento base de datos,me salvais la vida! | kage_01 | Conexión con bases de datos | 1 | 02-12-2005 19:29:23 |
problema bloque try... except | VRO | OOP | 2 | 22-10-2004 16:00:38 |
bloque de registro | Manuel | Firebird e Interbase | 1 | 13-11-2003 15:48:28 |
|