Variablen Problem
Variablen Problem
Hallo erst mal @ all!!!
Erst mal ein lob für das wirklich gut designete Forum!!!
So jetzt zum eigentlich Problem:
Es geht um eine .ini die ausgeführt werden soll, in der IPs bentzt werden.Da aber eine konstant vorgegebene IP im Quellcode zu IP-Konflikten im Netzwerk führt, muß die IP für jeden Rechner neu generiert werden.
IDEE:
Man deklariert eine Variable, in diese schreibt man die Systemzeit, nutzt davon die letzten zwei Stellen als den letzten Block in der IP und alles funktioniert wieder...
Ich bekomme es aber einfach nicht hin die Uhrzeit, geschweige denn einen anderen Wert(54; 66; 01 ; oder andere) in die Var zu schreiben.
Ich habe es so probiert:
set /a Variable=87
den Befehl fürht DOS problemlos aus, nur ich weiß icht wie ich den Wert wieder ausgeben kann um zu testen ob das geklappt hat.
Mit der Systemzeit hab ich auch ein Problem, da man mit dem Befehl 'time' die Uhrzeit anzeigen und ändern kann kann man nicht einfach time=Varibale setzen.
Man braucht einen Trick um die reine Uhrzeit hineinzuschreiben...
Wäre echt super wenn ihr mir helfen könntet.
Ach und zur Info, bin wirklich totaler Anfänger, d.h. kann keine TurboPascal o.ä. :D
Erst mal ein lob für das wirklich gut designete Forum!!!
So jetzt zum eigentlich Problem:
Es geht um eine .ini die ausgeführt werden soll, in der IPs bentzt werden.Da aber eine konstant vorgegebene IP im Quellcode zu IP-Konflikten im Netzwerk führt, muß die IP für jeden Rechner neu generiert werden.
IDEE:
Man deklariert eine Variable, in diese schreibt man die Systemzeit, nutzt davon die letzten zwei Stellen als den letzten Block in der IP und alles funktioniert wieder...
Ich bekomme es aber einfach nicht hin die Uhrzeit, geschweige denn einen anderen Wert(54; 66; 01 ; oder andere) in die Var zu schreiben.
Ich habe es so probiert:
set /a Variable=87
den Befehl fürht DOS problemlos aus, nur ich weiß icht wie ich den Wert wieder ausgeben kann um zu testen ob das geklappt hat.
Mit der Systemzeit hab ich auch ein Problem, da man mit dem Befehl 'time' die Uhrzeit anzeigen und ändern kann kann man nicht einfach time=Varibale setzen.
Man braucht einen Trick um die reine Uhrzeit hineinzuschreiben...
Wäre echt super wenn ihr mir helfen könntet.
Ach und zur Info, bin wirklich totaler Anfänger, d.h. kann keine TurboPascal o.ä. :D
- CptKlotz
- Admin a.D.
- Beiträge: 2947
- Registriert: Mo 7. Mär 2005, 23:36
- Wohnort: Dorsten
- Kontaktdaten:
Hallo und Willkommen im Forum.
Vielen Dank für das Lob
Zur Sache:
Eine .ini-Datei ist unter DOS nicht ausführbar, meinst Du eine Batchdatei? (.bat)?
Birgt Deine Zufallsgenerierung nicht auch zumindest noch das Potential eines Konfliktes, weil zufällig zwei gleiche IPs vergeben werden könnten? Wenn ja, wäre das nur eine Milderung, keine Lösung des Problems.
Die letzten beiden Stellen der Uhrzeit könnten (zumindest im Format Stunden:Minuten:Sekunden) den Wert 0...59 annehmen. Das paßt nicht sonderlich gut auf 255 mögliche Werte bei einer IP-Adresse wie 192.168.0.xxx.
Wofür ist der /a-Parameter des SET-Befehls gut und von welcher DOS-Version gehst Du dabei überhaupt aus? Bei meinem DOS 6.22 ist kein /a Parameter dokumentiert. Die Eingabe von
führt dazu, daß die Umgebungsvariable mit dem Namen "/A VARIABLE" gesetzt wird und den Wert "TEST" erhält. /A wird also nicht als Parameter erkannt sondern als Teil des Variablennamens.
Mir ist insgesamt nicht ganz klar, was genau Du überhaupt erreichen willst, geschweige denn, ob das mit Batch-Programmierung (falls Du die meinst!) überhaupt möglich ist und ob es nicht bessere Lösungen für das Problem gibt.
Kannst Du da etwas konkreter werden?
Auf die Gefahr hin, mich wieder unbeliebt zu machen:
Leute, überlegt Euch VORHER, was ihr genau erreichen wollt und schreibt dann deutliche und verständliche Postings. Ihr müßt dabei bedenken, daß Eure Mit-Forenuser, egal wie erfahren diese sind, nicht erraten können, was Ihr eigentlich wollt. Es kann auch hilfreich sein, erstmal das Endziel der Bemühungen zu erläutern, bevor man eine Methode wie "ini-Dateien" oder "Batch-Programmierung" voraussetzt - insbesondere, wenn man absoluter Anfänger ist. Die erfahreneren Teilnehmer können dann immer noch überlegen, was die beste Methode ist.
Gruß,
Stephan
Vielen Dank für das Lob
Zur Sache:
Eine .ini-Datei ist unter DOS nicht ausführbar, meinst Du eine Batchdatei? (.bat)?
Birgt Deine Zufallsgenerierung nicht auch zumindest noch das Potential eines Konfliktes, weil zufällig zwei gleiche IPs vergeben werden könnten? Wenn ja, wäre das nur eine Milderung, keine Lösung des Problems.
Die letzten beiden Stellen der Uhrzeit könnten (zumindest im Format Stunden:Minuten:Sekunden) den Wert 0...59 annehmen. Das paßt nicht sonderlich gut auf 255 mögliche Werte bei einer IP-Adresse wie 192.168.0.xxx.
Wofür ist der /a-Parameter des SET-Befehls gut und von welcher DOS-Version gehst Du dabei überhaupt aus? Bei meinem DOS 6.22 ist kein /a Parameter dokumentiert. Die Eingabe von
Code: Alles auswählen
SET /A VARIABLE=TEST
Mir ist insgesamt nicht ganz klar, was genau Du überhaupt erreichen willst, geschweige denn, ob das mit Batch-Programmierung (falls Du die meinst!) überhaupt möglich ist und ob es nicht bessere Lösungen für das Problem gibt.
Kannst Du da etwas konkreter werden?
Auf die Gefahr hin, mich wieder unbeliebt zu machen:
Leute, überlegt Euch VORHER, was ihr genau erreichen wollt und schreibt dann deutliche und verständliche Postings. Ihr müßt dabei bedenken, daß Eure Mit-Forenuser, egal wie erfahren diese sind, nicht erraten können, was Ihr eigentlich wollt. Es kann auch hilfreich sein, erstmal das Endziel der Bemühungen zu erläutern, bevor man eine Methode wie "ini-Dateien" oder "Batch-Programmierung" voraussetzt - insbesondere, wenn man absoluter Anfänger ist. Die erfahreneren Teilnehmer können dann immer noch überlegen, was die beste Methode ist.
Gruß,
Stephan
“It is impossible to defeat an ignorant man in argument.” (William G. McAdoo)
Erst mal vielen Dank!
Ich nutze das DOS 6.2.
Das mit dem Namen hab ich mir notiert, aber ich weiß immer noch nciht, wie ich den Wert der Var abrufen kann...
Zum Verstädnis:
Also mit dem DrumHerum weiß ich selber nicht so genau bescheid, weil ich das für mein Praktikum machen muß und die da ziemlich kompliziert arbeiten.
Ich muß einfach nur die sekunden der Systemzeit in die Variable bekommen. Und die dann wieder abrufen können. Dann bin cih schon einen großen Schritt vorwärts gekommen...
Ach wegen der IP weil die 255 Möglichkeiten hat, die Sek aber nur 59(bzw 60)... Das ist kein Thema, die 60 reichen vollkommen aus...
Ich nutze das DOS 6.2.
Das mit dem Namen hab ich mir notiert, aber ich weiß immer noch nciht, wie ich den Wert der Var abrufen kann...
Zum Verstädnis:
Also mit dem DrumHerum weiß ich selber nicht so genau bescheid, weil ich das für mein Praktikum machen muß und die da ziemlich kompliziert arbeiten.
Ich muß einfach nur die sekunden der Systemzeit in die Variable bekommen. Und die dann wieder abrufen können. Dann bin cih schon einen großen Schritt vorwärts gekommen...
Ach wegen der IP weil die 255 Möglichkeiten hat, die Sek aber nur 59(bzw 60)... Das ist kein Thema, die 60 reichen vollkommen aus...
Hm, ich weiss nicht, ob das mit den herkömmlichen DOS-Befehle ausreichen, wahrscheinlich ist es schon sinnvoller, vielleicht ein Programm zu schreiben, da gibt es genug Möglichkeiten, um an die Systemzeit zu kommen.
Da ist vielleicht sogar der Vorteil mit drin, dass intern ein Tag von 24 Stunden in der ganzen Zahl 1 repräsentiert wird und jede Tageszeit entsprechend ein Bruchteil dieses Wertes sind.
Ich weiss nicht ob das in Turb C so realisiert ist, aber ich seh mir das mal an.
In Pascal ging das zumindest.
Da ist vielleicht sogar der Vorteil mit drin, dass intern ein Tag von 24 Stunden in der ganzen Zahl 1 repräsentiert wird und jede Tageszeit entsprechend ein Bruchteil dieses Wertes sind.
Ich weiss nicht ob das in Turb C so realisiert ist, aber ich seh mir das mal an.
In Pascal ging das zumindest.
- ChrisR3tro
- Administrator
- Beiträge: 1981
- Registriert: Mo 7. Mär 2005, 23:33
- Wohnort: NRW
- Kontaktdaten:
- CptKlotz
- Admin a.D.
- Beiträge: 2947
- Registriert: Mo 7. Mär 2005, 23:36
- Wohnort: Dorsten
- Kontaktdaten:
Benutzen nicht in der Tat einige Programmiersprachen die Uhr, um Zufallszahlen zu erzeugen?
Bei QBASIC muß man immer die Zeile RANDOMIZE (TIMER) einfügen, bevor man die RND-Funktion benutzt, wenn man nicht bei jedem Programmlauf dieselbe Zufallszahl bekommen möchte.
Bei QBASIC muß man immer die Zeile RANDOMIZE (TIMER) einfügen, bevor man die RND-Funktion benutzt, wenn man nicht bei jedem Programmlauf dieselbe Zufallszahl bekommen möchte.
“It is impossible to defeat an ignorant man in argument.” (William G. McAdoo)
- ChrisR3tro
- Administrator
- Beiträge: 1981
- Registriert: Mo 7. Mär 2005, 23:33
- Wohnort: NRW
- Kontaktdaten:
Moin moin!
Also zur aktuellen Situation.
Ich habe es auf die Reihe bekommen einen Wert in einen beliebige Variable zu bekommen.
Jetzt zur nächsten Stufe:
Wie bekomme ich die Systemzeit verarbeitet :?:
Ich meine es muß ja nicht unbedingt die Uhrzeit sein, ich brauch halt irgend einen zahlenwert der kontinuierlich weiterläuft und den ich verarbeiten kann... :D
Könnte ich da evtl das Pipe-Zeichen( | ) verwenden? Hab gelesen das dient zur verkettung von Befehlen. also die ausgabe des einen befehls würde dann die eingabe des anderen sein...
Also zur aktuellen Situation.
Ich habe es auf die Reihe bekommen einen Wert in einen beliebige Variable zu bekommen.
Jetzt zur nächsten Stufe:
Wie bekomme ich die Systemzeit verarbeitet :?:
Ich meine es muß ja nicht unbedingt die Uhrzeit sein, ich brauch halt irgend einen zahlenwert der kontinuierlich weiterläuft und den ich verarbeiten kann... :D
Könnte ich da evtl das Pipe-Zeichen( | ) verwenden? Hab gelesen das dient zur verkettung von Befehlen. also die ausgabe des einen befehls würde dann die eingabe des anderen sein...