Pascal/Turbo Pascal - Ayuda con listas-->borrar

 
Vista:

Ayuda con listas-->borrar

Publicado por Tamara (5 intervenciones) el 29/08/2008 12:01:36
Hola, estoy haciendo un programa en el que tengo que recorrer una lista compuesta a su vez por otra lista de registros. Una de las cosas que tengo que hacer es borrar de la segunda lista las palabras que aparezcan un determinado numero de veces que nos dirá el usuario. Llevo un tiempo mirando el código y exáctamente no se donde falla. ¿Me podrían ayudar? Les dejo el código para que me lo miren. Gracias.

function borrar_rec(lista:ppal;var fich:file of string;apar:integer):ppal;
var aux,rec:ppal;
begin
if (lista<>nil) and (lista^.apariciones<=apar)
then rec:=borrar_rec(lista^.siguiente,fich,apar);
if (lista=nil)
then rec:=lista
else if (lista^.apariciones=apar)
then begin
write(fich,lista^.palabra);
aux:=lista^.siguiente;
dispose(lista);
rec:=borrar_rec(aux,fich,apar);
end;

borrar_rec:=rec;
end;

procedure borrar(lista:plong);
var aux,cab:plong;
fich:file of string;
apar:integer;
begin
aux:=lista;
cab:=lista;
assign(fich,'I:palabras_borradas.dat');
rewrite(fich);
writeln('Indique el numero de aparciones por el que desea borrar las palabras');
read(apar);
while (aux<>nil) do
begin
aux^.puntero:=borrar_rec(aux^.puntero,fich,apar);
if (aux^.puntero=nil)
then begin
cab^.siguiente:=aux^.siguiente;
dispose(aux);
aux:=cab
end;
cab:=aux;
aux:=aux^.siguiente
end;
close(fich);
end;
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Ayuda con listas-->borrar

Publicado por Diego Romero (996 intervenciones) el 29/08/2008 15:24:00
Sería buena idea que nos dijeras qué es lo que falla en primer lugar :D

¿Algún mensaje de error?, ¿algo que no funciona como debería?, ¿no le encuentras la forma de hacer algo en concreto?.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda con listas-->borrar

Publicado por adalberto (17 intervenciones) el 01/09/2008 00:23:11
#include <stdio.h>
#include <string.h>

int main ( )
{
char carpeta[30],dir[100],nomarch[40],httpmsj[ ]="GET /prueba.txt HTTP/1.0",*p,*parse,linea[100];
int n=0;
FILE *archivo;


if(((p=strstr(httpmsj,"HTTP/1.0"))!=NULL)||((p=strstr(httpmsj,"HTTP/1.1"))!=NULL))

{

parse=strtok(httpmsj,"/");



parse=strtok(NULL," ");




strcpy(nomarch,parse);


}







/*se arma la ruta de acceso*/




strcpy(carpeta,"/etc/");


sprintf(dir,("%s%s"),carpeta,nomarch);

printf("%s ",dir);


archivo=fopen(dir,"rt");

if(archivo)
printf("Se abrió el archivo %s del directorio %s ",nomarch, dir);

fread(&linea,sizeof(linea),1,archivo);

printf("%s ",linea);

return 0;

}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar