Creo que no entendi muy bien lo que me tratas de decir con lo de destruir mi instancia de Trash... y aprovecho para comentarte un poco mas mi algoritmo de antes.
Código Delphi
[-]
procedure TLOCounter.DelMultipleComments;
var
i, k: Integer;
Token: String;
Line: String;
Trash: TTrashLine;comentarios y el tipo de comentario que es.
begin
TrimL; TrimR;
for i := 0 to LinesOfCode.Count - 1 do
begin
Line := LinesOfCode.Strings[i];
Token := Copy(Line,1,1);procesar.
If Token = '{' then
begin
Trash := TTrashLine.Create;
Trash.LineNumber := i;
Trash.TrashType := 'MC'; FTrashList.Add(Trash);
TRASH.Destroy en la lista se almacenan valores distintos a los que le entre?
if Line[length(Line)] <> '}' then
begin
k := i;
repeat
"}
inc(k); Line := LinesOfCode.Strings[k];
Token := Copy(Line,length(Line),1);
if Token <> '}' then
begin
Trash := TTrashLine.Create;
Trash.LineNumber := k;
Trash.TrashType := 'MC';
FTrashList.Add(Trash);analizar.
end;
until (Token = '}') or (k = LinesOfCode.Count - 1);ultimo carater de la linea analizada sea "}"
Trash := TTrashLine.Create;
Trash.LineNumber := k;
Trash.TrashType := 'MC';
FTrashList.Add(Trash);
end;
end;
end;
end;
Hasta ahora eso es loq ue tengo hecho. Pero que sucede.. que una linea logica puede ser dividida en 2 o mas lineas fisicas cuando pasa esto:
1.- Se hace referencia a una instruccion muy larga(ejemplo antes citado, Por ejemplo esto:
TClase(MiObjeto.MiFuncion[6].Propiedad1).Elemento[3].Text := TObjeto.Propiedad1.Parametro[Objeto.Propiedad2.Index].Value;
)
2.- Sentencia IF con condiciones muy largas. La solucion que propongo es buscar la palabra THEN y contar todo lo anterior como una sola linea.
P.Ej:
If (TClase(OBjeto).propiedad1.parametro = valor) and (TClase(Objeto).propiedad2.valor = valor) and (Objeto.propiedad3 = 3) then....
3.- EN una linea hay parentesis o cualquiero otro signo que tiene igual uncion que el parentesis o "[" con muchos parametros dentro.
4.- un for, while o repeat... until con muchas condicionales y muy largo.
5. - declaracion de USes muy largas.
Estos son mi sproblemas!!!!