Newton Logo
Newton Does It!


What's new?
Site Map
Meta-FAQ
1 | 2 | 3 | 4
Tech-Infos
Communication
Software
1
 | 2 | 3
Astronomy
1 | 2 | 3
QF Works/Pro Tips
Tests / Reviews
Hardware DIY
News & eZines
The Newton Story
=- Site Archive -=
Div. / Misc. Links
Homepage

03.10.2003

QuickFigure Works/Pro
"Geheime" Funktionen

This page is also available in English!

PelicanWares QuickFigure Pro (QF Pro) - aber auch das bei den MP 2x00 standardmäßig mitgelieferte QuickFigure Works (Download der neueste Version QF Works 1.1.2 englisch) - bietet viele Funktionen aus den Bereichen: Mathematik, Finanzen, Statistik, Datum und Uhrzeit.
Zusätzlich zu den dokumentierten Befehlen gibt es noch einige "geheime" Zusatzfunktionen und Tricks:

Textfunktionen


Die aufgelisteten Funktionen werden ausführlich im Handbuch und in der online Hilfe beschrieben. Was aber völlig zu fehlen scheint, sind Funktionen zur Textmanipulation. Diese Funktionen sind aber auf dem Umweg über NewtonScript vorhanden.

Nachfolgend ein kurzer Überblick, über einige nützliche Funktionen.

