Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Arbeitsspeicher Auslesen
Gehe zu Seite 1, 2  Weiter
 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Windows-spezifische Fragen
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
oiermann



Anmeldungsdatum: 28.12.2005
Beiträge: 90
Wohnort: Leutkirch

BeitragVerfasst am: 28.12.2005, 14:21    Titel: Arbeitsspeicher Auslesen Antworten mit Zitat

Ich hab mich mal n bisschen mit dem TUT zum Speicher auslesen von www.freebasic.de bechäftig und n bisschen was daran rumgebastelt, nur hab ich jetzt ein problem!

Ich bekomm beim Compilieren immer folgende fehlermeldung:



ich hoffe ihr könnt mir helfen den fehler zu finden. Ich bin Anfänger, also schreibts bitte verständlich. grinsen

Code:

Option Explicit 
   
 Type MEMORYSTATUS 
   dwLength As Long 
   dwMemoryLoad As Long 
   dwTotalPhys As Long 
   dwAvailPhys As Long 
   dwTotalPageFile As Long 
   dwAvailPageFile As Long 
   dwTotalVirtual As Long 
   dwAvailVirtual As Long 
 End Type 
   
 Dim Shared Memory As MEMORYSTATUS 
   
 Declare Sub GlobalMemoryStatus Lib "kernel32" Alias "GlobalMemoryStatus" (lpBuffer As MEMORYSTATUS)   
   
 Memory.dwLength = Len(Memory) 
 Call GlobalMemoryStatus(Memory) 
   
 a = Memory.dwAvailPhys / Memory.dwTotalPhys
 
 PRINT "*************************************************************"
 PRINT "*                Arbeitsspeicherauslastung                  *"
 PRINT "*                                                           *"
 PRINT "*                                                           *"
 LOCATE 5,1 : PRINT "*" : LOCATE 5,5 : PRINT "RAM gesamt: "; Memory.dwTotalPhys / 1024 / 1024 ; " MB" : LOCATE 5,61 : PRINT "*"
 LOCATE 6,1 : PRINT "*" : LOCATE 6,5 : PRINT "RAM frei (in KB) : "; Memory.dwAvailPhys / 1024 ; " KB" : LOCATE 6,61: PRINT "*"
 LOCATE 7,1 : PRINT "*" : LOCATE 7,5 : PRINT "RAM frei (in MB) : "; Memory.dwAvailPhys / 1024 / 1024 ; " MB" : LOCATE 7,61: PRINT "*"
 PRINT "*" :
 IF a > 50 then color 10,0 : LOCATE 8,3 : print "Wunderbar"
 IF a < 50 then color 14,0 : LOCATE 8,3 : print "In ordnung"
 IF a < 15 then color 4,0 :  LOCATE 8,3 : print "UNTER 15%!!!"
 COLOR 7,0
 LOCATE 8,61 : PRINT "*"
 PRINT "*************************************************************"
   
 Sleep 
 End




danke im vorraus!!!!!!
_________________
Ich bin keine Signatur, ich putz hier nur
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 28.12.2005, 14:27    Titel: Antworten mit Zitat

Hallo,

da du OPTION EXPLICIT verwendest, musst du alle Variablen vor der Verwendung deklarieren.

Code:
DIM a AS LONG


Viele Grüße!
Sebastian
_________________

Der Markt regelt das! | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
oiermann



Anmeldungsdatum: 28.12.2005
Beiträge: 90
Wohnort: Leutkirch

BeitragVerfasst am: 28.12.2005, 14:34    Titel: Antworten mit Zitat

Danke, jetzt kann ers compilieren, aber a ist jetzt immer 0 und es müsste was um die 30 rauskommen
_________________
Ich bin keine Signatur, ich putz hier nur
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Kai Bareis



Anmeldungsdatum: 10.09.2004
Beiträge: 545
Wohnort: Baden Würtemberg

BeitragVerfasst am: 28.12.2005, 15:12    Titel: Antworten mit Zitat

Code:
a = Memory.dwAvailPhys / Memory.dwTotalPhys


das selber sollte wohl eine Prozentrechnung sein da fehlt noch das * 100

Code:
 a =  Memory.dwAvailPhys / Memory.dwTotalPhys * 100

_________________
MfG Kai Bareis
Es ist noch kein Meister vom Himmel gefallen! Warum einfach wens auch umständlich geht!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
oiermann



Anmeldungsdatum: 28.12.2005
Beiträge: 90
Wohnort: Leutkirch

BeitragVerfasst am: 28.12.2005, 15:17    Titel: Antworten mit Zitat

