Autor |
Mensaje |
ElHijodeDios
Nivel 2
Registrado: 11 Dic 2011
Mensajes: 11
Carrera: Sistemas
|
|
Hola gente ;
Estoy preparando el coloquio de algo 1 y me surgio una duda si me dicen que
al aparear un archivo no debe cargarse en memoria este debe pasarse a una
tabla y trabajar con la tabla (que tiene la misma estructura de registros) y
dsp volver al archivo para guardar lo qctualizado ?? o es algo totalmente
diferente ?? si alguien sabe muchas gracias.
slds.
|
|
|
|
|
|
|
|
|
Daniela
Nivel 7
Edad: 37
Registrado: 19 Ene 2006
Mensajes: 420
Ubicación: Un reino Muy Muy Lejano
Carrera: Civil y Sistemas
|
|
Si no te dice que actualices el archivo para qué lo vas a hacer? -.-?
|
|
|
|
_________________
"Pensá en Rosa" by Edgar
|
|
|
|
|
Daniela
Nivel 7
Edad: 37
Registrado: 19 Ene 2006
Mensajes: 420
Ubicación: Un reino Muy Muy Lejano
Carrera: Civil y Sistemas
|
|
Por ahi está un poco confusa la pregunta... por ese "no" que anda en el medio.
Si la consigna es actualizar el archivo es asi como dijiste, podrías ser más especifico porfa?
|
|
|
|
_________________
"Pensá en Rosa" by Edgar
|
|
|
|
|
koreano
Nivel 9
Registrado: 15 Jul 2010
Mensajes: 1796
Carrera: No especificada
|
|
Tabla? Básicamente lo que tratás de evitar es cargar el archivo entero en memoria sino ir leyendo/editando/escribiendo de a pedazos para no usar memoria en exceso. La contraparte es que perdés en velocidad de lectura/escritura. Solo tenés que evaluar la disponibilidad de memoria vs la disponibilidad de tiempo.
|
|
|
|
|
|
|
|
|
Daniela
Nivel 7
Edad: 37
Registrado: 19 Ene 2006
Mensajes: 420
Ubicación: Un reino Muy Muy Lejano
Carrera: Civil y Sistemas
|
|
Quizás está trabajando con una tabla de registros porque quiere tener todo el archivo entero :/ pero si, son bastante feas las tablas.
Si es posible hay que hacerlo como dice koreano, ir leyendo/calculando/escribiendo. Pero depende del ejercicio si se puede hacer de a un registro o no
|
|
|
|
_________________
"Pensá en Rosa" by Edgar
|
|
|
|
|
ElHijodeDios
Nivel 2
Registrado: 11 Dic 2011
Mensajes: 11
Carrera: Sistemas
|
|
Si si la idea es actualizar el archivo tenes uno maestro y otro de novedades que tiene los datos a actualizar pero si lo que hay q hacer es actualizar el archivo maestro pero sin cargarlo en memoria y leyendolo una sola vez
lo de tabla lo vi en un libro el de fontela lo q ac es pasar el archivo a un array y de ahi lo va actualizando lo q decis koreano no lo entiendo
|
|
|
|
|
|
|
|
|
Daniela
Nivel 7
Edad: 37
Registrado: 19 Ene 2006
Mensajes: 420
Ubicación: Un reino Muy Muy Lejano
Carrera: Civil y Sistemas
|
|
Lo de la tabla sirve si sabés el número de elementos.
Si tenés dos archivos por ahí (dependiendo del enunciado) podrías actualizar uno a uno los registros del archivo (como dice koreano) sin tener que cargar todo el archivo entero...
Por ejemplo si en los archivos: Maestro y novedades, hay algún orden o algo para que los puedas ir tomando de a uno...
al registro 1 de maestro lo cargás en memoria en una variable tipo registro, cargás los datos del archivo novedades, operás y guardás en el archivo maestro el resultado, así uno a uno.
|
|
|
|
_________________
"Pensá en Rosa" by Edgar
|
|
|
|
|
Daniela
Nivel 7
Edad: 37
Registrado: 19 Ene 2006
Mensajes: 420
Ubicación: Un reino Muy Muy Lejano
Carrera: Civil y Sistemas
|
|
Igual la lectura/escritura tb consume memoria, a veces escribir todo de una es mejor
Qué cátedra es?
|
|
|
|
_________________
"Pensá en Rosa" by Edgar
|
|
|
|
|
Sebastian Santisi
Administrador Técnico
Edad: 42
Registrado: 23 Ago 2005
Mensajes: 17451
|
|
koreano escribió:
|
Tabla? Básicamente lo que tratás de evitar es cargar el archivo entero en memoria sino ir leyendo/editando/escribiendo de a pedazos para no usar memoria en exceso. La contraparte es que perdés en velocidad de lectura/escritura. Solo tenés que evaluar la disponibilidad de memoria vs la disponibilidad de tiempo.
|
¿De dónde sacaste que trabajar de a pedazos es más lento?
El cuello de botella en las operaciones con disco, es el propio tiempo de acceso a disco, que está entre mil y un millón de veces que el tiempo de acceso a memoria. Y más allá de que el tiempo de procesamiento es totalmente despreciable con el tiempo que perdés esperando datos; tanto el hardware como el kernel cachean y bufferean de lo lindo, por lo que no importa si pediste leer 1byte o 10MB; de todos modos, va a levantar preventivamente en memoria lo que pueda cargar.
|
|
|
|
_________________
|
|
|
|
|
ezee
Nivel 3
Edad: 32
Registrado: 21 Jul 2011
Mensajes: 32
Carrera: Informática
|
|
Mmmm no se si entendi bien, yo tambien estoy preparando el coloquio para dar el miercoles, y la verdad que te estas contradiciendo creo.
Se supone que si no entra en memoria lo que NO tenes que hacer es pasarlo a una tabla porque no entraria. En los apareos por lo general no pasas los archivos a la memoria, sino que trabajas desde ellos y vas haciendo las modificaciones respectivas. El tema de la memoria por lo general es una complicacion en el sentido de que si tenes que ordenar un archivo o algo, donde por lo general lo que uno hace es pasarlo a una tabla y ordenarlo como a un vector comun y corriente, pero en vez de hacer eso se trabaja como un archivo de acceso directo, creando un indice para justamente no volcarlo todo a la memoria.
Pero segun mi opiñon, lo que NO tenes que hacer es pasarlo a una tabla porque no te va a entrar en memoria, que es lo que te estan diciendo. Y el tema de los apareos aveces puede pasar que tengas que aparear un archivo con una tabla pero ahi tendrias que simular la 'lectura adelantada' de una tabla, que no es tan complicado pero bueno...
Espero que te pueda haber ayudado y pensa que tambien la estoy preparando jajaja
Saludoss
|
|
|
|
_________________ "El fracaso es solo la prueba que antecede al éxito..."Albert Einstein
|
|
|
|
|
Symbolic
Nivel 6
Edad: 33
Registrado: 25 Ago 2011
Mensajes: 204
Ubicación: Avellaneda
Carrera: Informática
|
|
De seguro te dan el maestro ordenado y el de novedades te dicen que es de acceso directo o tambien ordenado y vas a tener que hacer corte de control, a mi me tomaron eso y lo resolví así.
|
|
|
|
|
|
|
|
|
ElHijodeDios
Nivel 2
Registrado: 11 Dic 2011
Mensajes: 11
Carrera: Sistemas
|
|
Por ejemplo
leer(maestro,reg1,finarchivo);leernovedades(novedades,reg2finNov);
while(not finarchivo)and(not finNov)do
begin
apreo(maestro,novedades)
end
en apareo habria la logica necesaria del problema y si suponete tengo q usar el archivo maestro para otra cosa ahi ya no lo puedo leer mas porque eso seria cargarlo en memoria ? porque es eso lo de cargar en memoria lo que me rompe la cabeza lo demas ya lo tngo creo
gracias por responder
|
|
|
|
|
|
|
|
|
ElHijodeDios
Nivel 2
Registrado: 11 Dic 2011
Mensajes: 11
Carrera: Sistemas
|
|
|
|
|
Daniela
Nivel 7
Edad: 37
Registrado: 19 Ene 2006
Mensajes: 420
Ubicación: Un reino Muy Muy Lejano
Carrera: Civil y Sistemas
|
|
ahi podrías ver de usar los índices como dice ezee
|
|
|
|
_________________
"Pensá en Rosa" by Edgar
|
|
|
|
|
Symbolic
Nivel 6
Edad: 33
Registrado: 25 Ago 2011
Mensajes: 204
Ubicación: Avellaneda
Carrera: Informática
|
|
Pero si tenes que listar, ponele, algún campo de algún registro, o guardarlo en un vector, lo haces a medida que actualizas, o sea antes de leer el próximo. La idea es pasar una sola vez por ambos archivos o al menos el archivo maestro, que seguro esta ordenado por clave.
|
|
|
|
|
|
|
|
|
|