Italia
Fonte/ Codesnippets

Auslesen Environment Variablen

 

KompilierenMarkierenSeparieren
Source wurde am 15.07.2007 aus der MMJ-Quellcodesammlung (Dietmar Horn) in die Babyklappe auf XProfan.Com abgelegt:
Environment-Variablen auslesen
Autor: Michael Wodrich
GetEnvVars$
GetEnv$() von Profan ist zwar sehr gut zum Lesen
einer Environment-Variable, doch wie hieß denn
nun die Variable, die ich auslesen wollte??
Hier hilft GetEnvVars$ weiter. Alle im aktuellen
Environment gespeicherten Variablennamen werden
als ein String zurückgegeben (durch Kommata getrennt).
Def GetEnvX(0)  !kernel32,GetEnvironmentStringsA
Def FreeEnvX(1)  !kernel32,FreeEnvironmentStringsA
Declare Test$
liefert einen Komma-separierten String
mit allen Variablennamen des Environments zurück

Proc GetEnvVars$

    der interne Puffer muß das gesamte Environment abdecken können
    sonst gibt es einen Fehler bezüglich der Bereichsgrenze
    Declare Buf#,EnvAdr&,p&,i&,x$,Erg$,tmp$
    Dim Buf#,16384
    EnvAdr& = GetEnvX()
    Buf# = EnvAdr&  bearbeiten mittels Bereich
    Clear p&,Erg$
    x$ = String$(Buf#,p&)

    While Len(x$) > 0

        i& = InStr(=,x$)

        If i& > 1

            tmp$ = Left$(x$,i& - 1)
            tmp$ = Trim$(tmp$)
            Case Len(tmp$) : Erg$ = Erg$;tmp$;,

        EndIf

        p& = p& + Len(x$) + 1
        x$ = String$(Buf#,p&)

    EndWhile

    Dispose Buf#
    FreeEnvX(EnvAdr&)
    Case Len(Erg$) : Erg$ = Del$(Erg$,Len(Erg$),1)
    Return Erg$

EndProc

Ein Beispiel für die Verwertung der Variablennamen.

Proc ZeigeEnvVars

    Parameters Tst$
    Declare ende%,i%,x$,aus$,x%,y%
    Clear aus$,i%,x%,y%

    Proc WriteLn

        Parameters s$
        DrawText x%,y%,s$
        y%= y% + 18

    EndProc

    Window 0,0 - %MaxX,%MaxY
    WriteLn Die Environment-Variablen der aktuellen Umgebung:
    WriteLn aus$

    WhileNot ende%

        Inc i%
        x$ = SubStr$(Tst$,i%,,)

        If Len(x$)

            If (Len(aus$) + Len(x$) + 2) > (Div&(%MaxX,10) - 4)

                WriteLn aus$
                aus$ = x$

            Else

                If Len(aus$)

                    aus$ = aus$;  ;x$

                Else

                    aus$ = x$

                EndIf

            EndIf

        Else

            ende% = 1

        EndIf

    EndWhile

    WriteLn aus$
    WriteLn *** ENDE ***
    WaitInput

EndProc

Ein Beispiel für die Verwertung der Variablennamen.

Proc ZeigeAlles

    Parameters Tst$
    Declare ende%,i%,x$,y$
    Clear ende%,i%
    ClearList

    WhileNot ende%

        Inc i%
        x$ = SubStr$(Tst$,i%,,)

        If Len(x$)

            y$ = @GetEnv$(x$)
            AddString x$ +  =  + y$

        Else

            ende% = 1

        EndIf

    EndWhile

    ListBox$(Inhalt des Environment,2)

EndProc

Test$ = GetEnvVars$()
ZeigeEnvVars Test$
='./../../function-references/xprofan/zeigealles/'>ZeigeAlles Test$
End
 
15.07.2007  
 



Zum Quelltext


Topictitle, max. 100 characters.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Topic-Options

2.272 Views

Untitledvor 0 min.
RudiB.27.10.2021
rquindt26.07.2015

Themeninformationen

Dieses Thema hat 1 subscriber:

unbekannt (1x)


Admins  |  AGB  |  Applications  |  Autori  |  Chat  |  Informativa sulla privacy  |  Download  |  Entrance  |  Aiuto  |  Merchantportal  |  Impronta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Giochi  |  Cerca  |  Support

Ein Projekt aller XProfaner, die es gibt!


Il mio XProfan
Private Notizie
Eigenes Ablageforum
Argomenti-Merkliste
Eigene Beiträge
Eigene Argomenti
Zwischenablage
Annullare
 Deutsch English Français Español Italia
Traduzioni

Informativa sulla privacy


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie