Foros-FIUBA Foros HostingPortal
 FAQ  •  Buscar  •  Wiki  •  Apuntes  •  Planet  •  Mapa  •  Eyeon  •  Chat
Preferencias  •  Grupos de Usuarios
Registrarse  •  Perfil  •  Entrá para ver tus mensajes privados  •  Login
Ver tema siguiente
Ver tema anterior

Responder al tema Ver tema anteriorEnviar por mail a un amigo.Mostrar una Lista de los Usuarios que vieron este TemaGuardar este Tema como un archivoPrintable versionEntrá para ver tus mensajes privadosVer tema siguiente
Autor Mensaje
Fabricio
Nivel 8


Edad: 36
Registrado: 20 Nov 2008
Mensajes: 851
Ubicación: Villa del Parque, barrio turro
Carrera: Civil
CARRERA.civil.3.jpg
MensajePublicado: Lun Jul 16, 2012 6:07 pm  Asunto:  Duda pascal/archivos (error de lectura de disco) Responder citandoFin de la PáginaVolver arriba

Bueno el ejercicio son 2 archivos con numeros de hasta 5 cifras, ordenados en forma creciente, y hay que generar un 3er archivo que contenga todos los numeros de los mencionados anteriormente, ordenados de la misma forma, y los numeros no se repiten entre ambos.

Hice el programa con los procedimientos pero cuando lo voy a compilar me da codigo de error 100, que segun lei es un error de lectura en el disco (estoy usando el Free pascal), dejo el programa:

PHP:
<?php Program Mezcla;
uses crt;
type
    tarnumeros
=file of longint;

procedure mezclar(var arch1,arch2,archtot:tarnumeros);
var
    
num1,num2:longint;
Begin
        reset
(arch1);
        
reset(arch2);
        
rewrite(archtot);
        while(
NOT eof(arch1))AND (NOT eof(arch2))do
            
begin
                read
(arch1,num1);
                
read(arch2,num2);
                if(
num1>num2)then
                    begin
                        write
(archtot,num2);
                        
read(arch2,num2);
                    
end
                
else
                    
begin
                        write
(archtot,num1);
                        
read(arch1,num1);
                    
end;
            
end;
        if(
eof(arch1))then
            
while(not eof(arch2))do
                
begin
                    read
(arch2,num2);
                    
write(archtot,num2);
                
end
        
else
            if(
eof(arch2))then
                
while(not eof(arch1))do
                    
begin
                        read
(arch1,num1);
                        
write(archtot,num1);
                    
end;
        
close(arch1);
        
close(arch2);
        
close(archtot);
end;

procedure listar(var archtot:tarnumeros);
var 
num:longint;
begin
    
while(not eof(archtot))do
        
begin
            read
(archtot,num);
            
writeln(num);
        
end;
end;

var
    
ar1,ar2,arT:tarnumeros;

begin

    assign
(ar1,'C:\Documents and Settings\Administrador\Escritorio\ar1.dat');
    
assign(ar2,'C:\Documents and Settings\Administrador\Escritorio\ar2.dat');
    
assign(arT,'C:\Documents and Settings\Administrador\Escritorio\arT.dat');
    
mezclar(ar1,ar2,arT);
    
listar(arT);
    
readln;
end?>


Si alguno tiene idea donde esta el error le agradezco Very Happy

_________________
[tex]100 \% \ \  {ingeniero}[/tex]

Aries Género:Masculino Dragón OfflineGalería Personal de FabricioVer perfil de usuarioEnviar mensaje privado
Fabricio
Nivel 8


Edad: 36
Registrado: 20 Nov 2008
Mensajes: 851
Ubicación: Villa del Parque, barrio turro
Carrera: Civil
CARRERA.civil.3.jpg
MensajePublicado: Lun Jul 16, 2012 6:18 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

Me habia faltado abrir el archivo con el reset en el procedimiento de listar, le agregue el reset y el close, pero sigue saliendo codigo 100 u.u

_________________
[tex]100 \% \ \  {ingeniero}[/tex]

Aries Género:Masculino Dragón OfflineGalería Personal de FabricioVer perfil de usuarioEnviar mensaje privado
DiegoSLTS
Nivel 6


Edad: 37
Registrado: 14 Ago 2006
Mensajes: 219
Ubicación: Bernal, Quilmes
Carrera: Informática y Sistemas
argentina.gif
MensajePublicado: Lun Jul 16, 2012 6:48 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

¿Los archivos .dat te los dieron o los armáste vos?

Copié tu código y le agregué el reset y close que dijiste y compila sin ningún error. Cuando lo corro (con archivos que inventé) tampoco muestra ningún error pero me da un resultado sin sentido y no se si es por el código o por los archivos que usé.

