[ Foro de Pascal ]
Hola, perdonar pero es que llevo varios dias dandole vueltas a un ejercicio que tengo que hacer y me da error.
Esto es lo que tengo hecho
PROCEDURE LeerHashtags (VAR registro: TTwitter; VAR fichero_texto: text; numero_tweets: integer);
VAR
control_indice, control_indice2: integer;
caracter: char;
BEGIN
assign(fichero_texto, RUTA_FICHERO_TWEETS_TEXTO);
reset(fichero_texto);
FOR control_indice := 1 TO numero_tweets DO
if not eoln(fichero_texto) then
BEGIN
read(fichero_texto, caracter);
for control_indice2:=1 to registro[control_indice].hashtags.numerohashtags do
BEGIN
if (caracter = almohadilla) then
REPEAT
read(fichero_texto, caracter);
registro[control_indice].hashtags.listahashtag[control_indice2] := registro[control_indice].hashtags.listahashtag[control_indice2] + caracter;
UNTIL (caracter = espacio);
END;
END;
close(fichero_texto);
END;
El problema esta en que solo lee el primer hashtag del primer tweet, cuando tendria que leer todos y hacer una lista con ellos.
?Cual puede ser el error?
Añade algún WriteLn que te ayude a comprobar qué valores van tomando tus variables, o depura paso a paso si tu entorno o permite. La lógica parece buena, pero la función no es autocontenida, sino que usa cosas como "registro[control_indice].hashtags.numerohashtags", que son parámetros que recibe desde el exterior, y otra persona no podrá probarlo sin esa información adicional. Basta con que alguno de esos datos esté llegando de forma incorrecta para que la función parezca fallar... sin que sea realmente culpa suya.
(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)