Grundsätzlich gilt:

  • Texte werden durch Hochkomma eingeschlossen "Hello World"
  • Texte werden duch Semikolon getrennt "Hello";"World"

    Allgemeiner Hinweis:
    Auf einem deutschen Newton wird zur Trennung der Parameter statt eines Kommas ein Semikolon verwendet. Dieses muß auch bei den eingebauten Funktionen wie z.B. LINK bedacht werden, da sonst nur "falsche" Fehlermeldungen erscheinen.

    Die Befehle sind nicht case-sensitiv, die Großbuchstaben werden hier nur zur Veranschaulichung verwendet. Die Änderungen sind im Ergebnis jeweils hervorgehoben.
    Funktion/Beispiel Bedeutung/Ergebnis
    Capitalize den ersten Buchstaben eines Text in Großbuchstaben umwandeln
    Capitalize("hello world") Hello world
    CapitalizeWords den ersten Buchstaben jedes Wortes in Großbuchstaben umwandeln
    CapitalizeWords("hello word") "Hello World"
    UpCase gesamten Text in Großbuchstaben umwandeln
    UpCase("hello world") "HELLO WORLD"
    DownCase gesamten Text in Kleinbuchstaben umwandeln
    DownCase("HELLO WORLD") "hello world"
    StringToNumber Text in eine Zahl umwandeln (für Berechnungen)
    StringToNumber("0815") 815
    NumberStr Zahl in einen Text umwandeln
    NumberStr(800+15) "815"
    StrLen Länge eines Textes
    StrLen("Hello World") 11
    BeginnsWith Textanfang vergleichen
    BeginnsWith("Hello World";"Hel") True (boolscher Wert für IF ... THEN ... ELSE)
    EndsWith Textende vergleichen
    EndsWith("Hello World";"ord") False (boolscher Wert für IF ... THEN ... ELSE)
    & zwei Texte verknüpfen
    "Hello" & "World" "HelloWorld"
    && zwei Texte mit Leerzeichen verknüpfen
    "Hello"&&"World" "Hello World"
    SubStr Teiltext (Text;Beginn;AnzahlZeichen)
    SubStr("Hello World";2;3) "llo"
    StrPos Position einer Zeichenkette im Text finden (text;such;beginn)
    StrPos("Hello World";"or";0) 7
    Chr ASCII Zeichen ausgeben
    Chr(78) "N"


    Zelle auf Leerstring testen

    Die Stringfunktionen von QF Works/Pro quittieren Funktionsaufrufe mit leeren Zellen nur mit einem VALUE! Fehler. Leider ist es nicht möglich, durch einen einfachen Stringvergleich (= if a2 = "" then "leer") herauszufinden, ob eine Zelle leer ist oder nicht.
    Stattdessen kann man sich aber mit einem kleinen Trick behelfen, durch den der Zelleninhalt zwangsweise in einen String konvertiert wird.
    Zelle A1 : Name eingeben:
    Zelle A2 :
    Zelle A3 : = IF strlen(A2 & "")  = 0
                THEN "Name fehlt"
                ELSE "Der Name lautet" & A2
    


    NewtonScript in QF verwenden

    Es ist auch möglich andere NewtonScript Befehle direkt in QF Works/Pro auszuführen. Wer MacinTalk installiert hat, kann ja mal folgendes ausprobieren:

    Zelle A1 : Kontostand
    Zelle A2 : 500
    Zelle A3 : = IF A2 <= 0
                THEN PLAYSOUND("Sorry, no money left!")
                ELSE PLAYSOUND(NumberStr(A2))
    

    Wenn man jetzt in A2 einen Wert kleiner gleich Null eingibt, macht QF Works/Pro einen direkt auf die schlechte Finanzlage aufmerksam :-)


    Spiele im ROM mit NewtonScript in QF aktivieren

    Mit Hilfe von QuickFigure und NewtonScript können Sie auch die im Newton ROM versteckten Spiele Poker und Patience starten. Geben Sie dazu in einer QF Zelle folgendes ein:
    für Poker    : =buildContext(@830):open()
    
    oder
    
    für Patience : =buildContext(@831):open()
    


    Die Grenzen von NewtonScript in QF


    Second Level Data

    Innerhalb von QF Works/Pro ist es nur möglich first level Daten in Formeln zu verwenden. So liefert z.B.

    Zelle A1 : = GetUserConfig('name)
    

    den Benutzernamen.

    Leider gibt es aber keinen - mir bekannten - Weg, auch second level Daten, wie z.B. den GMT Offset auszulesen.
    Don Vollum von PelicanWare hat dieses "Feature" bestätigt und gleichzeitig versprochen sich dieser Sache anzunehmen, für den Fall, daß es ein Update zu QF Pro 4.0 geben sollte.

    Geschachtelten Funktionsaufrufe

    QuickFigure hat Probleme beim Umgang mit ineinadergeschachtelten Funktionsaufrufen. Beim Versuch meine Server Logs auszuwerten, stieß ich auf folgendes Problem:
    In den Zelle A1 bis A50 befinden sich sie die Abrufzahlen je Seite im Format "number of requests : transferred kb : file name" sortiert nach der Anzahl der Abrufe

    Zelle A1 : 123 : 34 : <index.html>
    Zelle A2 : 143 : 45 : <irgendwas.html>
    usw.

    Um diese Liste alphabetisch sortieren zu können, müssen die Strings in der Spalte A in ihre Bestandteile (requests, transferred, name) zerlegt werden.
    Separierung des Dateinamens in drei Schritten :

    Zelle B1 : "= StrPos(a1;"<";0)"
    Zelle C1 : "= StrPos(a1;">";0")"
    Zelle D1 : "= SubStr(a1;b1+1;c1-b1-1)"
    

    liefert in der Zelle D1 mit "index.html" das gewünschte Ergebnis.

    Der Versuch jedoch, die Zellen B1, C1 und D1 zusammenzufassen

    Zelle B1 : "= SubStr(a1;StrPos(a1;"<";0)+1;
                 StrPos(a1;">";0")-StrPos(a1;"<";0)-1)"
    

    liefert nur die Fehlermeldung "VALUE!".


    Y2K bug in stringToDate

    From: donv@teleport.com (Don Vollum)
    Newsgroups: comp.sys.newton.programmer
    Subject: Y2K bug in stringToDate
    Message-ID: <donv-1301001356020001@200.200.200.2>
    Date: Thu, 13 Jan 2000 13:55:47 -0800

    This is probably old news, but I've been getting some Y2K bug reports on some of my software, and lo and behold, stringToDate has what I would describe as a bug (I'm sure if Newton DTS were still around, they would explain to me how this is a feature, it's supposed to be this way, whatever...).

    Anyway, here goes:

    stringToDate("7/21/99")
    #1885A334 102852813

    stringToDate("7/21/1999")
    #BFB6EB4 50256813

    stringToDate("7/21/2099")
    #1885A340 102852816

    Essentially, it's interpreting any date in mm/dd/yy format as "20yy".

    Mehr dazu gibt es direkt bei PelicanWare.

    [Oben / Top]

    Andree Dettmer 03.10.2003