ayuda!!
Publicado por demon (3 intervenciones) el 24/02/2009 16:12:14
Tengo que realizar un programa, os cuento un poco: El programa lee un texto de un fichero, palabra a palabra (para ello lo que hago es almacenar cada palabra en un packed array) (este texto esta en minusculas), y lo busca en otro fichero (almaceno las palabras en un array bidimensional) (en este fichero hay una palabra en cada linea), y si esta lo pasa a mayusculas. Bueno lo tengo hecho pero tengo un problema con el procedimiento leerpalabra, resulta que no porque pero no me lee busca la ultima palabra de una linea cualquiera. (el enunciado dice que las palabra estaran separadas por coma, punto, espacio o salto de linea), pongo el procedimiento de leer palabra:
procedure leerpal (var datos:text;var pal:Tpalabra);
var
i:integer;
c:char;
begin
i:=1;
read(datos,c);
while (i<=20) do
begin
if (*not eoln (datos) and*) (c<>' ') and (c<>',') and (c<>'.') then
begin
pal[i]:=c;
write(pal[i]);
i:=i+1;
read(datos,c);
(*write(pal[i]);
i:=i+1;*)
end
else
begin
if eoln (datos) then pal[i]:=c;
i:=21;
end;
end;
end;
La palabra tiene como maximo 20 caracteres y en el programa principal hago la llamada asi:
while not eof(datosp2a) do
begin
leerpal(datosp2a,palabra);
esta:=esdestac(palabra,tabladest);
if esta then
begin
write(' esta');
writeln;
AMay(palabra,palabradest);
writeln;
end
else
write('no esta');
writeln;
inicializar(palabra);
end;
Si alguien se le ocurre algo se lo agradecere muchisimo!!!!, la busqueda la realiza perfectamente!!
procedure leerpal (var datos:text;var pal:Tpalabra);
var
i:integer;
c:char;
begin
i:=1;
read(datos,c);
while (i<=20) do
begin
if (*not eoln (datos) and*) (c<>' ') and (c<>',') and (c<>'.') then
begin
pal[i]:=c;
write(pal[i]);
i:=i+1;
read(datos,c);
(*write(pal[i]);
i:=i+1;*)
end
else
begin
if eoln (datos) then pal[i]:=c;
i:=21;
end;
end;
end;
La palabra tiene como maximo 20 caracteres y en el programa principal hago la llamada asi:
while not eof(datosp2a) do
begin
leerpal(datosp2a,palabra);
esta:=esdestac(palabra,tabladest);
if esta then
begin
write(' esta');
writeln;
AMay(palabra,palabradest);
writeln;
end
else
write('no esta');
writeln;
inicializar(palabra);
end;
Si alguien se le ocurre algo se lo agradecere muchisimo!!!!, la busqueda la realiza perfectamente!!
Valora esta pregunta


0