Peinlich verlegen verlegen verlegen verlegen !!!!! Und ich hab in Mathe nen 2er! Sollt ma mir wieder wegnehmen!!! verlegen verlegen verlegen

Jetzt funktionierts! Danke!!!!
_________________
Ich bin keine Signatur, ich putz hier nur
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Michael Frey



Anmeldungsdatum: 18.12.2004
Beiträge: 2577
Wohnort: Schweiz

BeitragVerfasst am: 28.12.2005, 15:26    Titel: Antworten mit Zitat

Gutes Programm! Daumen rauf!
Für einen Anfänger wie du dich selbst nennst ist sowas echt Genial!

Ich habs noch etwas optimiert:
(Irgendwas geht immer Besser, also nicht Falsch verstehen)
Code:
Option Explicit

dim a as integer
   
 Type MEMORYSTATUS
   dwLength As Long
   dwMemoryLoad As Long
   dwTotalPhys As Long
   dwAvailPhys As Long
   dwTotalPageFile As Long
   dwAvailPageFile As Long
   dwTotalVirtual As Long
   dwAvailVirtual As Long
 End Type
   
 Dim Shared Memory As MEMORYSTATUS

 cls
 COLOR 7,0

 Declare Sub GlobalMemoryStatus Lib "kernel32" Alias "GlobalMemoryStatus" (lpBuffer As MEMORYSTATUS)   
   
 Memory.dwLength = Len(Memory)
 GlobalMemoryStatus(Memory)
   
 a = Memory.dwAvailPhys / Memory.dwTotalPhys*100
 
 PRINT "*************************************************************"
 PRINT "*                Arbeitsspeicherauslastung                  *"
 PRINT "*                                                           *"
 PRINT "*                                                           *"
 PRINT "*    ";: PRINT "RAM gesamt:       "; cint(Memory.dwTotalPhys / 1024 / 1024) ; " MB" : LOCATE 5,61: PRINT "*"
 PRINT "*    ";: PRINT "RAM frei (in KB): "; cint(Memory.dwAvailPhys / 1024) ; " KB"        : LOCATE 6,61: PRINT "*"
 PRINT "*    ";: PRINT "RAM frei (in MB): "; cint(Memory.dwAvailPhys / 1024 / 1024) ; " MB" : LOCATE 7,61: PRINT "*"
 PRINT "*    ";
 IF a > 50 then color 10 : print "Wunderbar"
 IF a < 50 then color 14 : print "In ordnung"
 IF a < 15 then color 4 :  print "UNTER 15%!!!"
 COLOR 7
 LOCATE 8,61 : PRINT "*"
 PRINT "*                                                           *"
 PRINT "*************************************************************"
   
 Sleep

_________________
http://de.wikibooks.org/wiki/FreeBasic Jede Hilfe für dieses Buch ist Willkommen!
http://de.wikibooks.org/wiki/FreeBasic:_FAQ FAQ zu Freebasic (im Aufbau, hilfe Willkommen)
Neu mit Syntax Highlight
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
oiermann



Anmeldungsdatum: 28.12.2005
Beiträge: 90
Wohnort: Leutkirch

BeitragVerfasst am: 28.12.2005, 15:37    Titel: Antworten mit Zitat

Ich bin wirklich noch anfänger!!! Ich hab vor 4 wochen mit qbasic von der win95 cd angefangen und das programm is ja auch nur ausm tut umgebastelt.
Aber trotzdem danke!
_________________
Ich bin keine Signatur, ich putz hier nur
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
volta



Anmeldungsdatum: 04.05.2005
Beiträge: 1874
Wohnort: D59192

BeitragVerfasst am: 28.12.2005, 16:06    Titel: Antworten mit Zitat

Hi,
für freeBASIC optimiert sieht das so aus:
Code:
Option Explicit 
#include once "windows.bi"

 Dim Memory As MEMORYSTATUS 
 GlobalMemoryStatus (@Memory)   
 
 Dim a As Single   
 a = Memory.dwAvailPhys / Memory.dwTotalPhys
 
 Print "***********************************"
 Print "*    Arbeitsspeicherauslastung    *"
 Print "*                                 *"
 Print "*   RAM gesamt       : " & Memory.dwTotalPhys Shr 20 & " MB" : Locate 4,35: Print "*"
 Print "*   RAM frei (in KB) : " & Memory.dwAvailPhys Shr 10 & " KB" : Locate 5,35: Print "*"
 Print "*   RAM frei (in MB) : " & Memory.dwAvailPhys Shr 20 & " MB" : Locate 6,35: Print "*"
 Print "*" : Locate 7,5
 IF a < .5 Then
   IF a < .15 Then
     Color 4,0
     Print "UNTER 15%!!!"
   Else
     Color 14,0
     Print "In ordnung"
   End If
 Else
   Color 10,0
   Print "Wunderbar"
 End If
 Color 7,0 :Locate 7,35 : Print "*"
 Print "***********************************"
   
 Sleep 
 End

