Seite 1 von 1

if-Anweisung in Calc Basic

Verfasst: Mi 14. Sep 2016, 18:05
von efell
Ich habe folgende kleine Funktion in der Basic-IDE geschrieben (dient dazu, zu einer an a übergebenen Anfangszeit, also z.B. 14:30, die voraussichtliche Endzeit eines Fussballspiels zu berechnen, die Rückgabe wäre dann 16:15):

Function ENDE(a as string)
pos=instr(a,":")
stunden=""
minuten=""
for i=1 to pos-1
l=mid(a,i,1)
stunden=stunden+l
next
for i=pos+1 to len(a)
l=mid(a,i,1)
minuten=minuten+l
next
min=val(stunden)*60+val(minuten)+105
minuten=min MOD 60
stunden=(min-minuten)/60
if stunden<10 then h="0"+stunden
else h=""+stunden
end if
m=""+minuten
ENDE=h+":"+m

End Function

Wenn ich die if-Anweisung am Ende herausnehme, läuft auch alles, d.h., wenn ich in der Tabelle eingebe=ENDE("12:00") wird in die Zelle auch 13:45 eingetragen. Lasse ich die if-Anweisung drin, erhalte ich eine Fehlermeldung, und zwar an der Position vom "else" ist dann farbig und durch einen Pfeil markiert und in einem Pop-Up ist zu lesen: Basic-Syntaxfehler.Else/EndIf ohne If. Ob if etc. gross oder klein geschrieben werden, ändert an der Fehlermeldung nicht. Ich habe übrigens LibreOffice 5.0.5.2 installiert

[gelöst] Re: if-Anweisung in Calc Basic

Verfasst: Mi 14. Sep 2016, 18:36
von craig
Hallo,

ich habe den Code neugeordnet, sonst nichts geändert oder getestet:

Code: Alles auswählen

REM  *****  BASIC  *****
Function ENDE(a as string)
	pos=instr(a,":")
		stunden=""
		minuten=""
	for i=1 to pos-1
		l=mid(a,i,1)
			stunden=stunden+l
	next

	for i=pos+1 to len(a)
		l=mid(a,i,1)
			minuten=minuten+l
	next

	min=val(stunden)*60+val(minuten)+105
		minuten=min MOD 60
			stunden=(min-minuten)/60
	if stunden<10 then 
		h="0"+stunden
	else 
		h=""+stunden
	end if
	
	m=""+minuten
		ENDE=h+":"+m

End Function
Gruß

Craig

Re: if-Anweisung in Calc Basic

Verfasst: Do 15. Sep 2016, 01:26
von efell
Hallo Craig,

Danke für den Hinweis. Darauf dass die Anordnung der Codezeilen eine Rolle spielt, wäre ich nie gekommen.

Jetzt läuft es wie gewünscht.

Danke, Bert :D