First of all I would definitely stop shopping at gas stations. They are far more expensive than a grocery store.

Also, if your main problem is impulse buying then only bring cash with you when you go out. And only bring what you really need to spend. If you don't have your debit card or credit card you can't use them. It's a lot harder to part with actual cash than it is electronic money.

You can also try the envelope method. When you get paid, put specific dollar amounts in envelopes labeled "rent", "gas", "utilities", "food", "entertainment", and "savings". Every month take the envelope with marked "savings" to the bank and put it into a savings account that accrues interest and DON'T touch it!!!