_________________
No tengo firma...

.... un momento... SI TENGO!

Cancer Género:Masculino Tigre OfflineGalería Personal de DiegoSLTSVer perfil de usuarioEnviar mensaje privadoEnviar emailVisitar sitio web del usuarioYahoo MessengerMSN Messenger
DiegoSLTS
Nivel 6


Edad: 37
Registrado: 14 Ago 2006
Mensajes: 219
Ubicación: Bernal, Quilmes
Carrera: Informática y Sistemas
argentina.gif
MensajePublicado: Lun Jul 16, 2012 6:58 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

Igual, veo que estás accediendo a los archivos en Documents and Settings, por las dudas probá poniendolos en otro lugar menos protegido por Windows, capaz da error de lectura porque Windows no te deja leer ahí.

_________________
No tengo firma...

.... un momento... SI TENGO!

Cancer Género:Masculino Tigre OfflineGalería Personal de DiegoSLTSVer perfil de usuarioEnviar mensaje privadoEnviar emailVisitar sitio web del usuarioYahoo MessengerMSN Messenger
Fabricio
Nivel 8


Edad: 36
Registrado: 20 Nov 2008
Mensajes: 851
Ubicación: Villa del Parque, barrio turro
Carrera: Civil
CARRERA.civil.3.jpg
MensajePublicado: Lun Jul 16, 2012 7:33 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

Los cree yo los archivos, osea abri un txt hice una listita de numeros y lo renombre con .dat , como hago para que los pueda trabajar el pascal a la hora de compilarlos y que de algo coherente?

_________________
[tex]100 \% \ \  {ingeniero}[/tex]

Aries Género:Masculino Dragón OfflineGalería Personal de FabricioVer perfil de usuarioEnviar mensaje privado
koreano
Nivel 9



Registrado: 15 Jul 2010
Mensajes: 1796

Carrera: No especificada
blank.gif
MensajePublicado: Lun Jul 16, 2012 7:35 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

O correlo con permisos de administrador


   OcultoGalería Personal de koreanoVer perfil de usuarioEnviar mensaje privado
Keyword
Nivel 6


Edad: 32
Registrado: 19 Jul 2011
Mensajes: 224

Carrera: Informática
CARRERA.informatica.2.gif
MensajePublicado: Lun Jul 16, 2012 7:37 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

Para hacer eso tenes que usar archivos de texto (se declaran de tipo text si no me acuerdo mal, sería algo así como un file of string).

En ese caso tendrías que ir leyendo linea a linea del archivo de texto, convertir cada línea (transformarla de string al tipo de dato que necesites) y ahi recien usarlo.

O usar file of longint pero en ese caso crearlo desde el mismo pascal.

_________________

Your soul is mine

Leo Género:Masculino Cabra OfflineGalería Personal de KeywordVer perfil de usuarioEnviar mensaje privado
Daiana_Stefanelli
Nivel 2



Registrado: 27 Jun 2009
Mensajes: 19
Ubicación: Bs As
Carrera: Informática
argentina.gif
MensajePublicado: Mar Jul 17, 2012 11:37 am  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

Creo que el problema está en como creas los archivos de prueba, hace un programa en pascal para generar los archivos de prueba.
Yo hice eso y el programa corrio bien, hay un error de código en la función mezclar por eso el resultado del archivo final da mal. La primer lectura de los archivos va afuera del While, sino cada vez que entra vuelve a leer los dos archivos y ahi es donde perdes numeros en el archivo final.


 Género:Femenino  OfflineGalería Personal de Daiana_StefanelliVer perfil de usuarioEnviar mensaje privadoMSN Messenger
Mostrar mensajes de anteriores:      
Responder al tema Ver tema anteriorEnviar por mail a un amigo.Mostrar una Lista de los Usuarios que vieron este TemaGuardar este Tema como un archivoPrintable versionEntrá para ver tus mensajes privadosVer tema siguiente

Ver tema siguiente
Ver tema anterior
Podés publicar nuevos temas en este foro
No podés responder a temas en este foro
No podés editar tus mensajes en este foro
No podés borrar tus mensajes en este foro
No podés votar en encuestas en este foro
No Podéspostear archivos en este foro
No Podés bajar archivos de este foro


Todas las horas son ART, ARST (GMT - 3, GMT - 2 Horas)
Protected by CBACK CrackerTracker
365 Attacks blocked.

Powered by phpBB2 Plus, phpBB Styles and Kostenloses Forum based on phpBB © 2001/6 phpBB Group :: FI Theme :: Mods y Créditos

Foros-FIUBA está hosteado en Neolo.com Cloud Hosting

[ Tiempo: 0.2534s ][ Pedidos: 20 (0.1796s) ]