Deutsch
Forum

Problem - Selbst programmierter Taschenrechner

 
- Seite 1 -



Julian
Schmidt
Hallo,
bin gerade dabei aus Just for Fun einen Taschenrechner zuschreiben.
Häng allerdings noch an den Punkt wie man an besten das Ergebnis ausrechnet.
Bräucht eine gute Strategie wie man eine in eine Editierbox eingebene Matheaufgabe, gelöst in eine Variable speichert und dann in der besagten Editierbox ausgibt
Weiß jetzt nicht wie ich das genau anstellen soll.
Hoffe ihr könnt mir sagen wie ich das anstelle
DEF GetSysColor(1)!"USER32","GetSysColor"
declare Edit&,e%,eins&,zwei&,drei&,vier&,fünf&,sechs&,sieben&,acht&,neun&,null&
declare komma&,plus&,minus&,mal&,geteilt&,gleich&,clear&,off&,del&,info&,ans$,ergebnis!
WindowStyle 24
Window 10,10-250,250
cls GetSysColor(15)
WindowTitle "Taschenrechner"
Edit& = Create("Edit",%HWnd,"",20,20,200,20)
eins& = Create("Button",%HWnd,"1",20,60,30,25)
zwei& = Create("Button",%HWnd,"2",60,60,30,25)
drei& = Create("Button",%HWnd,"3",100,60,30,25)
vier& = Create("Button",%HWnd,"4",20,100,30,25)
fünf& = Create("Button",%HWnd,"5",60,100,30,25)
sechs& = Create("Button",%HWnd,"6",100,100,30,25)
sieben& = Create("Button",%HWnd,"7",20,140,30,25)
acht& = Create("Button",%HWnd,"8",60,140,30,25)
neun& = Create("Button",%HWnd,"9",100,140,30,25)
null& = Create("Button",%HWnd,"0",20,180,30,25)
komma& = Create("Button",%HWnd,".",60,180,30,25)
plus& = Create("Button",%HWnd,"+",140,60,30,25)
minus& = Create("Button",%HWnd,"-",140,100,30,25)
mal& = Create("Button",%HWnd,"*",140,140,30,25)
geteilt& = Create("Button",%HWnd,":",140,180,30,25)
gleich& = Create("Button",%HWnd,"=",100,180,30,25)
clear& = Create("Button",%HWnd,"C",180,100,40,25)
del& = Create("Button",%HWnd,"Del",180,140,40,25)
off& = Create("Button",%HWnd,"Off",180,60,40,25)
info& = Create("Button",%HWnd,"?",180,180,40,25)

whilenot e%

    waitinput
    waitinput

    if getfocus(eins&)

        ans$ = Val(GetText$(Edit&))
        SetText Edit&,ans$ + "1"

    elseif getfocus(zwei&)

        ans$ = Val(GetText$(Edit&))
        SetText Edit&,ans$ + "2"

    elseif getfocus(drei&)

        ans$ = Val(GetText$(Edit&))
        SetText Edit&,ans$ + "3"

    elseif getfocus(vier&)

        ans$ = Val(GetText$(Edit&))
        SetText Edit&,ans$ + "4"

    elseif getfocus(fünf&)

        ans$ = Val(GetText$(Edit&))
        SetText Edit&,ans$ + "5"

    elseif getfocus(sechs&)

        ans$ = Val(GetText$(Edit&))
        SetText Edit&,ans$ + "6"

    elseif getfocus(sieben&)

        ans$ = Val(GetText$(Edit&))
        SetText Edit&,ans$ + "7"

    elseif getfocus(acht&)

        ans$ = Val(GetText$(Edit&))
        SetText Edit&,ans$ + "8"

    elseif getfocus(neun&)

        ans$ = Val(GetText$(Edit&))
        SetText Edit&,ans$ + "9"

    elseif getfocus(null&)

        ans$ = Val(GetText$(Edit&))
        SetText Edit&,ans$ + "0"

    elseif getfocus(plus&)

        ans$ = Val(GetText$(Edit&))
        SetText Edit&,ans$ + "+"

    elseif getfocus(minus&)

        ans$ = Val(GetText$(Edit&))
        SetText Edit&,ans$ + "-"

    elseif getfocus(mal&)

        ans$ = Val(GetText$(Edit&))
        SetText Edit&,ans$ + "*"

    elseif getfocus(geteilt&)

        ans$ = Val(GetText$(Edit&))
        SetText Edit&,ans$ + "/"

    elseif getfocus(komma&)

        ans$ = Val(GetText$(Edit&))
        SetText Edit&,ans$ + "."

    elseif getfocus(clear&)

        SetText Edit&,""

    elseIf Getfocus(off&)

        end

    elseif getfocus(info&)

        MessageBox("Title:\t\tTaschenrechner\t\nAutor:\t\tJulian Schmidt\nVersion:\t\t1.0\nErstellungsdatum:\t5.11.2010","I N F O",64)

    elseif getfocus(del&)

        SetText Edit&,ans$

    elseif getfocus(gleich&)

        ergebnis! = Val(GetText$(Edit&))
        ans$ = ergebnis!
        SetText Edit&,ans$

    endif

