Deutsch
Quelltexte/ Codesnippets

Auslesen Environment Umgebungs Variablen

 

KompilierenMarkierenSeparieren
Source wurde am 15.07.2007 aus der MMJ-Quellcodesammlung (Dietmar Horn) in die Babyklappe auf XProfan.Com abgelegt:
Umgebungs-Variablen auslesen (Environment)
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$
ZeigeAlles Test$
End
 
15.07.2007  
 



Zum Quelltext


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

2.619 Betrachtungen

Unbenanntvor 0 min.
rquindt26.07.2015
RudiB.07.02.2013

Themeninformationen

Dieses Thema hat 1 Teilnehmer:

unbekannt (1x)


Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


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