![]() |
Edit.Text -> Einzelnen Wert abarbeiten
Hallo Community,
vorab möchte ich der Administration ein Lob für dieses wunderbare Forum aussprechen, da ich hier, auch ohne registriert gewesen zu sein, eine Menge erfahren konnte. Nun registriere ich mich, weil ich eine Frage habe. Es geht darum, dass ich die Quersumme berechnen soll. Mein Arbeitsblatt sagt mir zwar vor, ich solle mod und div verwenden, aber da sehe ich keinerlei Anhaltspunkt. Ich kenne die Quersumme alá "1234 = 10 -> 1+2+3+4"). Wieso also Divisionen vornehmen? Ich wollte jetzt eig. das Edit1.Text von links nach rechts abarbeiten, in ein Array schreiben und dann diese einzelnen Arrays miteinander addieren. Jetzt weiß ich aber nicht, wie ich an jeden einzelnen Char innerhalb des Strings im Editfeld komme. Würde "trim" helfen? Das habe ich schonmal gelesen. Habt ihr Ideen, Vorschläge, Funktionen? (Bitte nur eine Funktion nennen, keinen Sourcecode, ich möchte es selber lösen). Gibt es für Delphi auch eine Referenz, wie die von MSDN oder c++ - reference? Mit freundlichen Grüßen, André. |
AW: Edit.Text -> Einzelnen Wert abarbeiten
Zitat:
Delphi-Quellcode:
-> erster Buchstabe
DeinEditFeld.Text[1]
|
AW: Edit.Text -> Einzelnen Wert abarbeiten
Zitat:
|
AW: Edit.Text -> Einzelnen Wert abarbeiten
Zitat:
|
AW: Edit.Text -> Einzelnen Wert abarbeiten
Willkommen als aktiver User in der DP ;)
Also: Als erstes wandelst du den String aus deinem Edit-Feld in eine Integer um (StrToInt). Mit dieser Zahl kannst du dann das Rechnen anfangen:
Code:
Das Ganze in eine Schleife verpackt - fertig ;)
1. 1234 mod 10 = 4 (als Ergebnis merken)
2. 1234 div 10 = 123 3. 123 mod 10 = 3 (zum Ergebnis addieren) 4. 123 div 10 = 12 . . . Ich hoffe, dadurch wird dir das Prinzip etwas klarer ;) Edit: Hier noch der Link zur ![]() |
AW: Edit.Text -> Einzelnen Wert abarbeiten
Zitat:
Zitat:
Danke erstmal. Melde mich mit dem fertigen Sourcecode nachher nochmal, damit ihr kritisieren könnt. Brauche jeden Anhaltspunkt zur Verbesserung. Danke vorab. Das Ganze in eine Schleife verpackt - fertig ;) Ich hoffe, dadurch wird dir das Prinzip etwas klarer ;) |
AW: Edit.Text -> Einzelnen Wert abarbeiten
Das mit dem DIV und Mod macht man nicht bis zum letzten Char, sondern bis bei dem DIV eine 0 als Wert übrig bleibt
|
AW: Edit.Text -> Einzelnen Wert abarbeiten
Code:
EValue : EditFeld
while (EValue <> 0)
do begin Crosstotal := 0; Crosstotal := Crosstotal + (EValue mod 10); Crosstotal := EValue div 10; end; Crosstotal : Quersumme Was fehlt da jetzt?! :?: |
AW: Edit.Text -> Einzelnen Wert abarbeiten
Du setzt innerhalb der Schleife CrossTotal immer wieder auf 0. Außerdem wird EValue ja niemals verändert, da kannst Du bis zum Sanktnimmerleinstag warten, bis die Schleifenbedingung erfüllt ist.
|
AW: Edit.Text -> Einzelnen Wert abarbeiten
Du hast grundsätzlich zwei verschiedene Möglichkeiten:
1.) jedes einzelne Zeichen im String in eine Zahlumwandeln (mit funktion Ord()) und die Einzelwerte addieren 2.) den String im Gesamten in eine Zahl umwandeln (mit Funktion StrToInt()) und dann mit Mod 10 und Div 10 die Reste zusammenaddieren. Methode 1.) ist einfacher aber du sollst ja die etwas schwerere Methode 2.) benützen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:13 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz