My very favorite chef in the whole world has an introduction in one of his cookbooks Everyday Mexican and other information on his PBS show. Rick Bayless - who I adore, adore, adore - is a lean, beautiful man. He lost about twenty-five pounds in his mid forties. His exercise routine includes yoga and strength training. However regarding eating he has an interesting take on things.
He believes that one of the reasons we all eat so willy-nilly is that we have forgotten the difference between "everyday" eating and feasting (and he doesn't use the term "cheat" meal because he doesn't make eating wrong). He lost his weight by eating "everyday" food (in our terms this would be clean eating) that was flavorful and healthy - nothing packaged, no real sweets, no cream in the coffee or sugary, fatty drinks of any sort. He ate moderate portions and never overindulged. Then ONCE or TWICE a week, he would eat a feast meal - dinner out, or friends over. He didn't act like a glutton, but he allowed himself to be a bit more full than in the "everyday" mode. He believes that we physically NEED to feel this sense of fullness and it keeps us in check - we don't get wild cravings this way. He lost all the weight - you should see him!
He believes that human culture thrived this way for many, many centuries and it is the loss of feasting that has caused us to feast all the time and brought about our obesity problems. I will tell you - my best results have been when I consciously think in this way. Then I don't feel deprived and then I don't end up ravenously eating McDonalds (not my first choice but it would be something similar, of course). I can really show restraint when I know that I can plan up to two feasts (usually with friends) in a week.
Just some thoughts - and please don't beat yourself up. It isn't worth it. You are wonderful and perfect even after having your "feast" at McDonalds!!