kostenloser Webspace werbefrei: lima-city


Do-Loop schleife für mehrere Zahlen

lima-cityForumProgrammiersprachenBasic

  1. Autor dieses Themas

    dauersuchti

    dauersuchti hat kostenlosen Webspace.

    Hi, ich will n Programm mit Visual Basic programmieren und komme auch ganz gut voran mein Problem ist folgendes:
    ich will eine Do Loop schleife einbauen, die allerdings nicht nur als erf?llt angesehen wird sondern wenn ein bestimmter zahlenbereich abgedeckt wird. Die meisten meiner do loop schleifen sehen so aus:

    Do
    ....
    Loop until right (t, 6) = vbcrlf +"ok" ...

    Diese schleife ?berpr?ft ja ob t$ = ... OK ... und wiederholt den Vorgang bis dies zu trifft.
    Was ist jetzt will ist dass der nicht nur nach 2 Zahlen gugt sondern das dieses OK ein Zahlenbereich ist also alle Zahlen gr??er 17. Wie mache ich das ?
    Also nach dem motto Loop until (t, 6) > 17 ....
    Sa? schon 4 Stunden daran hab rum probiert hat aber nicht geklappt


    Wenn ihr noch infos ben?tigt fragt einfach !!!

    Ich z?hle auf euch bitte helft mir !!!
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. h**********e

    gehe volgenderma?en vor:

    Erstelle einen Timer.
    Setze ihn auf enable
    Setze Interfall auf 1

    Erstelle noch einen Timer
    Setze ihn auf Disable
    Setze den Interval auf 10

    In den Code des ersten Timers schreibe eine If-Anwei?ung. Die kann meinetwegen so aussehen:

    If Var = 1
    timer2.enable = truh
    else
    timer2.enable = false
    endif

    Im Code vom zweiten Timer schreibst du dann, was passieren soll.
  4. @ ?ber mir:

    H????????????????????????

    Timer??? Was hat das alles mit Timer zu tun.


    Wenn ihr noch infos ben?tigt fragt einfach !!!


    Ja eine Info w?re noch sch?n:

    Was f?r eine Fehlermeldung kommt?

    Schua mal dieses Beispiel an:

    i = 0
    Do
    i = i + 1
    Loop Until i > 17

    Das funktioniert einwandfrei. Sobald i den Wert 18 annimmt wird diese Schleife unterbrochen. Wolltest du das erreichen?

    Noch ein Hinweis:

    Wenn du jetzt zum Beispiel den Zahlenbereich von 10-17 willst kannst du als Abbruchbedingung schreiben:

    Until (i <= 17) and (i >= 10)

    Das l?sst sich alles beliebig lang verschachteln. Mach aber am besten immer die Klammern, ist wesentlich ?berischtlicher, ausserdem gibt es da auch gewisse Regeln wie in Mathe Punkt vor Strich.

    (In der Digitaltechnik ist es Not vor And vor Or)

    Gru? Tobi
  5. Also ich wei? nicht, ob ich dich jetzt richtig verstanden habe, aber ich w?rde es folgenderma?en machen

    Do
    ....
    if isnumeric(right(t,6)) = true then 'hier schaust du, ob die letzten 6 Zeichen ?berhaupt Zahlen sind
    if cdbl(right(t,6) > 17 then 'hier wird festgestellt, ob sie gr??er als 17 sind
    blnFlag = true
    else
    blnFlag = false
    else
    blnFlag = false
    end if
    Loop until blnFlag = true 'die Flag ist nur true, wenn die letzten 6 Zeichen eine Zahl gr??er 17 darstellen

    Ich hoffe, diese Ausf?hrungen helfen dir. Ansonsten schreib mal genauer (z.B. konkretes Beispiel), was du willst

  6. Autor dieses Themas

    dauersuchti

    dauersuchti hat kostenlosen Webspace.

    Ne fehlermeldung bekomme ich gar nicht angezeigt, der bleibt halt immer an der SChleife h?ngen !!!

    Ok ich probier mal aus was ihr mir vor geschlagen habt (kann ich aber erst wieder am Samstag bis dahin hab ich leider keine Zeit).

    Was mein Problem bei deinem ist, ttobsen ist dass i eben nicht nur 17 oder so ist sondern ne l?ngere Zahlenreihe enth?lt von der nur die 6. ziffer von rechts eben die Zahl ist die h?her als 17 sein soll. Aber ich hab schon ne idee wie ich des machen kann, rein logisch m?sste doch das hier klappen
    i= right(t, 6)
    oder ?

    Das mit dem Timer kappier ich irgendwie auch nicht, also wie mir das hilft und das von dir wacky probier ich auch mal aus ;-) geb euch dann am Samstagabend n feedback obs geklappt hat w?r aber nett wenn ihr mir beantworten k?nntet ob das da oben ^^^^ ( i=right(t, 6)) klappt und wenn nicht wie ichs ansonsten machen kann.

    Ich h?tte auch noch eine Frage, ich habe einprogrammiert dass der mir immer in nem Textfeld (genannt Text2) anzeigt wo der gerade ist, also was der gerade macht, was mein Problem jedoch ist, ist dass der mir die schrift erst anzeigt wenn das Programm fertig durch gelaufen ist. Er schreibt es zwar direkt rein (scrollbar wird aktiviert ...), jedoch kann man die schrift nicht sehen. Habt ihr ne ahnung woran das liegen k?nnt ? Nehm ma an das ich die variable falsch deklariert habe, aber was kann man da falsch machen ?
  7. naja ich bin zwar net so der VB freund aber ich denke ich kann dir Trotzdem paar antworten geben

    1. vergiss sofort die Sache mit dem Timer, dass war wohl nen richtig...mieser...Tipp

    2. schreib doch die Zahlenreihen in nen Memofeld (ist so ein Feld wie das wo man reinschreibt wenn man nen Beitrag im Forum erstellt)
    dann kannst du in jede Zeile einen Schleifendurchgang machen
    ansonsten geht das Durchlaufen einfach so schnell, dass es klar is, dass du nur den letzten Druchgang deiner Schleife angezeigt bekommst (sofern du niht nen 0,1Mhz Rechner hast ;))

    3. wenn du ne Zahlenreihe hast und die letzte Zahl abfragen willst musst du diese einfach nur rausfiltern...und schon kannst du sie abfragen
    wie man das in VB macht, da hab ich keine Ahnung ;)
  8. Autor dieses Themas

    dauersuchti

    dauersuchti hat kostenlosen Webspace.


    2. schreib doch die Zahlenreihen in nen Memofeld (ist so ein Feld wie das wo man reinschreibt wenn man nen Beitrag im Forum erstellt)
    dann kannst du in jede Zeile einen Schleifendurchgang machen
    ansonsten geht das Durchlaufen einfach so schnell, dass es klar is, dass du nur den letzten Druchgang deiner Schleife angezeigt bekommst (sofern du niht nen 0,1Mhz Rechner hast ;))


    Zu deinem 2. Punkt habe ich 2 fragen bzw eine Frage und eine Bitte, ersten wollte ich dich bitten das mit dem Memofeld bitte auszuf?hren *G*, klingt n?mlich gut und 2. wie mach ich das mit dem Memofeld.

    Neben bei glaub ich dass du das 2, Prob n bisschen falsch verstanden, ich habe einfach zwischen durch Text2= Text2+ "Programm beenden" geschrieben und diese Meldungen werden bei mir immer erst angezeigt wenn das Programm ferig durch gelaufen ist.

    Noch ne Frage, wie mache ichs dass ich das Programm mit nem Button zwischendurch mal kurz anhalten kann und wenn man dann noch mal auf den Button klickt es weiter geht ? Also wie lautet noch mal der Befehl ?
  9. Also die Idee mit dem i=right(t,6) ist an sich nicht so bl?d, hat aber einige Probleme:
    - ich nehme mal an, du hasst dein i davor als integer deklariert (also sowas wie dim i as integer) --> dann gibt es n?mlich einen Programmabbruch falls das 6. Zeichen keine Ziffer ist.
    - au?erdem ist jedes Zeichen eines Strings f?r VB ein Zeichen und keine Ziffer. Du musst es also in eine Ziffer umwandeln, am besten mit der Funktion CInt oder CDbl.

    Ich hab jetzt aber noch eine Frage: wie soll das 6. Zeichen eine Ziffer gr??er 17 sein? Meines Wissen gibt es davon nur sehr sehr wenige :wink:
    Also das solltest du nochmal ?berlegen...


    Neben bei glaub ich dass du das 2, Prob n bisschen falsch verstanden, ich habe einfach zwischen durch Text2= Text2+ "Programm beenden" geschrieben und diese Meldungen werden bei mir immer erst angezeigt wenn das Programm ferig durch gelaufen ist.

    Da kann ich leider nicht allzuviel dazu sagen, au?er dass du vielleicht die Aussage Text2.text = Text2.text & vbCrLf & "Programm beenden" ganz an den Anfang der Prozedur stellen solltest



    Noch ne Frage, wie mache ichs dass ich das Programm mit nem Button zwischendurch mal kurz anhalten kann und wenn man dann noch mal auf den Button klickt es weiter geht ? Also wie lautet noch mal der Befehl ?

    Also was eigentlich immer klappt ist Strg + Pause. Wenn du willst, dass der User es unterbrechen kann, google mal ein bisschen, da gibt es haufenweise Code im Internet dazu.
  10. Autor dieses Themas

    dauersuchti

    dauersuchti hat kostenlosen Webspace.

    I wollte ich als variable deklarieren und das sollte eigentlich keine probleme machen oder ? Aber mir gehts eher ums Prinzip , also das ich des so mit dem I$=I$ right(t, 6) machen kann
  11. Hallo!

    Ich verstehe nicht ganz deine Frage. K?nntest du die noch genauer Beschreiben? Hier zwei m?glichkeiten wie du das jetzt meinst:

    Du m?chtest als letztes vbCrLf & "ok"... UND ein Z?hler sollte nicht mehr als 17 werden? Dann so:

    i = 0
    Do
    i=i+1
    ....
    Loop until right (t, 6) = vbcrlf +"ok" ... and i>=17

    (Achtung: Falls du i in der Liste manipulierst, solltest du immer >= benutzen!)

    Oder meinst du als letztes vbCrLf & "ok"... ODER einen Z?hler der nicht mehr als 17 sein sollte? Dann so:

    i = 0
    Do
    i=i+1
    ....
    Loop until right (t, 6) = vbcrlf +"ok" ... or i>=17

    Noch ein Tip: Du kannst auch "Exit Do" benutzen -> Dieser springt aus der Schleife direkt raus! Beispiel:

    i = 0
    Do
    i=i+1
    ....
    if i>=17 Then Exit Do
    ...
    Loop until right (t, 6) = vbcrlf +"ok" ...

    Falls da? das richtige noch nicht war, bitte ich um mehr informationen!

    Meme
  12. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!