(01-10-2023, 09:01 PM)Kernelpanic Wrote: I have now discovered something that is very peculiar; maybe really a mistake. If I run the program below, i.e. press F5, then it works. But if I press F5 again, the output only appears like a flashlight, and nothing else. So, no more output.
I have now tested this with three other programs, but everything is normal there, as usual.
Well, what is go there wrong?
PS: It calculates my electricity price increase since October 2022
Code: (Select All)$Console:Only
Option _Explicit
Dim As Double abOktVerbrauchPreis, jan2023VerbrauchPreis, bisOktVerbrauchPreis
Dim As Double alt2022Grundpreis, neuJan2023Grundpreis
Dim As Double okt2022ProzentErhoehung, jan2023ProzentErhoehung, grundpreisProzent
Dim As Double prozentualeGesamterhoehung, prozentGesamtAbOkt2022
'Grundpreis bis Ende 2022 und ab Januar 2023
alt2022Grundpreis = 7.90
neuJan2023Grundpreis = 9.90
'Alter Verbrauchspreis bis zum 1. Okt. 2022
bisOktVerbrauchPreis = 27.95
'Neuer Verbrauchspreis ab 1. Okt. 2022
abOktVerbrauchPreis = 32.25
'Verbraucherpreis ab Januar 2023
jan2023VerbrauchPreis = 40.54
Locate 2, 3
Print "Vattenfall Strompreiserhoehungen seit dem 1. Oktober 2022"
Locate 3, 3
Print "========================================================="
Locate 5, 3
Print "Erhoehung des Verbraucherpreises ab 1. Okt. 2022 pro Monat"
Locate 6, 3
Print "von 27.95 auf 32.25 Euro. Grundpreis blieb bei 7.90 Euro."
okt2022ProzentErhoehung = ((abOktVerbrauchPreis * 100) / bisOktVerbrauchPreis) - 100
Locate 8, 3
Print Using "Das entspricht einer Preiserhoehung von ##.##%"; okt2022ProzentErhoehung
Locate 11, 3
Print "Erhoehung des Verbraucherpreises ab 1. Januar 2023 pro Monat"
Locate 12, 3
Print "von 32.25 auf 40.54 Euro. Grundpreiserhoehung von 7.90 auf 9.90 Euro."
jan2023ProzentErhoehung = ((jan2023VerbrauchPreis * 100) / abOktVerbrauchPreis) - 100
Locate 14, 3
Print Using "Das entspricht einer Preiserhoehung von ##.##%"; jan2023ProzentErhoehung
grundpreisProzent = ((9.90 * 100) / 7.90) - 100
Locate 16, 3
Print Using "Beim Grundpreis entspricht dies einer Erhoehung um ##.##%"; grundpreisProzent
'Prozentuale Erhoehungen addieren
prozentualeGesamterhoehung = okt2022ProzentErhoehung + jan2023ProzentErhoehung + grundpreisProzent
Locate 18, 3
Print "Addiert man alle prozentualen Erhoehungen kommt man auf eine"
Locate 19, 3
Print Using "Erhoehung des Strompreises seit 1. Okt 2022 bis 1. Januar 2023 auf ##.##%"; prozentualeGesamterhoehung
prozentGesamtAbOkt2022 = ((jan2023VerbrauchPreis * 100) / bisOktVerbrauchPreis) - 100
Locate 22, 3
Print "Prozentuale Erhoehung des Verbraucherpreises ab 1. Oktober 2022"
Locate 23, 3
Print Using "bis 1. Januar 2023: ##.##%"; prozentGesamtAbOkt2022
'Fuer Press Key . . .
Locate 27, 0
End
From the error message that you're reporting, you're basically getting a "Locate out of bounds" type glitch. Why are you getting it on the second run and not the first?? I dunno! Maybe windows has some sort of setting where it tracks width and height of a console on a per instance ran.
Like mnrvovrfc mentioned, I think the problem will go away as long as you specify the size of the screen yourself. Add a simple line WIDTH 120, 30 at the top of your code, under the $CONSOLE:ONLY, and I don't think you'll have any issues anymore.
Give it a test or two, and let us know what happens for you.