Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

(Batch) Einzelne Zeile auslesen?

Frage Entwicklung Batch & Shell

Mitglied: Budders

Budders (Level 1) - Jetzt verbinden

20.04.2013 um 11:05 Uhr, 3347 Aufrufe, 3 Kommentare, 1 Danke

Ich bin gerade dabei eine Art Tamagochi in Batch zu programmieren und habe ein Problem im "Shop"

Guten Tag,
ich habe gestern begonnen einen Tamagochi in Batch zu programmieren.
Nun möchte ich für den Shop Bereich die Preise aus einer Datei auslesen, es ist jeweils nur eine Zahl pro Zeile in der entsprechenden Datei.
Ich habe bereits Biber's LineToVar gefunden, doch damit habe ich das Problem, dass es eigene Sprungmarken verwendet..
Wenn es eine Möglichkeit gibt zur zuletzt verwendeten Sprungmarke zurück zu springen wäre das natürlich großartig und das Problem wäre gelöst.
Hier ist mal ein Teil des Codes.
01.
echo Was moechtest du kaufen? 
02.
echo ======================= 
03.
echo 1) Schokolade (1 Hunger) 
04.
echo 2) Backkartoffel (5 Hunger) 
05.
echo 3) Allyoucaneat (10 Hunger) 
06.
echo Du hast %money% Geld 
07.
set /p choice3= 
08.
 
09.
if "%choice3%"=="1" ( 
10.
 
11.
Hier muss irgendwie die Zeile 1 aus der Datei "price" ausgelsen und in die Variable %price% geschrieben werden.. 
12.
 
13.
if %money% LSS %price% goto fail 
14.
set /a money=%money% - %price% 
15.
ping -n 2 127.0.0.1 > NUL 
16.
echo Kauf erfogreich 
17.
goto shop 
18.
)
Wenn jemand eine Lösung für das Problem hat, so wie ich es mir gedacht habe oder anders (solang es funktioniert ist mir egal WIE es gelöst wird ^^ ) wäre ich demjenigen sehr dankbar

Vielen Dank schonmal jetzt.
MfG Budders
Mitglied: rubberman
20.04.2013 um 11:43 Uhr
Hallo Budders, willkommen im Forum.

Mal was zum Testen. In price.txt befinden sich die Zeilen
10
Der Batchcode:
01.
@echo off &setlocal 
02.
set /a "money=8" 
03.
 
04.
echo Was moechtest du kaufen? 
05.
echo ======================= 
06.
echo 1) Schokolade (1 Hunger) 
07.
echo 2) Backkartoffel (5 Hunger) 
08.
echo 3) Allyoucaneat (10 Hunger) 
09.
echo Du hast %money% Geld 
10.
set /p choice3= 
11.
 
12.
call :getPrice "price.txt" "%choice3%" price 
13.
 
14.
if %money% LSS %price% ( 
15.
  call :fail 
16.
) else ( 
17.
  set /a money-=%price% 
18.
  ping -n 2 127.0.0.1 > NUL 
19.
  echo Kauf erfogreich 
20.
  call :shop 
21.
22.
pause 
23.
exit /b 
24.
:: Ende des Hauptcodes. 
25.
 
26.
 
27.
:: Hole Preis 
28.
:getPrice FileName Line VarName 
29.
<"%~1" (for /l %%i in (1 1 %~2) do set /p "%~3=") 
30.
exit /b 
31.
 
32.
:: Bei Fehler 
33.
:fail 
34.
echo Du hast nicht genug Geld. 
35.
echo Was weiter passieren soll weiss ich nicht. 
36.
exit /b 
37.
 
38.
:: Shop 
39.
:shop 
40.
echo Du hast %money% Geld. 
41.
echo Was weiter passieren soll weiss ich nicht. 
42.
exit /b
Versuche mal ohne GOTOs auszukommen. Damit bekommst du Spaghetticode, bei dem du irgendwann selbst nicht mehr weißt, wohin überall gesprungen wird. Versuche es mit CALL :Label, mit EXIT /B kehrst du an die Stelle zurück, an dem der Aufruf stattgefunden hat.
GOTO ist nur was für Schleifen, die mit FOR nicht abzubilden sind.

Grüße
rubberman
Bitte warten ..
Mitglied: Budders
20.04.2013 um 12:00 Uhr
Ich bin beeindruckt. :o
vielen Dank für die Hilfe, es funktioniert super!
Und danke für den Tipp mit CALL und EXIT /B!
Ich habe nie was anderes gelernt bzw. mir was anderes beigebracht, da ich bis heute immer gut damit zurecht gekommen bin, aber man lernt ja nie aus

Danke und einen schönen Samstag wünsche ich.
Bitte warten ..
Mitglied: rubberman
20.04.2013 um 12:05 Uhr
Hallo Budders,

gern geschehen

Du bist nicht der einzige, der mit Hunderten GOTOs in Batch arbeitet. Das ist einer der Gründe warum Batch in Verruf gekommen ist. Man wird regelrecht verleitet Spaghetticode zu schreiben. Aus vielen anderen Sprachen wurde GOTO rigoros verbannt. Wenn du also mal vorhast eine andere Sprache zu lernen, wirst du es sehr schwer haben Lösungen zu finden, die ohne GOTO auskommen. Also am besten gar nicht erst angewöhnen

Grüße und ebenfalls ein schönes WE
rubberman
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
BATCH: Einzelne Zeilen per Batch auslesen und Daten in Datei importieren
gelöst Frage von thurboBatch & Shell1 Kommentar

Hallo liebe Gemeinde, freu mich über meine Erste Frage und hoffe auf Antworten. ;-) Habe Kundendaten unseres alten Servers ...

Batch & Shell
Mit batch zeilen auslesen
gelöst Frage von keksegrillerBatch & Shell2 Kommentare

Hallihallo, ich fange gerade an mit batch-Dateien zu arbeiten und komme trotz stundenlangem ausprobieren und googlen leider nicht mehr ...

Batch & Shell
In Batch mehrere Zeilen auslesen ?!?
gelöst Frage von JanInfoHDBatch & Shell2 Kommentare

Ich habe in Programm in Batch geschrieben, doch es ließt aus einer .txt-Datei immer nur die erste Zeile, Was ...

Batch & Shell
Mit Batch eine einzelne Zeile in einer anderen Farbe darstellen?!
Frage von noah1400Batch & Shell2 Kommentare

Hallo Gibt es ein Möglichkeit mit Batch mit dem befehl "echo" oder mit einem anderen eine einzelne Zeile in ...

Neue Wissensbeiträge
Viren und Trojaner

Deaktivierter Keylogger in HP Notebooks entdeckt

Information von bitcoin vor 6 StundenViren und Trojaner1 Kommentar

Ein Grund mehr warum man Vorinstallationen der Hersteller immer blank bügeln sollte Der deaktivierte Keylogger findet sich im vorinstallierten ...

Router & Routing

Lets Encrypt kommt auf die FritzBox

Information von bitcoin vor 10 StundenRouter & Routing

In der neuesten Labor-Version der FB7490 integriert AVM unter anderem einen Let's Encrypt Client für Zugriffe auf das Webinterface ...

Internet

Was nützt HTTPS, wenn es auch von Phishing Web-Seiten genutzt wird

Information von Penny.Cilin vor 3 TagenInternet17 Kommentare

HTTPS richtig einschätzen Ob man eine Webseite via HTTPS aufruft, zeigt ein Schloss neben der Adresse im Webbrowser an. ...

Webbrowser

Bugfix für Firefox Quantum released - Installation erfolgt teilweise nicht automatisch!

Erfahrungsbericht von Volchy vor 4 TagenWebbrowser8 Kommentare

Hallo zusammen, gem. dem Artike von heise online wurde mit VersionFirefox 57.0.1 sicherheitsrelevante Bugs behoben. Entgegen der aktuellen Veröffentlichung ...

Heiß diskutierte Inhalte
Batch & Shell
Trusted Sites für alle User auf dem PC einpflegen
Frage von xXTaKuZaXxBatch & Shell12 Kommentare

Aufgabestellung: Es sollen auf 1 PC (bzw. mehreren PCs) vertrauenswürdige Sites per Powershell eingetragen werden, die für alle User ...

Voice over IP
Telefonstörung - Ortsrufnummern kein Verbindungsaufbau
Frage von Windows10GegnerVoice over IP10 Kommentare

Hallo, sowohl bei uns als auch beim Opa ist es über VoIP nicht möglich Ortsrufnummern anzurufen. Es kommt nach ...

Vmware
DOS 6.22 in VMWare mit CD-ROM
gelöst Frage von hesperVmware8 Kommentare

Hallo zusammen! Ich hab ein saublödes Problem. Es ist eine VMWare mit DOS 6.22 zu erstellen auf dem ein ...

Cloud-Dienste
PIM als SaaS Nutzungsgebühr
Frage von vanTastCloud-Dienste8 Kommentare

Moin, wir haben uns ein PIM (Product Information Management) nach unseren Ansprüchen für viel Geld als SaaS-Lösung bauen lassen. ...