endwhile


Außerdem würde ich gerne die Del-Funktion verbessern. Kann bisher nur ein Zeichen entfernen. Man müsste also aus einer Variable ein Zeichen abschneiden
und den Wert dann neu übergeben.
Für andere Verbesserungsvorschläge bin natürlich offen
Naja Hoffe ihr könnnt mir bei meinen zwei anliegen einwenig helfen


mfg

Julian57
 
˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗
Webseite [...] 
07.11.2010  
 



 
- Seite 2 -


« Dieser Beitrag wurde als Lösung gekennzeichnet. »

- Seite 4 -



Peter
Max
Müller

DEF CTStr(2) if(len($(2))=0,0,(len($(1))-len(translate$($(1),$(2),"")))/len($(2)))'zählt wie oft $2 in $1 vorkommt
DEF InStrExt(3) int(instr($(2),mid$($(1),&(3),len($(1))))+&(3))'sucht in $1 ab &3 nach $2
DEF InStrLast(3) if(instrext($(1),$(2),&(3))>&(3),instrlast($(1),$(2),instrext($(1),$(2),&(3))),int(&(3)-1))'sucht in $1 ab &3 nach dem letzen vorkommen von $2, arbeitet Rekursiv.
'Wenn man die Operatorzeichen ändern möchte braucht man nur die entsprechenden Zeichen ändern in den 2 folgenden Funktionen ändern
DEF MathTabs(2) translate$(translate$(translate$(translate$($(1),"+",$(2)),"-",$(2)),"*",$(2)),"/",$(2))
DEF GetMath(1) if($(1)="+",1,if($(1)="-",2,if($(1)="*",3,if($(1)="/",4,0))))
'Das Kernstück, so klein und doch ein ganzer Taschenrechner
'Funktioniert nur alleine wenn die Variablen aus Math Global gesetzt wurden (Ergebnis immer in ma_v1& !)

proc mathcore

    parameters ma_cmd$
    ma_s2$="«Æ»"'MathTabs-Zeichen = Beliebige Zeichenfolge die nicht im Ausdruck vorkommen sollte, sonst falsche Berechnung !
    ma_s4$=mathtabs(ma_cmd$,ma_s2$)'MathTabs setzen
    ma_s3$=""
    ma_v1&=0
    ma_v2&=1

    whileloop ctstr(ma_s4$,ma_s2$)+1

        ma_s3$=substr$(ma_s4$,&loop,ma_s2$)'Wert erfassen - Hier könnte man den Ausdruck zB. auf einen bestimmten Namen prüfen (für Variablen in Skriptsprachen).
        ma_v1&=if(ma_v2&=0,ma_v1&,if(ma_v2&=1,ma_v1&+val(ma_s3$),if(ma_v2&=2,ma_v1&-val(ma_s3$),if(ma_v2&=3,ma_v1&*val(ma_s3$),if(val(ma_s3$)<1,ma_v3&,ma_v1&/val(ma_s3$))))))
        ma_v2&=GetMath(mid$(ma_cmd$,len(ma_s3$)+1,1))
        ma_cmd$=del$(ma_cmd$,1,len(ma_s3$)+1)

    wend