Die #Include - Anweisung fügt die Definitionen für den Aufruf der Funktion in dein Programm ein (die haben die Macher von freeBASIC schon erstellt). Der Shr - Befehl entspricht einer Integerdivision ( x Shr 10 ist x\1024). Wenn a < 15% ist würden bei dir "In ordnung" und "UNTER 15%!!!" ausgegeben.
Gruß
Volta
_________________
Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
oiermann



Anmeldungsdatum: 28.12.2005
Beiträge: 90
Wohnort: Leutkirch

BeitragVerfasst am: 29.12.2005, 10:47    Titel: Antworten mit Zitat

Danke für eure optimierungen! Blicken tu ichs, aber bis ich soweit bin, dass ich so was schreiben kann dauerts wahrscheinblich noch.

Es gibt nur ein problem! Mein FreeBasic sagt immer dass er die Und-Zeichen (&) nicht mag, kann man die ersetzen oder so?
_________________
Ich bin keine Signatur, ich putz hier nur
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
MisterD



Anmeldungsdatum: 10.09.2004
Beiträge: 3071
Wohnort: bei Darmstadt

BeitragVerfasst am: 29.12.2005, 11:16    Titel: Antworten mit Zitat

jo
"String " & Zahl & " String" musst du in FB als "String "+STR$(Zahl)+" String" schreiben. Eventuell mit rtrim$(ltrim$(str$(zahl))) alle leerzeichen abschneiden die zuviel sind (r wie rechts und l wie links und trim wie abschneiden)
_________________
"It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
oiermann



Anmeldungsdatum: 28.12.2005
Beiträge: 90
Wohnort: Leutkirch

BeitragVerfasst am: 29.12.2005, 11:18    Titel: Antworten mit Zitat

danke, das werd ich mal versuchen.

was für ne sprache/umgebung habt ihr dann wenn die & zeochen da funktionieren?
_________________
Ich bin keine Signatur, ich putz hier nur
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
MisterD



Anmeldungsdatum: 10.09.2004
Beiträge: 3071
Wohnort: bei Darmstadt

BeitragVerfasst am: 29.12.2005, 11:21    Titel: Antworten mit Zitat

Das is VB
_________________
"It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
oiermann



Anmeldungsdatum: 28.12.2005
Beiträge: 90
Wohnort: Leutkirch

BeitragVerfasst am: 29.12.2005, 11:24    Titel: Antworten mit Zitat

würde sich das vb lohnen?? soweit ich weiss kostet das doch, und kann man mit vb .exe dateien erstellen???
_________________
Ich bin keine Signatur, ich putz hier nur
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Mao



Anmeldungsdatum: 25.09.2005
Beiträge: 4409
Wohnort: /dev/hda1

BeitragVerfasst am: 29.12.2005, 13:15    Titel: Antworten mit Zitat

Ja, mit VisualBasic kannst du EXEn erstellen. lächeln
_________________
Eine handvoll Glück reicht nie für zwei.
--
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
volta



Anmeldungsdatum: 04.05.2005
Beiträge: 1874
Wohnort: D59192

BeitragVerfasst am: 29.12.2005, 13:36    Titel: Antworten mit Zitat

Hi,
nix VB das & ist auch in FB015b drin, damit kann man sogar die Konvertierung von Zahlen in Strings einsparen.
Code:
x= 5000
a$ = "ich bin " & x & "Tage alt."
?a$

@oiermann, ich empfehle dir FB015b, FB hat da doch einen großen Sprung gemacht.
_________________
Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Michael Frey



Anmeldungsdatum: 18.12.2004
Beiträge: 2577
Wohnort: Schweiz

BeitragVerfasst am: 29.12.2005, 16:31    Titel: Antworten mit Zitat

@MisterD
rtrim$(ltrim$(str$(zahl)))
braucht man bei Freebasic nicht mehr
keywords.txt hat Folgendes geschrieben:
...
STR$ Function (diff: blanks are NOT added for positive signed integers)
...

zudem ist das FB Äquvialant zu rtrim$(ltrim$()) einfach nur trim$.
_________________
http://de.wikibooks.org/wiki/FreeBasic Jede Hilfe für dieses Buch ist Willkommen!
http://de.wikibooks.org/wiki/FreeBasic:_FAQ FAQ zu Freebasic (im Aufbau, hilfe Willkommen)
Neu mit Syntax Highlight
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
MisterD



