WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Programmierung

Programmierung Rat & Tat für Programmierer

Microsoft KARRIERECAMPUS

Antwort
 
Themen-Optionen Ansicht
Alt 06.02.2001, 10:08   #1
Ramosera
Jr. Member
 
Registriert seit: 30.01.2001
Beiträge: 32


Frage

Wer kann mir bei folgendem helfen:

Ich brauch für ein gutes altes Dos-Programm (geschrieben in QuickBasic) eine Funktion, um den Inhalt von Systemavariablen anzuzeigen, ändern usw.

Gibt es dazu im QB einen Befehl??
Ramosera ist offline   Mit Zitat antworten
Alt 06.02.2001, 13:06   #2
Sonic
Master
 
Registriert seit: 28.03.2000
Alter: 45
Beiträge: 691


Sonic eine Nachricht über ICQ schicken
Daumen hoch

HI!

Hab früher Jahrelag in Quickbasic Programmiert, und tus heute noch wenn ich schnell mal en Komandozeilen Tool brauche.

Mir ist leider kein Befehl bekannt mit dem man Systhemvariablen lesen oder setzen kann. Hätte es auch nie gebraucht.

ABER mir ist ein kleiner Workaround eingefallen der dir vielleicht weiterhilft:

Es gibt ja den Shell befehl, mit dem man einen neuen Komandozeileninterpreter starten und ein programm (bzw Batchfile) starten kann. Und es gibt unter Dos den Befehl Set mit dem man entweder alle Variablen anzeigen oder neue setzen kann. Also einfach im programm ein Batchfile schreiben indem set (und der Parameter steht), das Batchfile mit shell ausführen. (Und nachher wieder löschen)

Ich hab dir hier ein BeispielProgramm geschrieben, es ist nicht perfekt aber ich glaube es gibt dir eine Vorstellung von dem was ich meine.

-----------------------------------------

'##Eine Variable setzen

OPEN "c:\Variable.bat" FOR OUTPUT AS #1 'Eine Datei zum Schreiben öffnen
PRINT #1, "@echo off" 'Damit am Bildschirm der Befehl nicht angezeigt wird
PRINT #1, "Set " + Set$ 'Set und die Variable + Wert der gesetzt werden soll zb: PATH=C:\windows
CLOSE #1

SHELL "c:\Variable.bat" 'Ausführen (wirklich setzen)
SHELL "del c:\Variable.bat" 'Und wieder löschen

'##ENDE Variable setzen

'##Variable Auslesen

CLS
varname$ = "PROMPT"

OPEN "c:\Variable.bat" FOR OUTPUT AS #1 'Eine Datei zum Schreiben ”ffnen
PRINT #1, "@echo off" 'Damit am Bildschirm der Befehl nicht angezeigt wird
'Set ohne Parameter gibt alle Variablen am Bildschirm aus und wir schreiben alles in die Datei Variablenb.txt
PRINT #1, "Set > c:\Variablen.txt"
CLOSE #1

SHELL "c:\Variable.bat" 'Ausfhren (wirklich setzen)

'jetzt k”nnen wir daqs Textfile ”ffenen und nach Variablen suchen
OPEN "C:\variable.txt" FOR INPUT AS #1

DO
LINE INPUT #1, ein$ 'Zeilenweise einlesen aus der Datei
'Varname enthält den Variablennamen den wir suchen und wir prüfen ob der anfang der Zeile mit dem Namen den wir suchen übereinstimmt
IF MID$(ein$, 1, LEN(varname$)) = varname$ THEN
'Wir haben die Variable im Text gefunden und schreiben den wert in Varwert$
varwert$ = RIGHT$(ein$, LEN(ein$) - LEN(varname$) - 1)
gefunden = 1 'und raus aus der Schleife
END IF
LOOP UNTIL EOF(1) OR gefunden = 1
CLOSE #1

IF gefunden = 1 THEN 'Haben wir was gefunden ?
PRINT varname$ + "=" + varwert$ 'dann gib den Wert aus
ELSE
PRINT "Variable nicht gefunden" 'nix gefunden
END IF
SHELL "del c:\Variable.bat" 'Und wieder löschen
SHELL "del c:\Variable.txt" 'Und wieder löschen

'##ENDE Variable Auslesen

-----------------------------------------

Ich hoffe das hilft dir weiter!
Wenn du noch Fragen hast scheu dich nicht zu fragen.




------------------
__________________
|»»»»»SONIC««««««|
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
Sonic ist offline   Mit Zitat antworten
Alt 06.02.2001, 13:26   #3
Ramosera
Jr. Member
 
Registriert seit: 30.01.2001
Beiträge: 32


Beitrag

Schönen Dank!

Hab den gleichen Gedanken gehabt, aber wollte eine einfachere Lösung finden. Da mein Programm dann auf eine Diskette passen soll, bin ich mit der Grösse beschränkt...

aber trotzdem Danke, ich werds versuchen....

Ramosera ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 02:08 Uhr.


Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Forum SEO by Zoints
© 2009 FSL Verlag