apop85
Goto Top

Einheiten-Umrechner (txt Datenbank erstellen und Abfragen)

Hallo. Hier noch etwas was ich in meinem Rechner integrieren möchte. Beim ausführen des Rechners wird abgefragt wie der Stoff heißt und später welche molare Masse er besitzt. Diese Informationen würde ich gerne in einer txt speichern und ggf abfragen.

Also. Ich nehme zum Beispiel Kohlenstoff mit einer molaren Masse von 12g/mol.
Dies soll in einer txt hinterlegt werden damit man wenn man das nächste mal Kohlenstoff eingibt die Eingabe der molaren Masse wegfällt indem diese aus der txt ausgelesen wird.

Mit txt Erstellung und Abfrage habe ich bisher überhaupt keine Erfahrung, daher habe ich auch noch keinen Ansatz für diesen Teil.

Hier ein Auszug aus dem bisherigen Umrechnungsscript
:CALC2
cls
echo - - - - - - - - - - - - - - - - - - %DATE% - %TIME% - - - - - - - - - - - - - - - - -
echo Version 1.0b
echo.
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
echo Umrechnung von mcg/l zu nmol/l
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
echo.
echo Name des Stoffes
set /p name=
echo.
echo Eingabe in mcg/l Vor dem Komma (z.B. bei 1.50 wäre es 1)
set /p mcg=
echo.
echo Eingabe in mcg/l nach dem Komma (z.B. bei 1.50 wäre es 50)
set /p mcgnk=
echo.
echo Ihre Eingabe lautet %mcg%.%mcgnk% mcg/l
echo J/N
set /p choice=

if %choice% == j goto RECHNUNG
if %choice% == J goto RECHNUNG
if %choice% == n goto CALC2
if %choice% == N goto CALC2
goto CALC2

:RECHNUNG
cls
echo - - - - - - - - - - - - - - - - - - %DATE% - %TIME% - - - - - - - - - - - - - - - - -
echo Version 1.0b
echo.
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
echo Umrechnung von mcg/l zu nmol/l
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
echo.
echo Erste Eingabe: %mcg%.%mcgnk% mcg/l
echo.
echo Eingabe der Molaren Masse in g/mol vor dem Komma
set /p gmol=
echo.
echo Eingabe der Molaren Masse in g/mol nach dem Komma
set /p gmolnk=

echo.
echo Ihre Eingabe lautet %gmol%.%gmolnk% g/mol
echo J/N
set /p choice=

if %choice% == j goto RECHNUNG2
if %choice% == J goto RECHNUNG2
if %choice% == n goto RECHNUNG
if %choice% == N goto RECHNUNG
goto RECHNUNG

:RECHNUNG2
set /a mal0="100000"  
set /a mal1="10000000"  
set /a mal2="100"  
set /a prod0=%mcg%*%mal1%
set /a prod1=%mcgnk%*%mal0%
set /a prod2=%prod0%+%prod1%
set /a prod3=%gmol%*%mal2%
set /a prod4=%gmolnk%*"1"  
set /a prod5=%prod3%+%prod4%
set /a prom0=%prod5%/%mal0%
set /a div0=%prod2%/%prod5%
set /a dif0=%div0%/"100"  
set /a dif1=%dif0%*"100"  
set /a nk0=%div0%-%dif1%


cls
echo - - - - - - - - - - - - - - - - - - %DATE% - %TIME% - - - - - - - - - - - - - - - - -
echo Version 1.0b
echo.
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
echo Umrechnung von mcg/l zu nmol/l
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
echo.
echo.
echo Stoffname: %name%
echo.
echo.
echo.
echo %mcg%.%mcgnk% mcg/l
echo ------------------ x 1000 = %dif0%.%nk0% nmol/l
echo %gmol%.%gmolnk% g/mol
echo.
echo.
echo.
echo.
echo.
echo 0 für Zurück 1 für erneute Berechnung

set /p choice=

if %choice% == 0 goto TOOLS
if %choice% == 1 goto CALC1
if %choice% == z goto ZS

Es muss auch nicht unbedingt eine txt Datei sein, kann auch mittels variabelndefinition in einer externen bat liegen.
Ich würde auch gerne hinterlegen ob der Eintrag neu ist oder ob die eingegebene Masse bereits kontrolliert wurde.

Z.b.
Set /a Kohlenstoff="12"  
Set /a Kohlenstoffctl="Nein"  
Echo Kohlenstoff = %Kohlenstoff% g/mol Überprüfung: Nein

Die Überprüfung kann ich dann ja von Hand ändern. Außer jemand hat da grad einen Vorschlag wie ich das im Rechner integrieren könnte. Z.b durch zweimalige Eingabe der selben Masse wird das Nein auf plausibel geändert...

Eine weitere Frage wäre ob ich die Variablen mcg, mcgnk sowie gmol und gmolnk in einem Zug definieren kann. Also so, dass ich nicht die Vor- und Nachkommastelle einzeln abfragen muss.

Irgendwie sowas
set /p mcg="".set mcgnk=""  

So dass wenn ich z.B. 4.51 eingebe der Punkt zwischen den Zahlen die Variablen trennt. So könnte würde die Ausgabe lauten:
echo %mcg%.%mcgnk% mcg/l --> 4.51 mcg/l


Danke für eure Hilfe

Content-Key: 204534

Url: https://administrator.de/contentid/204534

Printed on: April 20, 2024 at 00:04 o'clock

Member: Apop85
Apop85 Apr 11, 2013 at 01:44:37 (UTC)
Goto Top
So habs nun zusammengetragen
:MCGNMOL
cls
echo - - - - - - - - - - - - - - - - - - %DATE% - %TIME% - - - - - - - - - - - - - - - - -
echo                                     Version : %version%
echo ________________________________________________________________________________________________
echo.
echo                                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
echo                                  Umrechnung von mcg/l zu nmol/l
echo                                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
echo.
echo                                         Name des Stoffes
echo                                         Abbrechen mit x
set /p name=                                       %name% : 

for /f "tokens=1-3 delims=-. " %%i in ('findstr "%name%" "%cd%\database.txt"') do set "DBname=%%i"& set "gmol=%%j"& set "gmolnk=%%k"  
if "%name%"=="%DBname%" (echo                                         Eintrag gefunden! & goto EINGMCGNK) else goto NMOLWIKI  

Damit habe ich meien Abfrage komplett. Perfekt wäre jetzt noch wenn die Voraussetzung wäre, dass zwei Identische Einträge vorhanden sein müssen, sozusagen als verifikation der Eingabe.

Ich werde das Problem mal als Gelöst markieren. Wenn Jemand noch einen Vorschlag hat bezügl des doppelten Eintrags. Da würde ich mich sehr Freuen.

Danke für die Mithilfe (Auch wenn ich mich in diesem Thread alleine unterhalte haben mir andere Beiträge doch auch sehr geholfen auf des Rätsels Lösung zu kommen)