![]() |
![]() |
|
![]() |
![]() |
|
Programmierung Rat & Tat für Programmierer |
![]() |
|
Themen-Optionen | Ansicht |
![]() |
#1 |
Jr. Member
![]() Registriert seit: 30.01.2001
Beiträge: 32
|
![]() 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?? |
![]() |
![]() |
![]() |
#2 |
Master
![]() |
![]() 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««««««| ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ |
![]() |
![]() |
![]() |
#3 |
Jr. Member
![]() Registriert seit: 30.01.2001
Beiträge: 32
|
![]() 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.... |
![]() |
![]() |
![]() |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
|
|