endproc

'Berechnung mit Klammern
'Haupt-Prozedur die automatisch erst alle Klammern ausrechnet (wenn welche vorkommen)

proc math

    parameters ma_prio$
    declare ma_s1$,ma_s2$,ma_s3$,ma_s4$,ma_v1&,ma_v2&,ma_v3&,ma_v4&'bei häufiger Benutztung Global setzen (Ergebnis immer in ma_v1& !)
    case or(instr(")",ma_prio$)<instr("(",ma_prio$),neq(ctstr(ma_prio$,"("),ctstr(ma_prio$,")"))):ma_prio$="0"'ungültige Klammersetzung: Wert auf Null setzen

    whilenot ctstr(ma_prio$,"(")=0

        ma_v3&=instr("(",ma_prio$)+1
        ma_v4&=instrext(ma_prio$,")",ma_v3&)-1
        ma_v3&=ma_v3&+instrlast(mid$(ma_prio$,ma_v3&,ma_v4&-ma_v3&),"(",1)'Klammern von Innen nach Außen auflösen
        mathcore mid$(ma_prio$,ma_v3&,ma_v4&-ma_v3&)
        ma_prio$=del$(ma_prio$,ma_v3&-1,ma_v4&-ma_v3&+2)
        ma_prio$=ins$(str$(ma_v1&),ma_prio$,ma_v3&-1)

    wend

    mathcore ma_prio$
    return ma_v1&

endproc

declare ed1%,bt1%
window 20,20-420,150
drawtext 5,5,"Berechnung eingeben... (+ Add ; - Sub ; / Div ; * Mul ; ( ) Prio)"
ed1%=create("edit",%hwnd,"5+(30*(4/2)+10)",5,25,400,21)'5+((10/2)*10)-30
bt1%=create("button",%hwnd,"Berechnen",5,50,400,40)

whilenot %key=2

    waitinput
    'XProfan
    case getfocus(bt1%):messagebox("Ergebnis: "+str$(math(gettext$(ed1%))),"Ergebnis:",0)
    ''Profan 7:
    'case getfocus(bt1%):math gettext$(ed1%)
    'case getfocus(bt1%):messagebox("Ergebnis: "+str$(&(0)),"Ergebnis:",0)

wend

end

Das ganze ist in 2 Module aufgeteilt: Mathcore berechnet einen Ausdruck, Math rechnet zusätzlich zuerst alle Klammern aus.

Die Prozedur Math aufrufen !

Parameter: $ (Formel)
Rückgabe: & (Ergebnis)
 
XProfan X3, X4ß, Win 10.1
08.11.2010  
 




Julian
Schmidt
Ja gut ich will ja das letzte Zeichen entfernen, und da die Aufgabe immer eine andere Länge hat. Muss der Befehl entweder von hinten anfangen zu zählen oder ich muss die Stringlänge auslesen und die dann an den Del Befehl übergeben.

Da
@Del$(S,N1,N2[,D])
S : String
N1 : Wert - Position
N2 : Wert - Zeichenzahl
D : String - Trennzeichen (Delimiter)

Ab der Zeichen-Position N1 werden N2 Zeichen aus dem String entfernt.
 
˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗
Webseite [...] 
07.11.2010  
 




Julian
Schmidt
So funzts auch nicht
KompilierenMarkierenSeparieren
Del$(ans$,Len(ans$),1)

und mit
KompilierenMarkierenSeparieren
Del$(ans$,-1,1)

leider auch nicht
 
˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗
Webseite [...] 
07.11.2010  
 




Rolf
Koch
Julian57 (07.11.10)
So funzts auch nicht
KompilierenMarkierenSeparieren
Del$(ans$,Len(ans$),1)

und mit
KompilierenMarkierenSeparieren
Del$(ans$,-1,1)

leider auch nicht


Also bei mir einwandfrei:
KompilierenMarkierenSeparieren
declare ans$
cls
ans$="TestA"
print Del$(ans$,Len(ans$),1)
waitinput

