Nun, 'Berechnen' ist das ja nicht wirklich.
Mach eine GUI, biete an die Anzahl der C-Atome zu wählen und die Art der Bindung (einfach, zweifach, dreifach) und generiere dann Code, und Bezeichnung laut Nomenklatur. Evtl. noch ein Bild der Moleküle.
Beiträge von BugFix
-
-
Dann zeig doch mal den Code, wie du es versucht hast. Willst du den Batchcode in eine temporäre Batch schreiben und diese dann ausführen? So richtig schlau werde ich da nicht mit.
-
Ja, wobei du im letzten Aufruf (mit Parameter 1) die 1 direkt als Ziffer übergeben kannst. Ist aber Wurscht, da AutoIt eh mit Datentyp Variant arbeitet.
-
Ich hab doch ein kleines Bsp. gemacht und auch extra geschrieben: Mehrere Werte als Array übergeben, einzelne brauchen nicht in ein Array gepackt werden.
[autoit]
Also mach ein Array:Local $array[5] = [ Wert1, Wert2, Wert3, Wert4, Wert5 ]
[/autoit]
und ruf die Funktion mit diesem Array auf. Alle Werte werden zu einem String verpackt. Und die Option 'V' ist in der Funktion ja integriert, deshalb heisst sie auch _PackInt32()
-
Wenn ich das richtig verstanden habe, sollte das hier funzen:
Spoiler anzeigen
[autoit]#Region - TimeStamp
[/autoit] [autoit][/autoit] [autoit]
; 2012-02-18 11:58:16
#EndRegion - TimeStampLocal $vInt[2] = [25, 75]
[/autoit] [autoit][/autoit] [autoit]
ConsoleWrite(_PackInt32($vInt) & @CRLF)Local $s = '0000000000000000000000000001100100000000000000000000000001001011'
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
$aReturn = _UnPackInt32($s)
For $i = 0 To UBound($aReturn) -1
ConsoleWrite($aReturn[$i] & @CRLF)
NextFunc _PackInt32($vArg) ; == entspricht pack() mit Format 'V' für alle Argumente (einzeln oder im Array übergeben)
[/autoit] [autoit][/autoit] [autoit]
If Not IsArray($vArg) Then $vArg = StringSplit($vArg, @CR, 2)
Local $sRet = '', $sBin
For $i = 0 To UBound($vArg) -1
$sBin = StringRight('0000000000000000000000000000000' & _IntToBin($vArg[$i]), 32)
$sRet &= $sBin
Next
Return $sRet
EndFuncFunc _UnPackInt32($sBin)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
Local $sArg = ''
While StringLen($sBin) > 0
$sArg &= StringLeft($sBin, 32) & '|'
$sBin = StringTrimLeft($sBin, 32)
WEnd
Local $aArg = StringSplit(StringTrimRight($sArg, 1), '|')
Local $aRet[$aArg[0]]
For $i = 1 To $aArg[0]
$aRet[$i-1] = _BinToInt($aArg[$i])
Next
Return $aRet
EndFunc;==============================================================================
[/autoit] [autoit][/autoit] [autoit]
; Wandelt einen Integerwert in eine Dualzahl
;==============================================================================
Func _IntToBin($Value)
$bin = ''
Do
$bin = Mod($Value, 2) & $bin
$Value = Floor($Value/2)
Until $Value = 0
Return $bin
EndFunc ;==>_IntToBin;==============================================================================
[/autoit]
; Wandelt eine Dualzahl in einen Integerwert
;==============================================================================
Func _BinToInt($sBin)
Local $iVal = 0, $aSplit = StringRegExp($sBin, '\d', 3)
For $i = UBound($aSplit) -1 To 0 Step -1
$iVal += $aSplit[$i] * (2^(UBound($aSplit)-1 -$i))
Next
Return $iVal
EndFunc ;==>_BinToInt -
Nette Idee.
Erinnert mich an meine Kindheit. Ich hatte im zarten Alter von 12 Jahren einen "Elektronik"-Bausatz bekommen. Das Teil bestand aus 8 "Registern" (das waren Plastikstäbe, die man vor oder zurück schieben konnte und die dabei jeweils Kontakte nach oben oder unten verbanden) die in einer Plastikplatte mit lauter Steckkontakten waren, die man mit Drahtbrücken verbinden konnte. Der generierte Zustand (On/Off) wurde in einer Lampe über dem Register angezeigt. Damit habe ich damals sogar eine Steuerung für meine Modelleisenbahn 'gestöpselt'. Und das ist genau das, was mit diesen Gattern geschieht: Zustände miteinander verknüpfen.
Wer damit nicht vertraut ist, das Thema aber interessant findet, sollte sich zwingend vorher mal einige solcher Schaltungen anschauen und auch versuchen nachzuvollziehen, was dort passiert. Ohne dieses Verständnis kommt man sonst nicht weit.
Sucht mal nach Datenblättern für primitive Schaltkreise, da sollten passende Dokumentationen zu finden sein.
Ob ich mitmache, weiß ich noch nicht. Das erste Quartal ist bei mir immer zeitmäßig etwas eng. Schaun' mer mal. -
Es ist eigentlich etwas widersinnig, mit AutoIt Batchdateien aufzurufen. Das sind die vielzitierten "Perlen vor die Säue.."

