Autor |
Mensaje |
Fabricio
Nivel 8
Edad: 36
Registrado: 20 Nov 2008
Mensajes: 851
Ubicación: Villa del Parque, barrio turro
Carrera: Civil
|
|
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
|
|
|
|
_________________
|
|
|
|
|
Fabricio
Nivel 8
Edad: 36
Registrado: 20 Nov 2008
Mensajes: 851
Ubicación: Villa del Parque, barrio turro
Carrera: Civil
|
|
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
|
|
|
|
_________________
|
|
|
|
|
DiegoSLTS
Nivel 6
Edad: 38
Registrado: 14 Ago 2006
Mensajes: 219
Ubicación: Bernal, Quilmes
Carrera: Informática y Sistemas
|
|
¿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!
|
|
|
|
|
DiegoSLTS
Nivel 6
Edad: 38
Registrado: 14 Ago 2006
Mensajes: 219
Ubicación: Bernal, Quilmes
Carrera: Informática y Sistemas
|
|
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!
|
|
|
|
|
Fabricio
Nivel 8
Edad: 36
Registrado: 20 Nov 2008
Mensajes: 851
Ubicación: Villa del Parque, barrio turro
Carrera: Civil
|
|
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?
|
|
|
|
_________________
|
|
|
|
|
koreano
Nivel 9
Registrado: 15 Jul 2010
Mensajes: 1796
Carrera: No especificada
|
|
O correlo con permisos de administrador
|
|
|
|
|
|
|
|
|
Keyword
Nivel 6
Edad: 33
Registrado: 19 Jul 2011
Mensajes: 224
Carrera: Informática
|
|
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
|
|
|
|
|
Daiana_Stefanelli
Nivel 2
Registrado: 27 Jun 2009
Mensajes: 19
Ubicación: Bs As
Carrera: Informática
|
|
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.
|
|
|
|
|
|
|
|
|
|
|
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 CrackerTracker365 Attacks blocked.
|