[GastForen Archiv Adobe Director nochmal kleines problem mit rechenformel

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Archiv - Archivierte Foren
Themen
Beiträge
Moderatoren
Letzter Beitrag

nochmal kleines problem mit rechenformel

simi
Beiträge gesamt: 18

3. Jul 2003, 11:54
Beitrag # 1 von 7
Bewertung:
(1751 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
wahrscheinlich denke ich zu kompliziert:
habe nun das script für die ersetzung des punktes in ein komma eingefügt. das funktioniert auch wunderbar.

was noch komisch ist ist, dass wenn gar nix in den feldern 03 und 04 steht, rechnet director trotzdem was und schreibt diesen wert ins "pointtext"-feld.
wie kann ich sagen, dass, wenn diese beiden felder leer sind, zb: 0,0 im "pointtext"-feld steht? oder dass er nichts rechnen soll?

meine eingabefelder heißen feld03 und feld04.
der button hat folgedes scipt:
----------------------------------------------------------------------
on mouseUp me
ergebnis = float(member("feld03").text/60)+ (float(member("feld04").text/9))
ergebnis02 = float(member("feld03").text/60)
ergebnis03 = float(member("feld04").text/9)
member("pointtext").text=string(ergebnis)
myStrg = string(ergebnis)
myCt = the number of chars in myStrg - 1
put "," into myStrg.char[myCt]
put myStrg into member "pointtext"



if member("feld04").text= "" then
member("feld04").text= "0"
member("pointtext").text= string(ergebnis02)
myStrg = string(ergebnis02)
myCt = the number of chars in myStrg - 1
put "," into myStrg.char[myCt]
put myStrg into member "pointtext"
end if


if member("feld03").text= "" then
member("feld03").text= "0"
member("pointtext").text= string(ergebnis03)
myStrg = string(ergebnis03)
myCt = the number of chars in myStrg - 1
put "," into myStrg.char[myCt]
put myStrg into member "pointtext"
end if
go to frame "portion"

end
------------------------------------------------------

weiss jemand rat?

danke

gruß simone
X

nochmal kleines problem mit rechenformel

donkey shot
Beiträge gesamt: 1416

6. Jul 2003, 18:40
Beitrag # 2 von 7
Beitrag ID: #42682
Bewertung:
(1751 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Mit dem Befehl floatP(expression) kannst Du überprüfen, ob es sich bei einem eingegebenen Text um eine Zahl mit Komma (aber auch ganze Zahlen werden akzeptiert) handelt. Das folgende Beispielskript (als Verhalten für einen Textdarsteller) überprüft beim drücken der Entertaste, ob der eingegebene Text eine Zahl ist:

on beginSprite me
sprite(the spriteNum of me).editable = TRUE
the floatPrecision = 1
end beginSprite

on keyUp me
if the key = RETURN then
myText = sprite(the spriteNum of me).member.text
delete the last char of myText
if floatP(float(myText)) = 0 then
put "nochmal!" into the member of sprite(the spriteNum of me)
else
put float(myText) into the member of sprite(the spriteNum of me)
end if
else
nothing
end if
end keyUp

Hoffe, Du kannst damit was anfangen und es nach Bedarf umbauen.

grüsse

Christof


als Antwort auf: [#42329]

nochmal kleines problem mit rechenformel

donkey shot
Beiträge gesamt: 1416

6. Jul 2003, 18:43
Beitrag # 3 von 7
Beitrag ID: #42683
Bewertung:
(1751 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Ach und zwei Dinge noch zur Erklärung:

Wenn Du mit floatP() etwas überprüfst, wird entweder 0 für FALSE oder 1 für TRUE ausgegeben.

Deinen eingegebenen Text mußt Du übrigens mit float(eingabetext) von einem String in eine Fließkommazahl umwandeln, sonst klappt es nicht.

grüsse

Christof


als Antwort auf: [#42329]

nochmal kleines problem mit rechenformel

simi
Beiträge gesamt: 18

9. Jul 2003, 12:50
Beitrag # 4 von 7
Beitrag ID: #43123
Bewertung:
(1751 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
hallo christof,
diese rechenformel macht mich noch wahnsinnig! -und dich wahrscheinlich auch ;)
du hast geschrieben, dass man mit floatP(expression) überprüfen kann, ob es sich bei dem eingegebenen text um eine zahl mit komma handelt.

ich glaub ich schnall das nicht!
also ich habe noch ein weiteres problemchen gefunden:
nochmal mein script:

--------------------------------------------------
on mouseUp me
ergebnis = float(member("feld01").text * 10000) / (float(member("feld02").text) * float(member("feld02").text))
member("amount").text= "Your BMI amounts to"
member("ausgabe02").text=string(ergebnis)
myStrg = string(ergebnis)
myCt = the number of chars in myStrg - 1
put "," into myStrg.char[myCt]
put myStrg into member "ausgabe02"

if ergebnis> "1" then
member("info").text= "bla bla."
end if
end

----------------------------------------------------

also das ergebnis wird nun als kommazahl dargestellt.

jetzt hab ich aber bemerkt (etwas spät), dass,wenn man mit einer kommazahl rechnen will z.b. 55,5 (die ich ins feld01 eintippe)dann rechnet director irgenwas komisches. tippe ich aber 55.5 ein klappt alles.

ich glaube ich hab deine geduldigen erkärungen nicht ganz begriffen.

deshalb nochmal eine dumme frage von mir: wie rechnet director richtig auch mit den von mir eingegebenen kommazahlen. ich denke ich könnte die antwort in deinen mails nachlesen und kombinieren, aber ich bin inzwischen selbst zum kombinieren zu doof :(
das mit float() und floatP() ist mir noch unklar. und auch wie du schreibst:
"Deinen eingegebenen Text mußt Du übrigens mit float(eingabetext) von einem String in eine Fließkommazahl umwandeln, sonst klappt es nicht. "
das blick ich nicht!!!

danke im vorraus

gruß simone


als Antwort auf: [#42329]

nochmal kleines problem mit rechenformel

donkey shot
Beiträge gesamt: 1416

10. Jul 2003, 16:07
Beitrag # 5 von 7
Beitrag ID: #43315
Bewertung:
(1751 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Simone,

Zum ersten:

>>das mit float() und floatP() ist mir noch unklar...

Director unterscheidet zwischen einfachen Zeichenketten (Strings), Fließkommazahlen (float) und ganzen Zahlen (integer). Strings werden in Anführungen an- bzw. ausgegeben. ZB.:

myString = "Dies ist ein Satz"

Zahlen ohne Anführungen. Z.B.:

myNmb = 1
myNmb = 1.54354534

Zahlen können natürlich auch Strings sein. ZB.:

myNmb = "1"

Man kann aber auch Strings in Zahlen oder Zahlen in Strings umwandeln mit string(), float() oder integer().

Wenn man überprüfen will, ob ein Wert ein String, eine Fließkommazahl oder ein ganze Zahl ist, geht das mit den Befehlen stringP(), floatP() oder integerP().

Wenn ich ein Zeichen in einer Zahl, austauschen will (Punkt oder Komma zB.), dann muß ich diese in einen String umwandeln, selbige aber von einem String in eine Fließkommazahl umformatieren, wenn ich damit rechnen will (wobei Director letzteres auch automatisch macht).

So und nun zum eigentlichen Problem:

Das Skript sollte es tun (habe es diesmal ein wenig kommentiert):

on beginSprite me
the floatPrecision = 1
put EMPTY into member "feld01"
put EMPTY into member "feld02"
put EMPTY into member "ausgabe02"
end beginSprite

on mouseUp me

myText1 = member("feld01").text

-- es folgt eine Abfrage, ob die Eingabe ein Komma enthält

if myText1 contains "," then


-- die folgenden 5 Zeilen wandeln das Komma zum Rechnen in einen Punkt um

repeat with n = 1 to the number of chars in myText1
if char n of myText1 = "," then
put "." into myText1.char[n]
end if
end repeat
else
nothing
end if

-- das ganze nochmal für Feld zwei

myText2 = member("feld02").text

if myText2 contains "," then
repeat with n = 1 to the number of chars in myText1
if char n of myText2 = "," then
put "." into myText2.char[n]
end if
end repeat
else
nothing
end if


-- wenn einer der Werte keine Zahl ist wird eine Warnung ausgegeben

if floatP(float(myText1)) = 0 then
put EMPTY into member "feld01"
alert "Ungültiger numerischer Wert!"
else

var1 = float(myText1)

if floatP(float(myText2)) = 0 then
put EMPTY into member "feld02"
alert "Ungültiger numerischer Wert!"
else
var2 = float(myText2)

-- nun kommt die eigentliche Rechnung, wenn die Werte OK sind

ergebnis = (var1 * 10000) / (var2 * var2)

-- nu wird der Punkt wieder in ein Komma umgewandelt

myStrg = string(ergebnis)
myCt = the number of chars in myStrg - 1
put "," into myStrg.char[myCt]

-- und der Text ausgegeben

put "Your BMI amounts to" && myStrg into member "ausgabe02"

end if

end if

-- hier kommen dann die Abfragen für das Infofeld rein

end mouseUp


Und nun zum Thema Geduld und dumme Fragen:

Habe jahrelang Computerkurse gegeben - unter anderem Computereinführungskurse - da entwickelt man zwangsläufig die Geduld eines Hühnengrabes. Außerdem habe ich etwa eine Stunde täglich für dieses Forum reserviert (dieses Problem hat mich eine halbe Stunde gekostet, also habe ich noch eine halbe für mich :)).

Aber das hier ist ja auch wirklich ein recht komplexes Skript für eine einfache Rechenformel. Wenn man viel programmiert muß man aber einfach feststellen, das man die meiste Zeit in solch lästige Hin- und Herkonvertierereien und Abfragen für jeden erdenklichen Fall stecken muß. Sei froh, daß Du keine Datumsberechnungen/-formatierungen mit JavaScript machen mußt oder so. Da ist Lingo wirklich schon komfortabel... ;)

greez cb


als Antwort auf: [#42329]

nochmal kleines problem mit rechenformel

simi
Beiträge gesamt: 18

11. Jul 2003, 10:45
Beitrag # 6 von 7
Beitrag ID: #43384
Bewertung:
(1751 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
vielen vielen dank,

jetzt ist das ganz logisch :)
hatte wohl ein äußerst dickes brett vor dem kopf.

nochmal danke für deine mühen.

grüße
simone


als Antwort auf: [#42329]

nochmal kleines problem mit rechenformel

donkey shot
Beiträge gesamt: 1416

12. Jul 2003, 02:54
Beitrag # 7 von 7
Beitrag ID: #43465
Bewertung:
(1751 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Ja, ja. Die Bretter vorm Kopf. Die kenn ich. Hilft meistens nur Problem ignorieren und zwei Tage später nochmal angehen - wenns geht.

Manchmal versteh ich auch meine eigenen Skripts nicht mehr. Dann geht neuprogrammieren manchmal schneller... ;)

grüsse,

Christof


als Antwort auf: [#42329]
X

Veranstaltungskalender

Hier können Sie Ihre Anlässe eintragen, welche einen Zusammenhang mit den Angeboten von HilfDirSelbst.ch wie z.B. Adobe InDesign, Photoshop, Illustrator, PDF, Pitstop, Affinity, Marketing, SEO, Büro- und Rechtsthemen etc. haben. Die Einträge werden moderiert freigeschaltet. Dies wird werktags üblicherweise innert 24 Stunden erfolgen.

pdf-icon Hier eine kleine Anleitung hinsichtlich Bedeutung der auszufüllenden Formularfelder.

Veranstaltungen
14.05.2024

Online
Dienstag, 14. Mai 2024, 10.00 - 10.30 Uhr

Webinar

Prozessoptimierung ist ein Teamsport! Keine Software und keine Maschine allein kann Ihnen helfen, die Effizienzpotenziale Ihres Betriebes maximal auszuschöpfen. Von der Auftragsannahme über die Vorstufe und den Druck bis hin zur Weiterverarbeitung – alles muss optimal ineinandergreifen. Apropos Weiterverarbeitung – in vielen Druckbetrieben fristet sie in Sachen Prozessoptimierung immer noch ein Schattendasein. Dabei liegen hier mittlerweile die größten Einsparpotenziale! In einem Webinar von Horizon und Impressed erfahren Sie, wie Sie diese Einsparungen realisieren können. Horizon, bekannt für innovative Lösungen in der Druckweiterverarbeitung, bietet mit iCE LiNK eine Workflowlösung für die Weiterverarbeitung. iCE LiNK überwacht, visualisiert und analysiert Produktionsabläufe und unterstützt bei der Wartung – damit immer alles reibungslos läuft. Den gleichen Anspruch hat der von Impressed entwickelte Impressed Workflow Server – er ist die smarte PDF-Workflow-Lösung für Druckereien, die Datenmanagement, Preflight und Produktionssteuerung übernimmt. Im Webinar zeigen Ihnen die Experten von Horizon und Impressed, wie beide Lösungen im Team die Effizienz und Produktivität Ihres Betriebes steigern können. Melden Sie sich am besten gleich an, wir freuen uns auf Sie! PS: Melden Sie sich in jedem Fall an – sollten Sie zum Termin verhindert sein, erhalten Sie die Aufzeichnung.

kostenlos

Ja

Organisator: Impressed / Horizon

https://www.impressed.de/schulung.php?c=sDetail&sid=327

Einsparpotenziale in der Weiterverarbeitung
Veranstaltungen
16.05.2024

Online
Donnerstag, 16. Mai 2024, 10.00 - 10.30 Uhr

Webinar

Komplizierte, kleinteilige Aufträge; alles sehr speziell; seit Jahren bewährte Prozesse – da können wir nichts standardisieren und automatisieren! Das sagen viele Großformatdrucker – aber stimmt das wirklich, ist dem tatsächlich so? Günther Business Solutions und Impressed treten in einem Webinar den Gegenbeweis an. Experten beider Unternehmen zeigen, wie Großformatdrucker vom Einsatz zweier bewährter Lösungen profitieren können: • von advanter print+sign von Günther Business Solutions, dem ERP-System für den Großformatdruck, dass alle Phasen der Wertschöpfung im Large Format Printing abdeckt • von Impressed Workflow Server, der smarten PDF-Workflow-Lösung für Druckereien, die Datenmanagement, Preflight und Produktionssteuerung übernimmt Über die Kombination beider Lösungen können Großformatdrucker ihre Prozesse mit modernen Workflows Schritt für Schritt automatisieren – und so zügig deutliche Zeit- und Kosteneinsparungen realisieren. Das Webinar sollten Sie sich nicht entgehen lassen – damit Sie keine Effizienzpotenziale mehr liegen lassen. Melden Sie sich am besten gleich an, wir freuen uns auf Sie! PS: Melden Sie sich in jedem Fall an – sollten Sie zum Termin verhindert sein, erhalten Sie die Aufzeichnung.

kostenlos

Nein

Organisator: Impressed / Günther Business Solutions

https://www.impressed.de/schulung.php?c=sDetail&sid=326

Und es geht doch: Automatisierung im Großformatdruck!