Portiere deine Batch zu AutoIt und du bist aller Sorgen ledig.Unabhängig davon: Um auch Pausen zu berücksichtigen musst du abwarten bis ein Batchaufruf abgearbeitet wurde. Dazu nimmst du nicht Run() sondern
[autoit]RunWait()
[/autoit].
-
-
Alles Gute und Willkommen im Club der Alten Säcke!

-
-
-
Geht mit dem Zwischenschritt Hex()
[autoit]ConsoleWrite(Dec(Hex('0xFF')) & @CRLF)
[/autoit] -
Das ist unerklärlich, aber was ähnliches habe ich im EN-Forum. Wie es scheint ist LUA zu schnell.
Bitte füge mal diese Funktion:
in das Skript am Anfang bei den Deklarationen ein.
Anschließend änderst du die Funktion "CommentHitKey:OnKey(_keycode)" wie folgt.Code
Alles anzeigenfunction CommentHitKey:OnKey(_keycode) if fCommentModeOn then -- fortsetzender Kommentarmodus ist aktiv pause() local fBreak = isLFpos() if _keycode == 32 and fBreak then -- Leerzeichen u. Position für Zeilenwechsel erreicht (automatischer Zeilenwechsel) pause() fNext = true -- Marker neue Zeile elseif _keycode == 40 then -- Pfeil_ab (manueller Zeilenwechsel) pause() fNext = true fIsNewLine = true -- Marker neue Zeile und Marker in-neuer-Zeile elseif fNext then -- in neuer Zeile ==> Kommentarzeichen einfügen pause() fNext = false if not fIsNewLine then -- bei automatischem Wechsel (wenn in den properties ein Umbruchsymbol definiert): editor:InsertText(editor.CurrentPos, charBreak1) -- am Ende Umbruchsymbol aus den properties anhängen end ContinuousComment() end end return nil end
Ist nur eine geringe Verzögerung, aber das könnte es bringen. -
Nach einem kurzen Blick drauf (lies bloss nicht die deutsche Übersetzung, da kommst du vor Lachen nicht in den Schlaf) bin ich der Meinung, dass du du den Code fast 1:1 übernehmen kannst. Da bedarf es nur leichter Syntaxanpassungen.
-
-
-
-
muss man den Quellcode verstehen ??
Ja, das ist der Inhalt einer Zuweisung in der INI-Datei: Schlüssel=Wert
Lies bitte in der Hilfe zu den INI-Funktionen, dann wird dir alles klar. -
Zitat
jedoch keine archive mit einer älteren scite4autoit version gefunden.
Im Anhang mal die v2.2.7 -
Schau dir mal den PDF-Creator an. Dazu gibt es hier auch eine UDF.
Der kann per Kommandozeilenbefehl gesteuert werden, Drucker wählen, Eigenschaften der Drucker setzen, drucken. Also eigentlich alles, was du brauchst.
Auch wenn das Tool "Creator" heißt - es werden PDF nicht nur erstellt, sondern auch weiterverarbeitet.
In der Hilfe dazu sind auch bereits fertige Skriptbeispiele enthalten an denen du dich orientieren kannst.