Autor |
Mensaje |
csebas
Nivel 9
Edad: 71
Registrado: 16 Feb 2009
Mensajes: 1634
Carrera: No especificada
|
|
Creas un archivo nuevo.
El apareo entre novedades y maestro en algoritmos 1 son 3 if
si reg_novedades <registro_maestro> agrego novedades, incremento novedades.
Si reg_novedades = registro_maestro ->(si pueden haber modificaciones actualizo, sino genero error, incrementas ambos
Si reg_novedades > registro_maestro -> agrego maestro ; incrementas maestro.
Si alguno se termina antes que el otro, que es lo logico, se procede a una escritura secuencial del archivo restante.
|
|
|
|
|
|
|
|
|
ElHijodeDios
Nivel 2
Registrado: 11 Dic 2011
Mensajes: 11
Carrera: Sistemas
|
|
Entonces cargar en memoria el archivo que seria ??? jaja
A ver si entendi yo leo los dos archivos UNA sola vez en el procedure que actualiza y en caso de tener que usar la informacion de los archivos los paso a una estructura de datos q me sirva en ese mommento ??
Estoy bienm ??
|
|
|
|
|
|
|
|
|
csebas
Nivel 9
Edad: 71
Registrado: 16 Feb 2009
Mensajes: 1634
Carrera: No especificada
|
|
A memoria cargas 1 registro del de novedades y 1 registro del de maestro, para poder comprarlos
|
|
|
|
_________________ ━━━━━┓ \\
┓┓┓┓┓┃
┓┓┓┓┓┃ ヽ○ノ
┓┓┓┓┓┃ /
┓┓┓┓┓┃ ノ)
┓┓┓┓┓┃
┓┓┓┓┓┃
▒▒▒▒▒▒▒▒▒▒▒▒▒▒
|
|
|
|
|
ElHijodeDios
Nivel 2
Registrado: 11 Dic 2011
Mensajes: 11
Carrera: Sistemas
|
|
sisi el apareo lo entiendo no m genera problema
lo unico es eso de no cargar en memoria nada mas
|
|
|
|
|
|
|
|
|
Symbolic
Nivel 6
Edad: 33
Registrado: 25 Ago 2011
Mensajes: 204
Ubicación: Avellaneda
Carrera: Informática
|
|
Te dicen de no cargar en memoria todo el archivo entero, pero a medida que compares vas a tener que usar variables auxiliares como dijeron antes.
|
|
|
|
|
|
|
|
|
ElHijodeDios
Nivel 2
Registrado: 11 Dic 2011
Mensajes: 11
Carrera: Sistemas
|
|
y despues de actualizarlo lo puedo leer nuevamente ,por ejemplo si tengo que generar un listado lo puedo pasar al archivo como
parametro a una funcion y leerlo de vuelta pero un registro por vez ??
|
|
|
|
|
|
|
|
|
csebas
Nivel 9
Edad: 71
Registrado: 16 Feb 2009
Mensajes: 1634
Carrera: No especificada
|
|
A lo que dice symbolic es a lo que te lleva el enunciado.
Suponete que el ejercicio fuese, teniendo toda la informacion de la wikipedia en wiki.dat y un archivo wiki_novedades.dat, desarrollar el apareo de de dichos archivos.
Queda mas que explicito que la wikipedia no entra en memoria.
Lo ultimo estas preguntando exactamente lo mismo que se pregunto aca
http://www.foros-fiuba.com.ar/viewtopic.php?t=19393 , aprenda a usar el buscador señor.
|
|
|
|
|
|
|
|
|
Sebastian Santisi
Administrador Técnico
Edad: 42
Registrado: 23 Ago 2005
Mensajes: 17451
|
|
Suele ser precondición resolver todo el problema en sólo una pasada por cada archivo.
|
|
|
|
_________________
|
|
|
|
|
ElHijodeDios
Nivel 2
Registrado: 11 Dic 2011
Mensajes: 11
Carrera: Sistemas
|
|
Ok joya !! igualmente no me gusta queda un procedure poco modularizado medio ilegible pero bue sera todo de una vez si lo piden asi .
Muchas gracias a todos !!
|
|
|
|
|
|
|
|
|
csebas
Nivel 9
Edad: 71
Registrado: 16 Feb 2009
Mensajes: 1634
Carrera: No especificada
|
|
si te queda medio ilegible es porque no estas separando la parte de la impresion de la del apareo.
Salu2 y suerte
|
|
|
|
_________________ ━━━━━┓ \\
┓┓┓┓┓┃
┓┓┓┓┓┃ ヽ○ノ
┓┓┓┓┓┃ /
┓┓┓┓┓┃ ノ)
┓┓┓┓┓┃
┓┓┓┓┓┃
▒▒▒▒▒▒▒▒▒▒▒▒▒▒
|
|
|
|
|
nico_topo
Nivel 3
Registrado: 18 Feb 2012
Mensajes: 37
|
|
bueen este post es de hace un par de meses, pero creo que me podrian dar una manito, ya que tmb tengo un problema sobre cargar los archivos a memoria. mi problema que no logro darme cuenta es para ordenar un archivo. lo que se me ocurre y encuentro en los libros es pasar el archivo a un array, pero al hacerlo si el archivo es muy grande no entraria en memoria.
buen, espero que alguien me pueda ayudar... graciaaas !
|
|
|
|
|
|
|
|
|
Sebastian Santisi
Administrador Técnico
Edad: 42
Registrado: 23 Ago 2005
Mensajes: 17451
|
|
Si tenés que ordenar un archivo y la memoria no es suficiente como para levantar el archivo en memoria, entonces lo que tenés que hacer es implementar un método de ordenamiento haciendo acceso aleatorio sobre el archivo.
Sin acceso aleatorio, una manera mucho más práctica y eficiente de realizar un ordenamiento de un archivo que no te entra en memoria es:- Abrís el archivo a ordenar.
- Leés los registros que te quepan en memoria
- Ordenás esos registros en memoria por el método que sea.
- Escribís el fragmento ordenado en un archivo nuevo.
- Si te quedan registros por leer, volvés a 2.
- Hacés un merge de todos los subarchivos ordenados (si querés simplificar el merge, podés mergear recursivamente de a pares).
|
|
|
|
_________________
|
|
|
|
|
nico_topo
Nivel 3
Registrado: 18 Feb 2012
Mensajes: 37
|
|
pero ponele que tengas que volver a hacer una segunda lectura porque te quedaron registros por leer, entonces volves a tomar los registros que entren en memoria los ordenas y los pasas al archivo donde ya pasaste los registros anteriores, pero ahi puede que los registros no te queden ordenados en ese nuevo archivo, ya que al volver a hacer una nueva lectura del archivo original, los registros que leas no los comparaste con los anteriores para ordenarlos en en el nuevo archivo. no se si me explicoo
|
|
|
|
|
|
|
|
|
Sebastian Santisi
Administrador Técnico
Edad: 42
Registrado: 23 Ago 2005
Mensajes: 17451
|
|
Fijate que el punto 4 dice "en un archivo nuevo" si es la veinteava vez que iterás entre los puntos 2 y 5 vas a tener 20 archivos nuevos, parciales, cada uno ordenado.
La consolidación final la hacés en el punto número 6.
|
|
|
|
_________________
|
|
|
|
|
nico_topo
Nivel 3
Registrado: 18 Feb 2012
Mensajes: 37
|
|
o sea que a medida que se repite la accion de pasar los registros a memoria para ordenarlos tengo que crear un archivo nuevo?
|
|
|
|
|
|
|
|
|
|