English
Source / code snippets

Procedures Zeichenkettenfunktionen

 

CompileMarkSeparation
Source wurde am 15.07.2007 aus der MMJ-Quellcodesammlung (Dietmar Horn) in die Babyklappe auf XProfan.Com abgelegt:
Zeichenkettenfunktionen und -prozeduren
Lauffähig ab Profan-Version 5.0
Testet, ob eine ZK aus nur Leerzeichen besteht oder  ist
Syntax: Empty$(<cZeichenkette>)
Parameter: <cZeicchenkette> ist die ZK, die überprüft werden soll
Rückgabe: 1, wenn die Zeichenkette nur aus Leerzeichen besteht oder leer ist, sonst 0
DEF Empty$(1) if(trim$($(1))=,1,0)
Testet, ob das erste Zeichen der übergebenen ZK eine Zahl ist
Syntax: IsDigit%(<cZeichenkette>)
Parameter: <cZeichenkette> ist die ZK, die überprüft werden soll
Rückgabe: 1, wenn das 1. Zeichen der Zeichenkette eine Zahl ist, sonst 0
DEF IsDigit%(1) (ord($(1))>47) and (ord($(1))<58)
Anzahl des Auftretens einer Sequenz in einer Zeichenkette
Syntax (<cZeichenfolge>,<cSuchfolge>)
Parameter: <cZeichenfolge> gibt die Zeichenkette an, in der die Sequenz <cSuchfolge>
gesucht werden soll
<cSuchfolge> ist die Zeichenfolge, die in der Zeichenkette <cZeichenfolge> gesucht wird
Rückgabe: Die Funktion liefert einen Wert, der angiebt, wie häufig die Sequenz <cSuchfolge>
in der Zeichenkette <cZeichenfolge> gefunden wurde
DEF NumAt(2) (Len($(1))-Len(Translate$($(1),$(2),)))/Len(§(2))
Wandelt in Zeichenketten, die eine Floatzahl darstellen das Dezimakomma in einen
Dezimalpunkt um oder umgekehrt, je nach übergebener Zeichenkette
Syntax: FloatZK$(<cZeichenkette>) z. B. 4711,1 oder 4711.1
Parameter: <cZeichenkette> ist eine ZK, die eine Floatzahl darstellt, in der als Dezimal-
trennzeichen entweder ein Punkt oder ein Komma vorhanden ist
Rückgabe: Die ZK <cZeichenkette>, in der entweder das Dezimaltrennzeichen Komma durch
einen Punkt ersetzt wurde, oder der Punkt durch ein Komma
Enthält die Zeichenfolge weder Komma noch Punkt, geschieht nichts
DEF FloatZK$(1) if(Instr(,,$(1))<>0,Translate$($(1),,,.),Translate$($(1),.,,))