Allerdings wird ans$ nicht automatisch angepasst, musst ans$ natürlich wieder zuordnen:
KompilierenMarkierenSeparieren
declare ans$
cls
ans$="TestA"
Del$(ans$,Len(ans$),1)
print ans$+" Falsch"
ans$=Del$(ans$,Len(ans$),1)
print ans$+" Richtig"
waitinput
 
07.11.2010  
 




Julian
Schmidt
Oh ja das hab ich wohl vergessen.
Aber noch eine andere Frage, wenn ich alle Zeichen also nun mit ans$=Del$(ans$,Len(ans$),1) entferne, und in den String, weil alle Zeichen entfernt sind nichts mehr steht, und er dann dann ans$=Del$(ans$,Len(ans$),1) wieder ausführt, kommt eine unschöne Fehlermeldung. Wie entferne ich die am geschicktesten?
KompilierenMarkierenSeparieren
DEF GetSysColor(1)!"USER32","GetSysColor"
declare Edit&,e%,eins&,zwei&,drei&,vier&,fünf&,sechs&,sieben&,acht&,neun&,null&
declare komma&,plus&,minus&,mal&,geteilt&,gleich&,clear&,off&,del&,info&,ans$,ergebnis!
WindowStyle 24
Window 10,10-250,250
cls GetSysColor(15)
WindowTitle "Taschenrechner"
Edit& = Create("Edit",%HWnd,"",20,20,200,20)
eins& = Create("Button",%HWnd,"1",20,60,30,25)
zwei& = Create("Button",%HWnd,"2",60,60,30,25)
drei& = Create("Button",%HWnd,"3",100,60,30,25)
vier& = Create("Button",%HWnd,"4",20,100,30,25)
fünf& = Create("Button",%HWnd,"5",60,100,30,25)
sechs& = Create("Button",%HWnd,"6",100,100,30,25)
sieben& = Create("Button",%HWnd,"7",20,140,30,25)
acht& = Create("Button",%HWnd,"8",60,140,30,25)
neun& = Create("Button",%HWnd,"9",100,140,30,25)
null& = Create("Button",%HWnd,"0",20,180,30,25)
komma& = Create("Button",%HWnd,".",60,180,30,25)
plus& = Create("Button",%HWnd,"+",140,60,30,25)
minus& = Create("Button",%HWnd,"-",140,100,30,25)
mal& = Create("Button",%HWnd,"*",140,140,30,25)
geteilt& = Create("Button",%HWnd,":",140,180,30,25)
gleich& = Create("Button",%HWnd,"=",100,180,30,25)
clear& = Create("Button",%HWnd,"C",180,100,40,25)
del& = Create("Button",%HWnd,"Del",180,140,40,25)
off& = Create("Button",%HWnd,"Off",180,60,40,25)
info& = Create("Button",%HWnd,"?",180,180,40,25)

whilenot e%

    waitinput
    waitinput

    if getfocus(eins&)

        ans$ = Val(GetText$(Edit&))
        SetText Edit&,ans$ + "1"

    elseif getfocus(zwei&)

        ans$ = Val(GetText$(Edit&))
        SetText Edit&,ans$ + "2"

    elseif getfocus(drei&)

        ans$ = Val(GetText$(Edit&))
        SetText Edit&,ans$ + "3"

    elseif getfocus(vier&)

        ans$ = Val(GetText$(Edit&))
        SetText Edit&,ans$ + "4"

    elseif getfocus(fünf&)

        ans$ = Val(GetText$(Edit&))
        SetText Edit&,ans$ + "5"

    elseif getfocus(sechs&)

        ans$ = Val(GetText$(Edit&))
        SetText Edit&,ans$ + "6"

    elseif getfocus(sieben&)

        ans$ = Val(GetText$(Edit&))
        SetText Edit&,ans$ + "7"

    elseif getfocus(acht&)

        ans$ = Val(GetText$(Edit&))
        SetText Edit&,ans$ + "8"

    elseif getfocus(neun&)

        ans$ = Val(GetText$(Edit&))
        SetText Edit&,ans$ + "9"

    elseif getfocus(null&)

        ans$ = Val(GetText$(Edit&))
        SetText Edit&,ans$ + "0"

    elseif getfocus(plus&)

        ans$ = Val(GetText$(Edit&))
        SetText Edit&,ans$ + "+"

    elseif getfocus(minus&)

        ans$ = Val(GetText$(Edit&))
        SetText Edit&,ans$ + "-"

    elseif getfocus(mal&)

        ans$ = Val(GetText$(Edit&))
        SetText Edit&,ans$ + "*"

    elseif getfocus(geteilt&)

        ans$ = Val(GetText$(Edit&))
        SetText Edit&,ans$ + "/"

    elseif getfocus(komma&)

        ans$ = Val(GetText$(Edit&))
        SetText Edit&,ans$ + "."

    elseif getfocus(clear&)

        SetText Edit&,""

    elseIf Getfocus(off&)

        end

    elseif getfocus(info&)

        MessageBox("Title:\t\tTaschenrechner\t\nAutor:\t\tJulian Schmidt\nVersion:\t\t1.0\nErstellungsdatum:\t5.11.2010","I N F O",64)

    elseif getfocus(del&)

        ans$ = Val(GetText$(Edit&))
        ans$=Del$(ans$,Len(ans$),1)
        SetText Edit&,ans$

    elseif getfocus(gleich&)

        ergebnis! = Val(GetText$(Edit&))
        ans$ = ergebnis!
        SetText Edit&,ans$

    endif

