English
Source / code snippets

Reading Environment variables

 

CompileMarkSeparation
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
 
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

2.271 Views

Untitledvor 0 min.
RudiB.10/27/21
rquindt07/26/15

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