Italia
Foro

Problem mit der Anzeige der Speichergrösse...

 
Hallo an alle...
Frank Abbing hat mit der Darstellung der Speichergrössen-Angaben aus meinem Untertool System-Informationen Probleme. Bei einigen Werten zeigt sein System ein MInuszeichen vor den Werten und die Werte sind falsch !
Hier habe Io l' Code (vereinfacht) mitgeliefert und hoffe auf Tipps. Auf meinem System werden die Werte nämlich einwandfrei angezeigt. Im Thread Was ist eigentlich... sind ein paar Screenshots die dazu gemacht wurden.
KompilierenMarkierenSeparieren
DECLARE sp%,ze%,steig%
sp%=10:ze%=20:steig%=30
DECLARE Memorystatus#
DECLARE speicher$,physik$,freiP$,auslg$,ausF$,virtuell$,virtuellF$,I%
------------------------------------------------------------------------------------------

PROC SPEICHER_ANZEIGE

    USEFONT COURIER NEW,18,0,0,0,0
    Def Globalmemorystatus(1) !KERNEL32,GlobalMemoryStatus
    Decimals 2
    Dim Memorystatus#,32
    Long Memorystatus#,0=32
    Globalmemorystatus(Memorystatus#)
    -----------------------------------------------------------------------------------------
    speicher$=Str$(Long(Memorystatus#,4))
    I%=LEN(speicher$)
    case LT(I%,9):speicher$=MKSTR$( ,9-I%)+speicher$
    DrawText sp%,ze%, 1.  Speicher in Gebrauch:               +speicher$+ %
    Add ze%,steig%
    -----------------------------------------------------------------------------------------
    physik$=Str$(((Long(Memorystatus#,8)/1024)/1024))
    I%=LEN(physik$)
    case LT(I%,12):physik$=MKSTR$( ,12-I%)+physik$
    DrawText sp%,ze%, 2.  Physikalischer Speicher gesamt:     +physik$+ MB
    Add ze%,steig%
    -----------------------------------------------------------------------------------------
    freiP$=Str$(((Long(Memorystatus#,12)/1024)/1024))
    I%=LEN(freiP$)
    case LT(I%,12):freiP$=MKSTR$( ,12-I%)+freiP$
    DrawText sp%,ze%, 3.  Freier physikalischer Speicher:     +freiP$+ MB
    Add ze%,steig%
    -----------------------------------------------------------------------------------------
    auslg$=Str$(((Long(Memorystatus#,16)/1024)/1024))
    I%=LEN(auslg$)
    case LT(I%,12):auslg$=MKSTR$( ,12-I%)+auslg$
    DrawText sp%,ze%, 4.  Größe der Auslagerungsdatei:        +auslg$+ MB
    Add ze%,steig%
    -----------------------------------------------------------------------------------------
    ausF$=Str$(((Long(Memorystatus#,20)/1024)/1024))
    I%=LEN(ausF$)
    case LT(I%,12):ausF$=MKSTR$( ,12-I%)+ausF$
    DrawText sp%,ze%, 5.  Frei in der Auslagerungsdatei:      +ausF$+ MB
    Add ze%,steig%
    -----------------------------------------------------------------------------------------
    virtuell$=Str$(((Long(Memorystatus#,24)/1024)/1024))
    I%=LEN(virtuell$)
    case LT(I%,12):virtuell$=MKSTR$( ,12-I%)+virtuell$
    DrawText sp%,ze%, 6.  Gesamter virtueller Speicher:       +virtuell$+ MB
    Add ze%,steig%
    -----------------------------------------------------------------------------------------
    virtuellF$=Str$(((Long(Memorystatus#,28)/1024)/1024))
    I%=LEN(virtuellF$)
    case LT(I%,12):virtuellF$=MKSTR$( ,12-I%)+virtuellF$
    DrawText sp%,ze%, 7.  Freier virtueller Speicher:         +virtuellF$+ MB
    -----------------------------------------------------------------------------------------
    Dispose Memorystatus#

ENDPROC

####################################################
CLS
speicher_anzeige
Waitinput
s4 href='./../../funktionsreferenzen/xprofan/end/'>end

Danke im Voraus per Aiuto
Gruss
horst
 
19.09.2007  
 




RGH
Ciao,

da XProfan nur vorzeichenbehaftete Longints kennt, die bis maximal knapp circa 2 Mia. gehen, können mit Deinem Programm keine Speichergrößen circa 2 GB angezeigt werden.

Der Wert, den Du mit Dimensione der Auslagerungsdatei angibst, ist aber offensichtlich der größte zugesicherte Speicher, also Physikalischer Speicher + Auslagerungsdatei (Size of the committed memory limit). Bei Systemen mit 1024 MB RAM beträgt dieser aber in der Regel mehr als 2 GB.

Lösung: Wenn der MB-Wert negativ ist, addiere einfach 4096 dazu und das Ergebnis stimmt. Auf diese Weise können Werte bis zu 4 GB angezeigt werden .... und mehr schafft auch die von Dir verwandte API nicht.

Saluto
Roland
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
19.09.2007  
 



@Roland
Danke per die schnelle Aiuto.
Dann werde ich dochmal meinen Speicher aufrüsten (jetzt noch 512). Danach kann ich ja dann mit einer IF...ENDIF - Schleife auch den Fall lösen
Gruss
horst
 
19.09.2007  
 




RGH
Eine Schleife braucht es nicht. Mit der Funktion OhneVorzeichen(Wert&) geht es komfortabler:
KompilierenMarkierenSeparieren
DECLARE sp%,ze%,steig%
sp%=10:ze%=20:steig%=30
DECLARE Memorystatus#
DECLARE speicher$,physik$,freiP$,auslg$,ausF$,virtuell$,virtuellF$,I%
------------------------------------------------------------------------------------------

PROC OhneVorzeichen

    Parameters Wert&
    Return If(Wert& < 0, Int(Wert& + 4096), Wert&)

ENDPROC

PROC SPEICHER_ANZEIGE

    USEFONT COURIER NEW,18,0,0,0,0
    Def Globalmemorystatus(1) !KERNEL32,GlobalMemoryStatus
    Decimals 2
    Dim Memorystatus#,32
    Long Memorystatus#,0=32
    Globalmemorystatus(Memorystatus#)
    -----------------------------------------------------------------------------------------
    speicher$=Str$(Long(Memorystatus#,4))
    I%=LEN(speicher$)
    case LT(I%,9):speicher$=MKSTR$( ,9-I%)+speicher$
    DrawText sp%,ze%, 1.  Speicher in Gebrauch:               +speicher$+ %
    Add ze%,steig%
    -----------------------------------------------------------------------------------------
    physik$=Str$(OhneVorzeichen((Long(Memorystatus#,8)/1024)/1024))
    I%=LEN(physik$)
    case LT(I%,12):physik$=MKSTR$( ,12-I%)+physik$
    DrawText sp%,ze%, 2.  Physikalischer Speicher gesamt:     +physik$+ MB
    Add ze%,steig%
    -----------------------------------------------------------------------------------------
    freiP$=Str$(OhneVorzeichen((Long(Memorystatus#,12)/1024)/1024))
    I%=LEN(freiP$)
    case LT(I%,12):freiP$=MKSTR$( ,12-I%)+freiP$
    DrawText sp%,ze%, 3.  Freier physikalischer Speicher:     +freiP$+ MB
    Add ze%,steig%
    -----------------------------------------------------------------------------------------
    auslg$=Str$(OhneVorzeichen((Long(Memorystatus#,16)/1024)/1024))
    I%=LEN(auslg$)
    case LT(I%,12):auslg$=MKSTR$( ,12-I%)+auslg$
    DrawText sp%,ze%, 4.  Maximal zugesicherter Speicher:     +auslg$+ MB
    Add ze%,steig%
    -----------------------------------------------------------------------------------------
    ausF$=Str$(OhneVorzeichen((Long(Memorystatus#,20)/1024)/1024))
    I%=LEN(ausF$)
    case LT(I%,12):ausF$=MKSTR$( ,12-I%)+ausF$
    DrawText sp%,ze%, 5.  Freier zugesicherter Speicher:      +ausF$+ MB
    Add ze%,steig%
    -----------------------------------------------------------------------------------------
    virtuell$=Str$(OhneVorzeichen((Long(Memorystatus#,24)/1024)/1024))
    I%=LEN(virtuell$)
    case LT(I%,12):virtuell$=MKSTR$( ,12-I%)+virtuell$
    DrawText sp%,ze%, 6.  Gesamter virtueller Speicher:       +virtuell$+ MB
    Add ze%,steig%
    -----------------------------------------------------------------------------------------
    virtuellF$=Str$(OhneVorzeichen((Long(Memorystatus#,28)/1024)/1024))
    I%=LEN(virtuellF$)
    case LT(I%,12):virtuellF$=MKSTR$( ,12-I%)+virtuellF$
    DrawText sp%,ze%, 7.  Freier virtueller Speicher:         +virtuellF$+ MB
    -----------------------------------------------------------------------------------------
    Dispose Memorystatus#

ENDPROC

####################################################
CLS
speicher_anzeige
Waitinput<
class=s4 href='./../../funktionsreferenzen/xprofan/end/'>end

Saluto
Roland
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
19.09.2007  
 



@Roland

...oder so
Gruss
horst
 
19.09.2007  
 



Answer


Topictitle, max. 100 characters.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Topic-Options

402 Views

Untitledvor 0 min.
mein17.01.2011

Themeninformationen

Dieses Thema hat 2 subscriber:

unbekannt (3x)
RGH (2x)


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