endwhile

 
˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗
Webseite [...] 
07.11.2010  
 



Zwingt Dich ja niemand etwas aus einem String zu entfernen der garkeine Zeichen enthält. ^^
 
07.11.2010  
 




Julian
Schmidt
Ja schon, aber ich hätte schon gerne das es in den Programm keine dubiosen Fehlermeldungen gibt
 
˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗
Webseite [...] 
07.11.2010  
 



Schonmal was von if gehört?
 
07.11.2010  
 




Julian
Schmidt
Ja aber welchen Wert muss ich zuweisen
KompilierenMarkierenSeparieren
ans$ = Val(GetText$(Edit&))

If ans$=?//Wie ist der Wert für eine leere Variable?

    ans$=1

EndIF

ans$=Del$(ans$,Len(ans$),1)
SetText Edit&,ans$
 
˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗
Webseite [...] 
07.11.2010  
 




Rolf
Koch
Frag vorher ab:
KompilierenMarkierenSeparieren
if ans$ > ""

    ......' wenn ans$ halt grösser als Leer

endif

 
07.11.2010  
 




Julian
Schmidt
danke, funzt super
KompilierenMarkierenSeparieren
DEF GetSysColor(1)!"USER32","GetSysColor"
declare Edit&,e%,eins&,zwei&,drei&,vier&,fünf&,sechs&,sieben&,acht&,neun&,null&
declare komma&,plus&,minus&,mal&,geteilt&,gleich&,clear&,off&,del&,info&,ans$,ergebnis!
WindowStyle 24
Window 10,10-250,250
cls GetSysColor(15)
WindowTitle "Taschenrechner"
Edit& = Create("Edit",%HWnd,"",20,20,200,20)
eins& = Create("Button",%HWnd,"1",20,60,30,25)
zwei& = Create("Button",%HWnd,"2",60,60,30,25)
drei& = Create("Button",%HWnd,"3",100,60,30,25)
vier& = Create("Button",%HWnd,"4",20,100,30,25)
fünf& = Create("Button",%HWnd,"5",60,100,30,25)
sechs& = Create("Button",%HWnd,"6",100,100,30,25)
sieben& = Create("Button",%HWnd,"7",20,140,30,25)
acht& = Create("Button",%HWnd,"8",60,140,30,25)
neun& = Create("Button",%HWnd,"9",100,140,30,25)
null& = Create("Button",%HWnd,"0",20,180,30,25)
komma& = Create("Button",%HWnd,".",60,180,30,25)
plus& = Create("Button",%HWnd,"+",140,60,30,25)
minus& = Create("Button",%HWnd,"-",140,100,30,25)
mal& = Create("Button",%HWnd,"*",140,140,30,25)
geteilt& = Create("Button",%HWnd,":",140,180,30,25)
gleich& = Create("Button",%HWnd,"=",100,180,30,25)
clear& = Create("Button",%HWnd,"C",180,100,40,25)
del& = Create("Button",%HWnd,"Del",180,140,40,25)
off& = Create("Button",%HWnd,"Off",180,60,40,25)
info& = Create("Button",%HWnd,"?",180,180,40,25)

