| Vorheriges Thema anzeigen :: Nächstes Thema anzeigen   | 
	
	
	
		| Autor | 
		Nachricht | 
	
	
		Mr.Schrotti
 
 
  Anmeldungsdatum: 05.12.2007 Beiträge: 13
 
  | 
		
			
				 Verfasst am: 04.02.2008, 08:41    Titel: zahlen aus string | 
				     | 
			 
			
				
  | 
			 
			
				| ich such ein befehl um aus einem String (B$) in dem 2 zahlen z.b. 500+200 mit einem rechenoperator getrennt sind. jez brauch ich aber die beiden zahlen in einer eigenen variable. kann man das iwie raus extrahieren?? | 
			 
		  | 
	
	
		| Nach oben | 
		 | 
	
	
		  | 
	
	
		SpionAtom
 
 
  Anmeldungsdatum: 10.01.2005 Beiträge: 395
 
  | 
		
			
				 Verfasst am: 04.02.2008, 12:01    Titel:  | 
				     | 
			 
			
				
  | 
			 
			
				Left$, Right$, Mid$, Instr sind die Befehle, die du brauchst. _________________ Inzwischen gehöre ich auch zu den BlitzBasicern. Also verzeiht mir, wenn mir mal ein LOCATE 100, 100 oder dergleichen rausrutscht. | 
			 
		  | 
	
	
		| Nach oben | 
		 | 
	
	
		  | 
	
	
		Heizi
 
  
  Anmeldungsdatum: 19.01.2005 Beiträge: 309
 
  | 
		
			
				 Verfasst am: 04.02.2008, 12:25    Titel:  | 
				     | 
			 
			
				
  | 
			 
			
				Dafür brauchst du nen Formelparser.
 
Du findest einem Auf der QB Homepage unter Downloads im Mathe Bereich.
 
Ich hab auch mal einen programmiert wenn du willst kann 
 
ich den Source mal posten (aber erst wenn ich daheim bin,
 
ich sitz hier nämlich gerade im Büro, hab Mittagspause und surf im Internet
 
   )
 
MfG | 
			 
		  | 
	
	
		| Nach oben | 
		 | 
	
	
		  | 
	
	
		Mr.Schrotti
 
 
  Anmeldungsdatum: 05.12.2007 Beiträge: 13
 
  | 
		
			
				 Verfasst am: 04.02.2008, 12:39    Titel:  | 
				     | 
			 
			
				
  | 
			 
			
				klingt ganz schön kompliziert     bin jez soweit das mein programm erkennt ob es + oder minus ist.... aber das andere hab ich noch nicht hinbekommen ...
 
 
 
Gruß Mr.Schrotti | 
			 
		  | 
	
	
		| Nach oben | 
		 | 
	
	
		  | 
	
	
		Sebastian Administrator
  
  Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
  | 
		 | 
	
	
		| Nach oben | 
		 | 
	
	
		  | 
	
	
		Mr.Schrotti
 
 
  Anmeldungsdatum: 05.12.2007 Beiträge: 13
 
  | 
		
			
				 Verfasst am: 04.02.2008, 13:10    Titel:  | 
				     | 
			 
			
				
  | 
			 
			
				
 
 
danke   da muss ich jez nur noch durchsteigen .....    gar nicht so einfach für nen anfänger ... | 
			 
		  | 
	
	
		| Nach oben | 
		 | 
	
	
		  | 
	
	
		pinkpanther
 
  
  Anmeldungsdatum: 28.05.2005 Beiträge: 79 Wohnort: Wien
  | 
		
			
				 Verfasst am: 08.02.2008, 16:32    Titel:  | 
				     | 
			 
			
				
  | 
			 
			
				Hier ist meine Lösungsvariante. Vielleicht ist sie einfacher zu verstehen...
 
 
 	  | Code: | 	 		  DEFINT A-Z
 
 
