Min- / Max - Function
Moderator: Moderatoren
Min- / Max - Function
Liee Leute,
gibt es in StarBasic keine Min- / Max - Funktion? Wenn nicht, hat jemand so etwas mal programmiert oder weiss wo so etwas steht?
Danke für Eure Hilfe
Gruß Markus
gibt es in StarBasic keine Min- / Max - Funktion? Wenn nicht, hat jemand so etwas mal programmiert oder weiss wo so etwas steht?
Danke für Eure Hilfe
Gruß Markus
Re: Min- / Max - Function
Hallo Markus, im ersten Moment war ich auch verblüfft: Diese Funktionen gibt es offensichtlich nicht. Beim zweiten Nachdenken ist das aber auch verständlich: Sie können nur das Ergebnis innerhalb eines bestimmten Bereichs liefern; dieser Bereich muss geeignet definiert sein. Davon sind auch die Vergleichsverfahren abhängig: Zahlen und auch Datumswerte werden anders geordnet als Texte.
Du musst also zunächst sagen, für welchen Bereich du diese Funktionen benötigst. Für Calc-Funktionen gibt es sie. Für andere Zwecke können dir vielleicht Tipps gegeben werden; bei Datenbanken beispielsweise kann MIN/MAX für Spalten bestimmt und über SELECT zurückgegeben werden. Jürgen
Du musst also zunächst sagen, für welchen Bereich du diese Funktionen benötigst. Für Calc-Funktionen gibt es sie. Für andere Zwecke können dir vielleicht Tipps gegeben werden; bei Datenbanken beispielsweise kann MIN/MAX für Spalten bestimmt und über SELECT zurückgegeben werden. Jürgen
Situation: LibO 3.6 auf Win 7 Home Premium (64-bit) mit MySQL (localhost) über JDBC
Re: Min- / Max - Function
Hallo Jürgen,
ich benötige die Funktion in einer Programmroutine. Das ist also völlig unabhängig von einem Zellbereich. Der Wunsch wäre eine beliebige Anzahl von Argumenten zu haben und dann den maximalen Wert zu erhalten. Im Grunde ist es ja einfach für eine bestimmte Anzahl von Argumenten
Ich weiss nur nicht wie ich die Anzahl der Argumente variabel halten kann.
Gruß Markus
ich benötige die Funktion in einer Programmroutine. Das ist also völlig unabhängig von einem Zellbereich. Der Wunsch wäre eine beliebige Anzahl von Argumenten zu haben und dann den maximalen Wert zu erhalten. Im Grunde ist es ja einfach für eine bestimmte Anzahl von Argumenten
Code: Alles auswählen
Function Max(Item1 as Integer, Item2 As integer)
If Item1 >= Item2 then
Max = Item1
Else
Max = Item2
EndIf
End Function
Gruß Markus
Re: Min- / Max - Function
Dafür gibt es grundsätzlich zwei Möglichkeiten. Das eine sind optionale Parameter bei Definition und Aufruf der Funktion, siehe den Abschnitt "Optional Parameters" (Seite 32) im Basic Programmers Guide. Das andere Verfahren ist in deinem Fall erheblich besser, weil alle Parameter vom gleichen Typ sind, nämlich ein Array of Integers, das du einfach in einer Schleife durchlaufen kannst; mehr dazu steht bei Andrew's Macros im Abschnitt Language > Variable > Arrays.Shirkan hat geschrieben:Ich weiss nur nicht wie ich die Anzahl der Argumente variabel halten kann.
Solange dein Array nicht mehrere Hundert Einträge hat, dürfte die Zeit der Prüfung nicht zu spüren sein. Viel Erfolg! Jürgen
Situation: LibO 3.6 auf Win 7 Home Premium (64-bit) mit MySQL (localhost) über JDBC
Re: Min- / Max - Function
Hallo
Noch Fragen?
Karolus
Code: Alles auswählen
Sub Main
oFunctionAccess = createUnoService( "com.sun.star.sheet.FunctionAccess" )
args() = array(-5, 2, 8)
result = oFunctionAccess.callFunction( "MIN", args() )
print result
End Sub
Karolus
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
Re: Min- / Max - Function
Liebe Leute,
ich komme mit dem Übergeben eines Arrays nicht zurecht. Kann da mal jemand drauf schauen?
Gruß Markus
ich komme mit dem Übergeben eines Arrays nicht zurecht. Kann da mal jemand drauf schauen?
Code: Alles auswählen
Sub Main
Print Übergabetest (1,2,8)
End Sub
Function Übergabetest (args() As Interger) As Integer
Übergabetest = args(1)
End Function
Re: Min- / Max - Function
Ok, ich habe die Umlaute entfernt und die Variablendeklaration mit Integer entfernt. Leider wird mir jede einzige Zahl des Arrays mit 1 angezeigt:
Gruß Markus
Code: Alles auswählen
Sub Main
Print uebergabetest (Array(1,2,8))
End Sub
Function uebergabetest (args()) As Integer
uebergabetest = args(1)
End Function
Re: Min- / Max - Function
Sorry,
hat sich erledigt, ich habe das "Array" in der Übergabe übersehen.
Dank an alle, die sich beteiligt haben-
Gruß Markus
hat sich erledigt, ich habe das "Array" in der Übergabe übersehen.
Dank an alle, die sich beteiligt haben-
Gruß Markus