whilenot e%

    waitinput
    waitinput

    if getfocus(eins&)

        ans$ = Val(GetText$(Edit&))
        SetText Edit&,ans$ + "1"

    elseif getfocus(zwei&)

        ans$ = Val(GetText$(Edit&))
        SetText Edit&,ans$ + "2"

    elseif getfocus(drei&)

        ans$ = Val(GetText$(Edit&))
        SetText Edit&,ans$ + "3"

    elseif getfocus(vier&)

        ans$ = Val(GetText$(Edit&))
        SetText Edit&,ans$ + "4"

    elseif getfocus(fünf&)

        ans$ = Val(GetText$(Edit&))
        SetText Edit&,ans$ + "5"

    elseif getfocus(sechs&)

        ans$ = Val(GetText$(Edit&))
        SetText Edit&,ans$ + "6"

    elseif getfocus(sieben&)

        ans$ = Val(GetText$(Edit&))
        SetText Edit&,ans$ + "7"

    elseif getfocus(acht&)

        ans$ = Val(GetText$(Edit&))
        SetText Edit&,ans$ + "8"

    elseif getfocus(neun&)

        ans$ = Val(GetText$(Edit&))
        SetText Edit&,ans$ + "9"

    elseif getfocus(null&)

        ans$ = Val(GetText$(Edit&))
        SetText Edit&,ans$ + "0"

    elseif getfocus(plus&)

        ans$ = Val(GetText$(Edit&))
        SetText Edit&,ans$ + "+"

    elseif getfocus(minus&)

        ans$ = Val(GetText$(Edit&))
        SetText Edit&,ans$ + "-"

    elseif getfocus(mal&)

        ans$ = Val(GetText$(Edit&))
        SetText Edit&,ans$ + "*"

    elseif getfocus(geteilt&)

        ans$ = Val(GetText$(Edit&))
        SetText Edit&,ans$ + "/"

    elseif getfocus(komma&)

        ans$ = Val(GetText$(Edit&))
        SetText Edit&,ans$ + "."

    elseif getfocus(clear&)

        SetText Edit&,""

    elseIf Getfocus(off&)

        end

    elseif getfocus(info&)

        MessageBox("Title:\t\tTaschenrechner\t\nAutor:\t\tJulian Schmidt\nVersion:\t\t1.0\nErstellungsdatum:\t5.11.2010","I N F O",64)

    elseif getfocus(del&)

        ans$ = Val(GetText$(Edit&))

        if ans$ > ""

            ans$=Del$(ans$,Len(ans$),1)
            SetText Edit&,ans$

        Endif

    elseif getfocus(gleich&)

        ergebnis! = Val(GetText$(Edit&))
        ans$ = ergebnis!
        SetText Edit&,ans$

    endif

endwhile

 
˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗
Webseite [...] 
07.11.2010  
 




Julian
Schmidt
Hallo,
bräuchte noch ein klein wenig Hilfe mit dem Parsen
Und zwar ich weiß nicht genau wie ich in einer If überprüfen kann ob nun ein + or - or / or * in der String vorhanden ist
Hab mir das in etwa so gedacht
KompilierenMarkierenSeparieren
Wie kann man in der if nun abfragen ob das Zeichen in der String vorhanden ist ?
 
˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗
Webseite [...] 
07.11.2010  
 




KompilierenMarkierenSeparieren
var s$="10*20"
case instr("*",s$) : end

InStr gibt die Position des gesuchten Zeichens.

Oder
KompilierenMarkierenSeparieren
var s$="10*20"

if instr("*",s$)

    ...

endif


gleichzusetzen mit
KompilierenMarkierenSeparieren
var s$="10*20"

ifNot instr("*",s$)=0

    ...

endif

 
07.11.2010  
 




Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

33.874 Betrachtungen

Unbenanntvor 0 min.
Peter Max Müller21.01.2024
iF23.07.2015
Julian Schmidt02.02.2013
Michaeal18.10.2012
Mehr...

Themeninformationen



Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie