AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Edit.Text -> Einzelnen Wert abarbeiten

Ein Thema von Elexarie · begonnen am 7. Apr 2011 · letzter Beitrag vom 8. Apr 2011
Antwort Antwort
Seite 1 von 2  1 2      
Elexarie

Registriert seit: 7. Apr 2011
32 Beiträge
 
#1

Edit.Text -> Einzelnen Wert abarbeiten

  Alt 7. Apr 2011, 18:30
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é.
  Mit Zitat antworten Zitat
aurikel_Max

Registriert seit: 9. Okt 2009
86 Beiträge
 
#2

AW: Edit.Text -> Einzelnen Wert abarbeiten

  Alt 7. Apr 2011, 18:35
Jetzt weiß ich aber nicht, wie ich an jeden einzelnen Char innerhalb des Strings im Editfeld komme.
DeinEditFeld.Text[1] -> erster Buchstabe
Max
  Mit Zitat antworten Zitat
Elexarie

Registriert seit: 7. Apr 2011
32 Beiträge
 
#3

AW: Edit.Text -> Einzelnen Wert abarbeiten

  Alt 7. Apr 2011, 18:37
Jetzt weiß ich aber nicht, wie ich an jeden einzelnen Char innerhalb des Strings im Editfeld komme.
DeinEditFeld.Text[1] -> erster Buchstabe
Das ist nicht wirklich so simpel oder? Aber ich habe mal gelernt, dass ein Array bei [0] anfängt. Ist es dann nicht hier auch so? :O
  Mit Zitat antworten Zitat
aurikel_Max

Registriert seit: 9. Okt 2009
86 Beiträge
 
#4

AW: Edit.Text -> Einzelnen Wert abarbeiten

  Alt 7. Apr 2011, 18:38
Jetzt weiß ich aber nicht, wie ich an jeden einzelnen Char innerhalb des Strings im Editfeld komme.
DeinEditFeld.Text[1] -> erster Buchstabe
Das ist nicht wirklich so simpel oder? Aber ich habe mal gelernt, dass ein Array bei [0] anfängt. Ist es dann nicht hier auch so? :O
Da es ein String ist, ist [0] die Länge - wenn ich das richtig in Erinnerung habe.
Max
  Mit Zitat antworten Zitat
Benutzerbild von patti
patti

Registriert seit: 20. Okt 2004
Ort: Mittelfranken
665 Beiträge
 
Turbo Delphi für Win32
 
#5

AW: Edit.Text -> Einzelnen Wert abarbeiten

  Alt 7. Apr 2011, 18:39
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:
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
.
.
.
Das Ganze in eine Schleife verpackt - fertig

Ich hoffe, dadurch wird dir das Prinzip etwas klarer

Edit: Hier noch der Link zur DP-Reference
Patrick Kreutzer
[Informatik-Student im 4. Semester]
http://www.patti-k.de/
  Mit Zitat antworten Zitat
Elexarie

Registriert seit: 7. Apr 2011
32 Beiträge
 
#6

AW: Edit.Text -> Einzelnen Wert abarbeiten

  Alt 7. Apr 2011, 18:43
Jetzt weiß ich aber nicht, wie ich an jeden einzelnen Char innerhalb des Strings im Editfeld komme.
DeinEditFeld.Text[1] -> erster Buchstabe
Das ist nicht wirklich so simpel oder? Aber ich habe mal gelernt, dass ein Array bei [0] anfängt. Ist es dann nicht hier auch so? :O
Okay. Habs schon getestet.

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:
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
.
.
.
Das mache ich dann solange, bis ich beim letzten Char bin? - Okay. Dann habe ich jetzt zwei Methoden, einmal mit einer for - Schleife und einmal mit ddem mod / div.

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

Geändert von Elexarie ( 7. Apr 2011 um 18:48 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#7

AW: Edit.Text -> Einzelnen Wert abarbeiten

  Alt 7. Apr 2011, 18:54
Das mit dem DIV und Mod macht man nicht bis zum letzten Char, sondern bis bei dem DIV eine 0 als Wert übrig bleibt
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Elexarie

Registriert seit: 7. Apr 2011
32 Beiträge
 
#8

AW: Edit.Text -> Einzelnen Wert abarbeiten

  Alt 7. Apr 2011, 18:59
Code:
while (EValue <> 0)
  do
      begin
           Crosstotal := 0;
           Crosstotal := Crosstotal + (EValue mod 10);
           Crosstotal := EValue div 10;
      end;
EValue : EditFeld
Crosstotal : Quersumme

Was fehlt da jetzt?!
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#9

AW: Edit.Text -> Einzelnen Wert abarbeiten

  Alt 7. Apr 2011, 19:10
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.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#10

AW: Edit.Text -> Einzelnen Wert abarbeiten

  Alt 7. Apr 2011, 19:31
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.
Andreas
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:09 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz