Multiplizieren mit strings

Anfängerfragen zum Programmieren mit PureBasic.
Benni125
Beiträge: 14
Registriert: 05.04.2007 22:37

Multiplizieren mit strings

Beitrag von Benni125 »

Dieser code soll herraus finden, ob ein benutzer in ein stringgadget ein * eingegeben hat. wenn das der fall ist, soll der code die zahl die vor dem '*' steht mit der zahl multiplizieren die dahinter steht... aber ich hab das gefühl, die abfrage funktioniert nicht richtig. hier der code:

Code: Alles auswählen

If FindString(text$,"*",1)<>0
        pos=FindString(text$,"*",1)
        zahl1$=Left(text$,pos-1)
        zahl2$=Right(text$,Len(text$)-pos+1)
        zahl=Val(zahl1$)*ValF(zahl2$)
        text$=StrF(zahl)
      EndIf
Zuletzt geändert von Benni125 am 06.04.2007 12:57, insgesamt 2-mal geändert.
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: brauch dringend hilfe

Beitrag von Kiffi »

1. Bitte einen aussagekräftigen Betreff wählen
2. Bitte Code-Tags verwenden
3. mit "Debug" kannst Du Dir den Inhalt der Variablen ausgeben lassen

beispielsweise:

Code: Alles auswählen

  Debug zahl1$
  Debug zahl2$
dann wirst Du schnell erkennen, wo der Fehler liegt.

4. Gehört das hier eher in das Anfänger-Forum

Grüße ... Kiffi
a²+b²=mc²
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

ins richtige unterforum verschieben mache ich.

dein erstes posting editiert du bitte selber in bezug auf aussagekräftigen titel und Code-Tags.
(dein posting hat einen edit-button, direkt neben "zitat")
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
PureBasic4.0
Beiträge: 785
Registriert: 29.10.2006 17:26
Wohnort: 127.0.0.1

Beitrag von PureBasic4.0 »

ich würde sagen, ersetze folgende Zeile:

Code: Alles auswählen

pos=FindString(text$,"*",1)
durch:

Code: Alles auswählen

pos=FindString(text$,"*",0)
PB 4.50 RC1 + Ubuntu 10.04 LTS + Windows 7 x64
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

PureBasic4.0 hat geschrieben:ich würde sagen, [...]
Die bei FindString() anzugebende Position beginnt immer mit 1.

Ansonsten gilt immer noch mein Tipp:

Code: Alles auswählen

Debug zahl1$
Debug zahl2$
Grüße ... Kiffi
a²+b²=mc²
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

Warum benutzt du Left() und Right()? Geht doch einfacher mit StringField().
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Benutzeravatar
50-Pfennig
Beiträge: 75
Registriert: 22.01.2007 22:24
Wohnort: 40764 Langenfeld
Kontaktdaten:

Beitrag von 50-Pfennig »

Warum lässt du dir zahl1$ als Integer ausgeben und zahl2$ als Float?
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

warum werden hier so viele zwischenfragen gestellt? :freak:


@Benni125

hast du inzwischen mal Kiffis Rat befolgt, und die erzeugten strings debuggt?
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

> warum werden hier so viele zwischenfragen gestellt?
Warum wollen wir alle nur helfen? :lol:


@ Topic: Und schon weiter gekommen?
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Antworten