Umwandlung String in numerischen Wert

Startseite Foren Deutsches LiveCode-Forum Umwandlung String in numerischen Wert

  • Dieses Thema hat 10 Antworten und 3 Teilnehmer, und wurde zuletzt aktualisiert vor 4 Jahren von Peter_M.
Ansicht von 10 Antwort-Themen
  • Autor
    Beiträge
    • #21429
      Peter_M
      Teilnehmer

        Hi zusammen,
        Ich habe ein ganz banales Problem:
        Wie kann ich den Wert des Inhalts eines Textfeldes, also einen String in eine numerische Variable umwandeln?
        Danke für eure Antwort.

        Peter

      • #21431
        Klaus Major
        Administrator

          Gar nicht! 😀

          Es gibt nämlich keine “Datentypen” in LC, daher können wir:

          ...
          put (fld "das mit einer Zahl drin" * 18 + fld "noch 'ne zahl") into fld "ergebnis"
          ...

          Das gibt nur einen ERROR, wenn das Feld KEINE gültige Zahl enthält.

          P.S.
          Schon getestet?
          https://www.livecode-blog.de/forums/topic/ereignis-simulieren-bildschirmschoner-ausschalten/#post-21410

        • #21432
          Peter_M
          Teilnehmer

            Hallo Klaus,
            vielen Dank, deinen Tipp zur Hintanstellung des Energiesparmodus von Handys konnte ich noch nicht ausprobieren, da ich nebenbei noch ich meinen beruflichen Verpflichtungen nachkommen muss. Ich werde aber auf jeden Fall berichten!

          • #21435
            Peter_M
            Teilnehmer

              Hallo Klaus, zum Thema screensaver: auch der Trick mit der Festplattenaktion funktioniert leider nicht, sodass ich meine Nutzer wohl auf die Änderung ihrer Energiespareinstellungen hinweisen muss 🙁

              Das Thema Datentypen ist mir allerdings immer noch etwas obsolet: wenn ich den Code ” Put 333 into x” betrachte, dann ist für mein Verständnis doch x eine numerische Variable, oder?!
              Im Code ‘put “333” into x’ dagegen erscheint x als weiterer Datentyp, in anderen Sprachen Stringvariable genannt. Aber ich muss in LIVECODE wohl stark umdenken….

            • #21436
              Klaus Major
              Administrator

                Hallo Peter,

                dann ist für mein Verständnis doch x eine numerische Variable, oder?!

                für DEIN Verständnis, das ist korrekt, LC ist eindeutig anders als andere Programmiersprachen!
                Wie gesagt, es gibt keine Datentypen in LC, die “klaubt” sich LC aus dem Zusammenhang zusammen. 😀

                Gruß

                Klaus

              • #21437
                Torsten
                Teilnehmer

                  Hi Peter,

                  es ist ganz einfach: ALLES ist ein String = eine Kette von Zeichen (eigentlich eine Kette von Nullen und Einsen, wenn man es genau nimmt).

                  Ob es eine Zahl ist, sprich, ob der String nur Zeichen enthält, die Ziffern sind, kann man mit “is a number” feststellen:

                  if tMeineVariable is a number then 
                    put tMeineVariable into field "Zahl"
                  else
                    put tMeineVariable into field "String"
                  end if

                  Überhaupt kann man den Inhalt der Variablen mit is a erkennen: https://livecode.fandom.com/de/wiki/Is_a

                  So braucht man nicht schon bei der der Definition zu entscheiden, was die Variable sein soll, es ist einfach ein Container, der alles enthalten kann 🙂

                  Happy Coding!
                  Torsten

                • #21447
                  Peter_M
                  Teilnehmer

                    Hallo Klaus und Torsten,
                    vielen Dank für eure Nachhilfe in Sachen Datentypen bei LIVECODE. Ich glaube, das habe ich jetzt “gefressen”. Ich vermisse in LIVECODE jedoch noch eine weitere wichtige Funktion, die unter Basic als “Instr”-Funktion die Position einer Zeichenkette in einer anderen bestimmt. Habe ich mal wieder Tomaten auf den Augen oder gibt es eine solche Funktion in LIVECODE tatsächlich nicht, bzw. muss man sich eine solche selber basteln?
                    Viele Grüße
                    Peter

                  • #21448
                    Klaus Major
                    Administrator

                      Nachdem ich “inStr” im Internet nachgeschlagen habe, denke ich, Du meinst OFFSET!
                      offset, itemoffset, wordoffset, truewordoffset, lineoffset etc…

                      ...
                      put "das ist ein blöder satz" into tText
                      put offset("blöd",tText)
                      ## -> 13
                      put wordoffset("blöd",tText)
                      ## -> 4
                      put truewordoffset("blöd",tText)
                      ## -> 4
                      ...

                      Falls Du des Englischen ein wenig mächtig bist, empfehle ich diese Stacks, um mehr über die Basics von LC zu erfahren: http://www.hyperactivesw.com/revscriptconf/scriptingconferences.html

                    • #21472
                      Peter_M
                      Teilnehmer

                        Hallo Klaus,
                        Der Offset- Tipp ist mehr wert als Gold! Sollte meine App je fertig werden, schulde ich dir und Torsten special thanks im Editorial!
                        Danke
                        Peter

                      • #21473
                        Klaus Major
                        Administrator

                          Das ist lieb gemeint, aber ich möchte das nicht, danke. 🙂

                        • #21503
                          Peter_M
                          Teilnehmer

                            Gecheckt!

                        Ansicht von 10 Antwort-Themen
                        • Du musst angemeldet sein, um auf dieses Thema antworten zu können.