Anmeldungsdatum: 10.09.2004
Beiträge: 3071
Wohnort: bei Darmstadt

BeitragVerfasst am: 29.12.2005, 20:18    Titel: Antworten mit Zitat

ok happy
_________________
"It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Dusky_Joe



Anmeldungsdatum: 07.01.2005
Beiträge: 1007
Wohnort: Regensburg/Oberpfalz

BeitragVerfasst am: 30.12.2005, 14:36    Titel: Antworten mit Zitat

Nur, um darauf hinzuweisen: Den Ausdruck RTRIM(LTRIM(...)) kann man durch TRIM(...) ersetzen. Siehe in der Referenz:
http://fb.exp-soft.de/r.php?s=TRIM

//EDIT: Ah, Michael Frey hat das ja auch schon geschrieben, na dann...
Trotzdem den Link ansehen - TRIM kann mehr als Leerzeichen entfernen!

Ansonsten kann ich auch nur empfehlen, deine Version upzudaten. Hier im Forum ist grade ein Thread aktiv, der auf freeBASIC v0.16b hinweist. Die ist zwar noch nicht stable, allerdings arbeite ich seit dem Release dieser Beta-Version damit, und habe keine Fehler festgestellt.

@ oiermann:
VB lohnt sich dann, wenn du dich von vorne herein darauf festlegst, dass du nur Anwendungen programmieren willst; spiele sind in VB ziemlich schwierig zu erstellen. Du wirst im Netz auch kostenlose Versionen finden (wenn du laaaange danach suchst), die dann aber nicht wirklich legal sind...
Anyway, bleib lieber bei FB. In VB kannst du zwar GUIs schneller erstellen, dafür weißt du selten, was wirklich unter der Haube abläuft. Dir fehlt - selbst wenn du ein guter VB-Progger wirst - einfach das verständnis.

Aber, dieses Thema wird ziemlich oft diskutiert. Benutz einfach die Forensuche.
Guter Tipp ist auch die MonsterFAQ von Thomas Antoni (auf www.qbasic.de ). Da findest du eine Seite, in der verschiedene BASIC-Dialekte vorgestellt werden, u.a. VisualBASIC; Thomas hat dort sehr schön die Stärken und Schwächen der Sprache aufgeführt.


Have a nice day
Ciao
_________________
fully biological degradable

Once, the big wave arrives, you've got two ways, you can go:
Either, you ride it, or you don't do.
But, if you don't ride, you'll never know wether you'd have gone wet.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Michael Frey



Anmeldungsdatum: 18.12.2004
Beiträge: 2577
Wohnort: Schweiz

BeitragVerfasst am: 30.12.2005, 15:13    Titel: Antworten mit Zitat

@Dusky_Joe
Deine Aussage zu Visual Basic ist so nicht ganz korrekt:
http://msdn.microsoft.com/vstudio/express/vb/download/
Okey, man kann Visual Basic .Net die abstammung von Visual Basic streitig machen oder .Net als Quatsch bezeichnen, aber es ist Gratis.

Also ich find VB .Net schlecht, die Software Entwicklung ist komplexer als unter Visual Basic 3 oder QuickBasic oder auch Freebasic, zudem benötigt der Anwender zum Ausführen das .Net Framework ...
_________________
http://de.wikibooks.org/wiki/FreeBasic Jede Hilfe für dieses Buch ist Willkommen!
http://de.wikibooks.org/wiki/FreeBasic:_FAQ FAQ zu Freebasic (im Aufbau, hilfe Willkommen)
Neu mit Syntax Highlight
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Dusky_Joe



Anmeldungsdatum: 07.01.2005
Beiträge: 1007
Wohnort: Regensburg/Oberpfalz

BeitragVerfasst am: 30.12.2005, 21:23    Titel: Antworten mit Zitat

Alle Angaben ohne Gewähr zwinkern

Von der Dotnet-Variante wusste ich bis jetzt nichts. Allerdings habe ich schon von Progs gehört, die das Framework zum Ausführen benötigen, sowie ne ganze liste von Problemen, die nach der Installation des Frameworks aufgetreten sind...
_________________
fully biological degradable

Once, the big wave arrives, you've got two ways, you can go:
Either, you ride it, or you don't do.
But, if you don't ride, you'll never know wether you'd have gone wet.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Windows-spezifische Fragen Alle Zeiten sind GMT + 1 Stunde
Gehe zu Seite 1, 2  Weiter
Seite 1 von 2

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz