String und input() - Frage :D

Anfängerfragen zum Programmieren mit PureBasic.
Jume

String und input() - Frage :D

Beitrag von Jume »

Tag Leute,

bin ein totaler Anfänger und weiß das folgender Code nicht richtig ist.
Den Code habe ich nur zum ausprobieren geschrieben, Anfänger halt.

Mir geht es um folgendes:

Die Zeile zahl1.s = input() und die gleiche dadrunter funktioniert natürlich nicht, wie muss ich das ganze aufschreiben damit input() auch zahl1 = input() akzeptiert ?

Komme leider total durcheinander gerade, hoffe mir kann wer helfen :bounce:


EDIT:

Habe das jetzt nochmal rauskopiert, es geht um folgende Codezeilen:

Procedure rechnen()
zahl1.s = Input()
zahl2.s = Input()
summe$ = zahl1+zahl2
PrintN(summe$)
EndProcedure

Code: Alles auswählen

OpenConsole()


Procedure textfarbe()
ConsoleColor(3, 8)
EndProcedure

Procedure textnormal()
ConsoleColor(1, 0)
EndProcedure

Procedure rechnen()
zahl1.s = Input()
zahl2.s = Input()
summe$ = zahl1+zahl2
PrintN(summe$)
EndProcedure

eingabe$ = Input()

If eingabe$ = "farbe"
textfarbe()
PrintN("hallo wie gehts")
textnormal()
EndIf

If eingabe$ = "rechnen"
rechnen()
EndIf

Input()
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7031
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: String und input() - Frage :D

Beitrag von STARGÅTE »

input() liefert dir einen String (Zeichenkette zurück) .s
wenn du diese zeiche3nkette als Zahl haben willst nutze die Funktion (für ganze zahlen) Val()
Wenn du dnan eine Zahl wieder in eine zeichenkettte umwandeln willst nutze Str()

Code: Alles auswählen

OpenConsole()


Procedure textfarbe()
ConsoleColor(3, 8)
EndProcedure

Procedure textnormal()
ConsoleColor(1, 0)
EndProcedure

Procedure rechnen()
zahl1.s = Input()
zahl2.s = Input()
summe$ = Str( Val(zahl1) + Val(zahl2) )
PrintN(summe$)
EndProcedure

eingabe$ = Input()

If eingabe$ = "farbe"
textfarbe()
PrintN("hallo wie gehts")
textnormal()
EndIf

If eingabe$ = "rechnen"
rechnen()
EndIf

Input()
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
jojo1541
Beiträge: 431
Registriert: 15.09.2007 17:12
Wohnort: Irgendwo im Nirgendwo

Re: String und input() - Frage :D

Beitrag von jojo1541 »

Du willst also die eingegebenen Werte addieren?

so sollte es gehen:

Code: Alles auswählen

zahl1.s = input()
zahl2.s = input()

Summe = val(zahl1) + val(zahl2)

printn(str(Summe))

Das kommt davon, wenn man schreibt und dann zwischendurch mal weg geht, ein anderer is früher drann... -.-
Ich verkaufe Rechtschreibfehler und jede menge GROßBUCHSTABEN. Alles unbegrenzt zu haben.
Jume

Re: String und input() - Frage :D

Beitrag von Jume »

ahhhh, vielen dank :D

nun hab ichs auf dem schirm ! :bounce: :praise:
Jume

Re: String und input() - Frage :D

Beitrag von Jume »

Procedure sucheversicherungen()
datei$ = "versicherungen.txt"
PrintN("Name der Versicherung: ")
versicherung$ = Input()
versicherung$ = ReadWord(0, datei$)

EndProcedure

bad parameter sagt mir pb. was genau ist nun falsch. der code ist natürlich noch nicht zuende aber soweit führter es auch noch nicht aus. ich möchte das er aus der datei$ ein von mir bestimmtes (eingegebenes) wort sucht.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Re: String und input() - Frage :D

Beitrag von Kaeru Gaman »

lies dir die Help zur File-Lib mal durch.
du musst ReadFile nutzen, wo du den Dateinamen angibst, um die Datei zum lesen zu öffnen.
ReadWord liest einen 16bit-Wert, eine Zahl zwischen -32768 und 32767, und hat nur einen Parameter.
und am Ende dran denken, CloseFile zu benutzen.

PS:
wenn du in einer Datei, die wohl so etwas wie eine Datenbank darstellen soll, einen Eintrag finden willst,
musst du die Datei öffnen, und nach und nach jeden Datensatz KOMPLETT einlesen,
dann kannst du den Schlüsselbegriff vergleichen, und den Rest des Datensatzes zuordnen.

einfacher wird das, wenn du die internen Database-Funktionen benutzt,
aber dafür musst du Anfragen per SQL oder ODBC senden.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Jume

Re: String und input() - Frage :D

Beitrag von Jume »

habe die hilfe bereits verwendet, das mit closefile war mir bewusst habe ich einfach erstmal noch rausgelassen. mirging es erstmal nur um den badparameter ich finde es einfach nicht.

EDIT:

Procedure sucheversicherungen()
datei$ = "versicherungen.txt"
PrintN("Name der Versicherung: ")
versicherung$ = Input()
ReadFile(0, "versicherungen.txt")
versicherung$ = ReadWord(0)
CloseFile(0)
EndProcedure

soweit so gut, nur gibst wieder probleme mit dem string bei in der dritten zeile von unten.
Zuletzt geändert von Jume am 07.01.2010 00:07, insgesamt 1-mal geändert.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Re: String und input() - Frage :D

Beitrag von Kaeru Gaman »

Bad Parameter heißt, dass du bei ReadWord zwei Parameter angibst, wo nur einer hingehört.
und deine Datei ist nicht offen, seh ich nix davon, das ist aber nicht die Fehlermeldung.

bitte auch mein PS lesen, und bitte die Help genau lesen und dementsprechend handeln.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Jume

Re: String und input() - Frage :D

Beitrag von Jume »

habe nochmal meinen beitrag editiert, dein ps stand dort noch nicht als ich geantwortet hatte. habe es nun berücksichtigt.
Crawler
Beiträge: 110
Registriert: 08.02.2009 19:52
Computerausstattung: PB 4.41
Win7 64bit

Re: String und input() - Frage :D

Beitrag von Crawler »

Bei ReadWord() liest du kein Wort im Sinne der deutschen Sprache ein, sondern eine Zahl. Das wurde dir vorhin schon erklärt...
Was du einlesen willst ist ein String!

Selbst in der Hilfe zu ReadFile steht ein entsprechendes Beispiel:

Code: Alles auswählen

If ReadFile(0, "Text.txt")   ; wenn die Datei geöffnet werden konnte, setzen wir fort...
    While Eof(0) = 0           ; sich wiederholende Schleife bis das Ende der Datei ("end of file") erreicht ist
      Debug ReadString(0)      ; Zeile für Zeile im Debugger-Fenster anzeigen
    Wend
    CloseFile(0)               ; schließen der zuvor geöffneten Datei
  Else
    MessageRequester("Information","Konnte Datei nicht öffnen!")
  EndIf
Zuletzt geändert von Crawler am 07.01.2010 00:13, insgesamt 1-mal geändert.
PB 4.41 | Win7 64bit
Antworten