a) have
been dreaming about for a long time.
I have been
dreaming about finishing school for a long time. I have been dreaming about
becoming a university student (for a long time). My parents have been dreaming
about buying a summer cottage (for a long time)
b) have
been doing for a long time
I have been
studying English for a long time. I have been reading this book for two weeks (или for a long time, как хотите) My parents have been working at the factory for
many years (или for
a long time)