Español
Stammtisch & Café

Función con variablem Parámetro-Typ

 

Michael
Wodrich
*** XProfan 10 ***
Hier una Función con variablem Parámetro-Typ.

Folgendes se de el Función akzeptiert:
- no Parámetro
- Zahl como Parámetro
- String como Parámetro
- Strukturierter Zona como Parámetro
- Zona sin Strukturvariable (aber con vorgegebenen Speicherstellen)
- una Objeto

Damit dejar se wirklich feine Sachen hacer.

Como el Función IsLeapYear() ya en el Codesnippets existiert, Yo ellos hier deponiert.
KompilierenMarcaSeparación
!
:Proc IsLeapYear( [Jahr%] )
: P:I1 - Jahr (1600 - 3999) (ohne Angabe wird das aktuelle Jahr benutzt)
:Proc IsLeapYear( DBDate$ )
: P:S1 - Datenbankdatum ("yyyymmdd")
:Proc IsLeapYear( sDatum# )
: P:B1 - ein Bereich mit Struktur "DatumStru"
:Proc IsLeapYear( bDatum# )
: P:B1 - ein Bereich ohne Struktur (der aber je 2 Bytes für Tag, Monat und Jahr enthält)
:Proc IsLeapYear( oMwDate# )
: P:o1 - ein Objekt der Klasse "MwDate"
: Prüft, ob das Jahr ein Schaltjahr war/ist.
:RETURN%: 1 = Jahr ist ein Schaltjahr, sonst 0

Proc IsLeapYear

    Declare y%

    If %PCount < 1              Parameter fehlen

        y% = Val(Date$(3))  10000   ziehe das Jahr aus dem akt. Datum im DB-Format.

    Else

        If PType$(1) = "&"       Parameter ist numerisch

            Parameters Jahr%
            y% = Jahr%

        ElseIf PType$(1) = "$"   Parameter ist ein String im Datenbankformat

            Parameters DBDate$
            y% = Val(DBDate$)  10000

        ElseIf PType$(1) = "s"   Parameter ist ein Bereich mit Struktur "DatumStru"

            Parameters sDatum#
            y% = sDatum#.Year%

        ElseIf PType$(1) = "b"   Parameter ist ein Bereich ohne Struktur

            Parameters bDatum#    (der aber je 2 Bytes für Tag, Monat und Jahr enthält)
            y% = Word(bDatum#,4)  0+1=Tag, 2+3=Monat, 4+5=Jahr

        ElseIf PType$(1) = "o"   Parameter ist ein Objekt der Klasse "MwDate"

            Parameters oDatum#
            y% = oDatum#.GetYear()
            Else                     Fehler! Liefert FALSE (kein Schaltjahr)
            Return 0

        EndIf

    EndIf

    Case y% < 100 : Add y%, ((Val(Date$(3))  1000000) * 100)
    Return (y% mod 4 = 0) and (y% mod 4000 <> 0) and ((y% mod 100 <> 0) or (y% mod 400 = 0))
    EndProc  IsLeapYear
    ### TEST ### TEST ### TEST ### TEST ### TEST ###
    Struct DatumStru = Day%,Month%,Year%
    Class MwDate = #Year%,SetYear@,GetYear@

    Proc MwDate.SetYear

        Parameters y%
        .Year% = y%

    EndProc

    Proc MwDate.GetYear

        Return .Year%

    EndProc

    Declare Jahr%, sBereich#, bBereich#, oMwDate#
    Dim sBereich#, DatumStru
    Dim bBereich#, 6
    Dim oMwDate#, MwDate
    Cls
    Print "eine Funktion mit variablen Parametern
    "
    Print "Schaltjahr??? (1 = Ja)
    "
    Print "aktuelles Jahr (nein):", IsLeapYear(), " - ohne Parameter"
    Print "1600 (Ja)............:", IsLeapYear(1600), " - Zahl als Parameter"
    Print "1999 (Nein)..........:", IsLeapYear("19990101"), " - Datum im Datenbankformat"
    sBereich#.Year% = 2004
    Print "2004 (Ja)............:", IsLeapYear(sBereich#), " - strukturierter Bereich"
    Word bBereich#,4 = 2005
    Print "2005 (Nein)..........:", IsLeapYear(bBereich#), " - Bereich ohne Struktur"
    oMwDate#.SetYear( 2006 )
    Print "2006 (Nein)..........:", IsLeapYear(oMwDate#), " - Objekt als Parameter"
    Print "
    zur Probe alle mit dem Jahr 2004 (Na gut, OHNE den Parameter-freien):"
    Word bBereich#,4 = 2004
    oMwDate#.SetYear( 2004 )
    Print "2004 (Ja)............:", IsLeapYear(2004), " - Zahl als Parameter"
    Print "2004 (Ja)............:", IsLeapYear("20040101"), " - Datum im Datenbankformat"
    Print "2004 (Ja)............:", IsLeapYear(sBereich#), " - strukturierter Bereich"
    Print "2004 (Ja)............:", IsLeapYear(bBereich#), " - Bereich ohne Struktur"
    Print "2004 (Ja)............:", IsLeapYear(oMwDate#), " - Objekt als Parameter"
    Print "
    (Taste drücken = ENDE)"
    Print "
    %PCount und PType$() in Kombination sind wirklich eine feine Sache ..."
    WaitKey
    Dispose sBereich#
    Dispose bBereich#
    Disponer oMwDate#
    End

17 kB
Kurzbeschreibung: así siehts de
Hochgeladen:04.08.2006
Ladeanzahl105
Descargar
 
Programmieren, das spannendste Detektivspiel der Welt.
04.08.2006  
 




Nico
Madysa

%pCount y PType$() en Kombination son una wirklich feine Sache ...


Ganz mi Meinung!
 
Nico Madysa
04.08.2006  
 



Respuesta


Título del Tema, max. 100 Signo.
 

Systemprofile:

Kein Systemprofil creado. [anlegen]

XProfan:

 Contribución  Font  Smilies  ▼ 

Bitte registro en una Contribución a verfassen.
 

Tema opciones

648 Views

Untitledvor 0 min.
Michael W.30.09.2014
Jörg Sellmeyer30.09.2014

Themeninformationen

Dieses Thema ha 2 subscriber:

Nico Madysa (1x)
Michael Wodrich (1x)


Admins  |  AGB  |  Applications  |  Autores  |  Chat  |  Política de Privacidad  |  Descargar  |  Entrance  |  Ayuda  |  Merchantportal  |  Pie de imprenta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Juegos  |  Búsqueda  |  Support

Ein Projekt aller XProfan, el lo son!


Mi XProfan
Privado Noticias
Eigenes Ablageforum
Temas-Merkliste
Eigene Beiträge
Eigene Temas
Zwischenablage
Cancelar
 Deutsch English Français Español Italia
Traducciones

Política de Privacidad


Wir uso Cookies sólo como Session-Cookies wegen el technischen Notwendigkeit y en uns hay no Cookies de Drittanbietern.

Wenn du hier en unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung de Informationen en unseren Cookies en XProfan.Net a.

Weitere Informationen a unseren Cookies y dazu, como du el Kontrolle darüber behältst, findest du en unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Yo möchte no Cookie