Proc Rtrim$

    ----------
    Löscht alle rechten Leerzeichen
    Syntax: RTrim$ <cZeichenkette>
    Parameter: <cZeichenkette> ist die ZK, in der alle rechten Leerzeichen gelöscht
    werden sollen
    Rückgabe: Die übergebene ZK <cZeichenkette> ohne führende Leerzeichen
    parameters zk$
    declare lg%,rc$
    lg%=len(zk$)

    While Mid$(zk$,lg%,1)=

        dec lg%
        case lg%=0 : break

    EndWhile

    if lg%>0

        rc$=Left$(zk$,lg%)

    else

        rc$=

    endif

    return rc$
    EndProc  RTrim$

    Proc LTrim$

        ----------
        Löscht alle linken Leerzeichen
        Syntax: LTrim$ <cZeichenkette>
        Parameter: <cZeichenkette> ist die ZK, in der alle linken Leerzeichen gelöscht
        werden sollen
        Rückgabe: Die übergebene ZK <cZeichenkette> ohne nachfolgende Leerzeichen
        parameters zk$

        While Left$(zk$,1)=

            zk$=Del$(zk$,1,1)

        EndWhile

        Return zk$
        EndProc  LTrim$

        Proc ZulZ

            --------
            Testet eine ZK auf zulässige Zeichen
            Syntax ZulZ <cZeichenkette>,<nAuswahl>
            Parameter:
            <cZeichenkette> ist die ZK, die auf zul. Zeichen geprüft werden soll
            <nAuswahl> ist eine bitweise zusammengesetzte Zahl,
            die die zulässigen Zeichen definiert.
            Folgende Werte sind möglich
            2=A..Z
            4=a..z
            8=0..9
            16=Punkt,Komma als Dezimaltrennzeichen
            32=+,- als Vorzeichen
            64=Leerzeichen
            128=_ Unterstrich
            256=Ä,Ö,Ü
            512=ä,ö,ü
            1024=ß,+,-,Punkt,Komma als normale Textzeichen
            Rückgabe
            rc%=1, wenn alle Zeichen zulässig und an der richtigen Stelle (+,-)
            und nicht doppelt(../,,/,./.,)
            rc%=0, wenn Fehler
            parameters zk$,was%
            declare GB$,KB$,SondZ$,Z$,SZ$,Alles$
            declare z%,rc%,test$,z$
            declare lgpar%,kopie$,ort%
            GB$=ABCDEFGHIJKLMNOPQRSTUVWXYZ/
            KB$=abcdefghijklmnopqrstuvwxyz/
            Z$=0123456789/
            SZ$=.,/+-/ /_/
            SondZ$=ÄÖÜ/äöü/ß+-.,/
            Alles$=GB$+KB$+Z$+SZ$+SondZ$
            rc%=1
            test$=
            z%=1
            zulässige Zeichen zusammenstellen

            WhileNot z%>11

                if Testbit(was%,z%)

                    test$=test$+SubStr$(Alles$,z%,/)

                endif

                inc z%

            EndWhile

            lgpar%=len(zk$)
            z%=1
            Test auf zul. Zeichen

            WhileNot z%>lgpar%

                z$=Mid$(zk$,z%,1)

                if Instr(z$,test$)=0

                    rc%=0
                    break

                endif

                inc z%

            EndWhile

            If rc% and TestBit(was%,4)  Dezimalzahl?

                kopie$=zk$
                ort%=Instr(,,kopie$)  Test auf mehrere Dez.-Kommas

                if ort%<>0

                    kopie$=Del$(kopie$,ort%,1)
                    case Instr(,,kopie$)<>0 : rc%=0

                endif

                if rc%

                    kopie$=zk$
                    ort%=Instr(.,kopie$)  Test auf mehrere Dez.-Punkte

                    if ort%<>0

                        kopie$=Del$(kopie$,ort%,1)
                        case Instr(.,kopie$)<>0 : rc%=0

                    endif

                endif

                if rc%

                    kopie$=zk$
                    ort%=Instr(.,kopie$)  Test auf Dez.-Punkt+Dez.-Komma

                    if ort%<>0

                        case Instr(,,kopie$)<>0 : rc%=0

                    endif

                endif

                if rc%

                    case Instr(+,zk$)>1 : rc%=0  Vorzeichen an 1. Stelle?
                    case Instr(-,zk$)>1 : rc%=0  Vorzeichen an 1. Stelle?

                endif

            endif

            return rc%
            ENDPROC  ZulZ
 
07/15/07  
 



Zum Quelltext


Topictitle, max. 100 characters.
 

Systemprofile:

no Systemprofil laid out. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Please register circa a Posting To verfassen.
 

Topic-Options

1.400 Views

Untitledvor 0 min.
Sven Bader08/06/21
rquindt12/13/15
Pauli06/19/14
Frank Vorholzer05/24/12
More...

Themeninformationen

this Topic has 1 subscriber:

unbekannt (1x)


Admins  |  AGB  |  Applications  |  Authors  |  Chat  |  Privacy Policy  |  Download  |  Entrance  |  Help  |  Merchantportal  |  Imprint  |  Mart  |  Interfaces  |  SDK  |  Services  |  Games  |  Search  |  Support

One proposition all XProfan, The there's!


My XProfan
Private Messages
Own Storage Forum
Topics-Remember-List
Own Posts
Own Topics
Clipboard
Log off
 Deutsch English Français Español Italia
Translations

Privacy Policy


we use Cookies only as Session-Cookies because of the technical necessity and with us there no Cookies of Drittanbietern.

If you here on our Website click or navigate, stimmst You ours registration of Information in our Cookies on XProfan.Net To.

further Information To our Cookies and moreover, How You The control above keep, find You in ours nachfolgenden Datenschutzerklärung.


all rightDatenschutzerklärung
i want none Cookie