CONST ctOperatorenMenge$ = "+-*/"
 
DIM tRechenAufgabe$
 
DIM tOperand$(1 TO 2), iOperand(1 TO 2)
 
 
CLS
 
PRINT
 
PRINT "EINFACHER MATHE-PARSER"
 
PRINT
 
PRINT "  Die beiden Operanden muessen positive Ganzzahlen im"
 
PRINT "  Bereich von 0 bis 32767 sein. Die Rechenaufgabe"
 
PRINT "  darf nur einen Operator aus der Menge der Grund-"
 
PRINT "  rechenarten enthalten(+-*/). Leerzeichen vor und"
 
PRINT "  nach den Operanden werden toleriert."
 
PRINT
 
INPUT "  Rechenaufgabe:  ", tRechenAufgabe$
 
 
IF LEN(tRechenAufgabe$) THEN
 
 
  FOR i = 1 TO 4
 
    tOperator$ = MID$(ctOperatorenMenge$, i, 1)
 
    iPosOperator = INSTR(tRechenAufgabe$, tOperator$)
 
    IF iPosOperator THEN
 
      EXIT FOR
 
    END IF
 
  NEXT
 
 
  IF iPosOperator THEN
 
    tOperand$(1) = LEFT$(tRechenAufgabe$, iPosOperator - 1)
 
    tOperand$(2) = MID$(tRechenAufgabe$, iPosOperator + 1)
 
    FOR iNumOperand = 1 TO 2
 
      tOperand$(iNumOperand) = LTRIM$(RTRIM$(tOperand$(iNumOperand)))
 
      iLenOperand = LEN(tOperand$(iNumOperand))
 
      IF iLenOperand THEN
 
        FOR iZeichen = 1 TO iLenOperand
 
          SELECT CASE MID$(tOperand$(iNumOperand), iZeichen, 1)
 
            CASE "0" TO "9"
 
            CASE ELSE
 
              iNichtNumerisch = -1
 
              EXIT FOR
 
          END SELECT
 
        NEXT
 
      ELSE
 
        iOperandFehlt = -1
 
      END IF
 
      IF iOperandFehlt OR iNichtNumerisch THEN
 
        EXIT FOR
 
      ELSE
 
        iOperand(iNumOperand) = CINT(VAL(tOperand$(iNumOperand)))
 
      END IF
 
    NEXT
 
  END IF
 
 
  PRINT "       Ergebnis: ";
 
 
  IF iPosOperator THEN
 
    IF NOT iOperandFehlt THEN
 
      IF NOT iNichtNumerisch THEN
 
        SELECT CASE tOperator$
 
          CASE "+"
 
            sErgebnis! = iOperand(1) + iOperand(2)
 
          CASE "-"
 
            sErgebnis! = iOperand(1) - iOperand(2)
 
          CASE "*"
 
            sErgebnis! = CSNG(iOperand(1)) * iOperand(2)
 
          CASE "/"
 
            IF iOperand(2) THEN
 
              sErgebnis! = iOperand(1) / iOperand(2)
 
            ELSE
 
              iErgebnisUndefiniert = -1
 
            END IF
 
        END SELECT
 
        IF iErgebnisUndefiniert THEN
 
          PRINT " Division durch Null - Ergebnis undefiniert!"
 
        ELSE
 
          PRINT STR$(sErgebnis!)
 
        END IF
 
      ELSE
 
        PRINT " Mindestens eine Stelle der Operanden ist nicht numerisch!"
 
      END IF
 
    ELSE
 
      PRINT " Geben Sie bitte zwei Operanden an!"
 
     END IF
 
  ELSE
 
    PRINT " Keinen Operator (+-*/) erkannt!"
 
  END IF
 
END IF
 
END | 	 
  _________________ lG
 
pinkpanther   | 
			 
		  | 
	
	
		| Nach oben | 
		 | 
	
	
		  | 
	
	
		 |