benutzerdefinierte funktion

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

kannenklaus
*****
Beiträge: 319
Registriert: Mi, 14.12.2005 08:08
Wohnort: freising - oder dort, wo das bier herkommt

benutzerdefinierte funktion

Beitrag von kannenklaus »

hallo zusammen.

für ein einfaches bewertungsschema habe ich eine benutzerdefinierte funktion geschrieben. argumente die nicht gleich

- fahrbahn,
- damm,
- einschnitt,
- bankett,
- brücke größer 50 m bzw.
- brücke kleiner 50 m

sind, sollen nur den wert "-" bekommen. hier stellt sich mir die frage, ob das im code nicht kürzer geht wie im folgenden beispiel:

Code: Alles auswählen

Function B87Fl(konMerkmal As String) As String
    If konMerkmal = "Fahrbahn" Then
    B87Fl = "sehr hoch"
    ElseIf konMerkmal = "Damm" Then
    B87Fl = "sehr hoch"
    ElseIf konMerkmal = "Einschnitt" Then
    B87Fl = "sehr hoch"
     ElseIf konMerkmal = "Bankett" Then
    B87Fl = "sehr hoch"
    ElseIf konMerkmal = "Brücke kleiner 50 m" Then
    B87Fl = "sehr hoch"
        ElseIf konMerkmal = "Brücke größer 50 m" Then
    B87Fl = "hoch"
    ElseIf konMerkmal <> "Fahrbahn" or konMerkmal <> "Damm" OR konMerkmal <> "Einschnitt" _
    OR konMerkmal <> "Bankett" OR konMerkmal <> "Brücke kleiner 50 m" OR konMerkmal <> "Brücke größer 50 m" then
    B87Fl = "-" 
    End If
End Function
freue mich auf eine antwort

grüße

klaus
ykcim
*****
Beiträge: 324
Registriert: Di, 29.07.2003 15:22
Wohnort: Neu-Isenburg
Kontaktdaten:

Beitrag von ykcim »

Code: Alles auswählen

Function B87Fl(konMerkmal As String) As String
    Sehrhoch = Array("Fahrbahn","Damm","Einschnitt","Bankett","Brücke kleiner 50 m")
    B87Fl = "-"
    For i=0 to ubound(sehrhoch) 
      if konMerkmal=sehrhoch(i) then B87Fl = "sehr hoch"
    next  
    If konMerkmal = "Brücke größer 50 m" Then B87Fl = "hoch"
End Function
mfg
Michael
__
FAQ zu Starbasic -> http://www.starbasicfaq.de
kannenklaus
*****
Beiträge: 319
Registriert: Mi, 14.12.2005 08:08
Wohnort: freising - oder dort, wo das bier herkommt

Beitrag von kannenklaus »

hallo michael,

bei der folg. codezeile bekomme ich die fehlermeldung "basic laufzeifehler variable nicht definiert."

Code: Alles auswählen

    Sehrhoch = Array("Fahrbahn","Damm","Einschnitt","Bankett","Brücke kleiner 50 m")
habe den array schon mit dim und variant bzw. string deklariert - ohne erfolg.

grüße

klaus
ykcim
*****
Beiträge: 324
Registriert: Di, 29.07.2003 15:22
Wohnort: Neu-Isenburg
Kontaktdaten:

Beitrag von ykcim »

Du hast wahrscheinlich Option Explicit eingestellt.
Dann sollte es so gehen

Code: Alles auswählen

    dim sehrhoch() as string
    dim i as integer
    Sehrhoch = Array("Fahrbahn","Damm","Einschnitt","Bankett","Brücke_ kleiner 50 m")
......
mfg
Michael
Zuletzt geändert von ykcim am Mo, 03.04.2006 16:06, insgesamt 1-mal geändert.
__
FAQ zu Starbasic -> http://www.starbasicfaq.de
kannenklaus
*****
Beiträge: 319
Registriert: Mi, 14.12.2005 08:08
Wohnort: freising - oder dort, wo das bier herkommt

[gelöst]:benutzerdefinierte funktion

Beitrag von kannenklaus »

hallo michael,

kleine dinge große wirkung. bei der deklaration von sehrhoch haben die klammern gefehlt.

danke für deine hilfe

grüße klaus
Antworten