![]() |
problem bei schleife
Delphi-Quellcode:
//Z1
Str := Pos('!-',Text.Lines.Strings[i])+2; for e := 0 to Pos('+', Text.Lines.Strings[i]) do Befehl := Befehl + Text.Lines.Strings[i][Str+e]; Z1 := Befehl; Befehl := ''; // Z2 Str := Pos('+',Text.Lines.Strings[i])+1; for e := 0 to Pos('-!', Text.Lines.Strings[i]) do Befehl := Befehl + Text.Lines.Strings[i][Str+e]; Z2 := Befehl; SendMessage(Addieren(StrToInt(Z1),StrToInt(Z2))); end; --> man gibt das ein Rw: !-4+9-! und 13 sollte in ner mesasge(prozeduren stimmen alle es geht nur um die schleife) ausgeben also das Problem er schribt nacher "9-! kein Integer --> bei //Z2 --> --> --> pos-2 bringt auch nix... danke im Voraus |
Re: problem bei schleife
Code:
Du musst bei 1 anfangen, weil sonst das "+" Zeichen mit übernommen wird, oder? :gruebel:for e := 1 to Pos('-!', Text.Lines.Strings[i]) do Befehl := Befehl + Text.Lines.Strings[i][Str+e]; |
Re: problem bei schleife
naja :? komischh aber das wars nicht es hängt nur immer das -! an :cry:
|
Re: problem bei schleife
Sorry, aber du schreibst ohne Punkt und Komma. Zumindest ich habe überhaupt nicht verstanden, was du erreichen möchtest und was genau daran nicht funktioniert.
Schreibe dein Problem doch mal sorgfältig(!) auf. Vor allen Dingen, was genau in
Code:
steht.
Text.Lines.Strings[i]
|
Re: problem bei schleife
Hi,
kann dein Code nicht so ganz durchschauen aber vielleicht muss du unter
Delphi-Quellcode:
die jeweiligen Befehle in
for-to-do
Delphi-Quellcode:
setzen.
begin ... end
|
Re: problem bei schleife
das programm ist ein kleines "programmiersystem" :D
wollt nur net das des wieder in falsche Münder(;) :love: Luckie) kommt und man denkt das ich jetzt ein neues Delphi programmeire(n will)[ich erinner mich an das "Betriebsystem"] ist nur ein Test also Text.Lines.strings[i] durchsucht nur die aktuelle Zeile(geht zeilenweise durch)--> das programm soll jetzt das berrechnen(addieren ist das jetzt) Rw: !-34+67-! wobei nach Rw: beliebig viele Lehrzeichen sein dürfen und auch beliebig viele Ziffern möglich sind es hat schon mal geklappt aber dann hat Patrick (Patricius) gesagt ich solle es etwas verändern und adnn hab ich natürlich, so wie ich bin, ene general restaurierung gemacht und ein paar zeichen gändert hoffe ihr versteht des jetzt ;) danke im Voraus mfg Nicodius |
Re: problem bei schleife
Delphi-Quellcode:
Ich weiss nit obbes dat ist, da ich nicht ganz durchblicke (schreib mal typ und funktion deiner variablen dazu :wink: )
Str := Pos('!-',Text.Lines.Strings[i])+2;
for e := 0 to Pos('+', Text.Lines.Strings[i]) do Befehl := Befehl + Text.Lines.Strings[i][Str+e]; aber das kommt mir komisch vor: str ist offenbar die stelle, wo der erste summand anfängt... e soll dann zählen von 0 bit position von dem + da stimmt was nicht... :gruebel: Arghhh :wall: ich habs, da muss statt
Delphi-Quellcode:
das
for e := 0 to Pos('+', Text.Lines.Strings[i]) do
Delphi-Quellcode:
hin, glaub ich
for e := 0 to Pos('+', Text.Lines.Strings[i])+str do
weil er zählt ja um str stellen zu weit... kann ich jetzt nicht erklären, aber probiers mal aus... |
Re: problem bei schleife
Zitat:
Eine Berechnung von 3+4+6+7, also jede Ziffer einzelnd addieren, oder eine Berechnung von 34+67, also die Zahlen/Werte addieren? Grundsätzlich, überlege mal, was du tust (ich beziehe mich auf dein Eingangsposting) - siehe Kommentare im Code:
Code:
Aber geraten und geglaubt wurde hier jetzt schon genug!
//Z1
// Beipiel: Text.Lines.Strings[i] ist "Rw: !-4+9-!" Str := Pos('!-',Text.Lines.Strings[i])+2; //Str ist 7 (zeigt auf die "4") for e := 0 to Pos('+', Text.Lines.Strings[i]) do //e --> 0 bis 8 Befehl := Befehl + Text.Lines.Strings[i][Str+e]; //Befehl ist danach Zeichen 7 - 15, //also "4+9-!" //Soll das so sein? Glaube ich nicht ... Z1 := Befehl; Befehl := ''; Siehe meine Frage oben. Und lese mal in der Online-Hilfe etwas nach über den Befehl Copy. Den kannst du wohl gut gebrauchen. |
Re: problem bei schleife
=) ich teste mal deinen Beitrag, glkbkk danke :)
|
Re: problem bei schleife
geht leider nicht :cry:
|
Re: problem bei schleife
Zitat:
Hast du dir mein Posting auch angeschaut? Dort steht etwas in den Code-Kommentaren von "e --> 0 bis 8". Mit dem, was du anscheinend eben getestet hast ...
Code:
(von glkbkk)
for e := 0 to Pos('+', Text.Lines.Strings[i])+str do
... hast du schon für e die Werte 0 bis 15 - also noch falscher. |
Re: problem bei schleife
;) :mrgree:
ich glaub ich machs anders ... wie mach ich das wenn ich mehr als nur 2 Zahlen addieren mag hat wer einen Vorschlag? dann streich ich die zeilen und könnt ihr mir erkären wie ich das verwiklich: RW: 34+67+89+45 wie müsste ich da vor gehen? |
Re: problem bei schleife
![]() |
Re: problem bei schleife
:|
Du möchtest fertigen Code haben, richtig? Am besten ist noch, man ist mit hellseherischen Fähigkeiten ausgestattet, damit man dich nicht mit Rückfragen quält. Wenn aber diese Rückfragen dennoch kommen, beantwortest du sie gar nicht oder völlig unzureichend. Das ist nicht mein Verständnis von Hilfe suchen und Hilfe geben. Und wenn langsam diese Kritikpunkte hochkochen, dann wird dein Anliegen anscheinend irgendwie gewechselt (siehe dein letztes Posting). Was allerdings jetzt daran anders sein soll, könnte ich nicht sagen, weil du es nicht erklären kannst oder willst. Wenn du dein Problem und etwaige Rückfragen dazu nicht erörtern kannst oder willst, wie soll dir dann geholfen werden? Glaubst du, man schreibt dir solange Quelltext hier rein, bis er zufällig passt? Und solange er nicht passt, schreibst du immer nur "geht nicht"? Mache dir selber auch mal Gedanken. Lies jetzt meine Postings und dann weisst du, warum der Compiler einen Fehler meldet (ausserdem ist die Fehlermeldung ja schon Klartext). Wenn du den von dir benutzten Befehl Pos verstanden hast, dann befolge meinen Tipp und lese in der Hilfe etwas über den Befehl Copy nach. Und wenn du das verstanden hast, dann kannst du deine for-e-Schleife schonmal vergessen. Kurz: Suche mit Pos die richtigen Stellen und hole mit Copy die richtigen Zeichen raus. Und dann sieh mal weiter. |
Re: problem bei schleife
das versteh ich ja.. ich wollte ja wissen wie mans außer dem copy machen kann ;)
--> ich habe meinen fehler, wie du hoffentlich gelesen hast sonst bringt mir die hilfe nix, genauestens(so genau es eben ging) bei meinem ERSTEN POSTING erklärt :D aber egal: glaub mir Pos versteh ich :roll: eher ist es die Logig die dahinter steht --> Ok ich such mir jetzt die position eines "+" raus dann schau ich wo das nächste plus ist ... dann subtrahiere ich das erste vom zweiten -----> ok aber wenn ic hdas jetzt umsetze kommen fehler .... deshalb will ich für diese porzedur, und ich bete darum, den Quelltext haben da ich es nicht logisch übersetzen kann so ist, wie schon erwähnt mein lieber IngoD7, meine frage wie ich den code für diese Zeile(die ich, wie schon erwähnt, in ein memo eingebe, "RW: 34+67+89+45" --> wie mache ich eine Porzedur mit delphi die diese einzelnen Werte addiert(und belibig viele andere) und dann ausgibt hoffe DAS war jetzt genau genug, danke IngoD7 du hast mir die augen geöffnet :shock: :drunken: :mrgreen: :zwinker: |
Re: problem bei schleife
ah danke anubis du bringst es auf den punkt!
DANKE ANUBIS ES GEHT och mensch warum nicht gleich =) einer versteh mich :D |
Re: problem bei schleife
Hi Nicodius,
wir wollen uns ja auch nicht streiten .... Ich sage dir mal, was mich stört: Zitat:
Zitat:
In den ersten Postings war von "Rw: !-34+67-! " die Rede, jetzt ist es "RW: 34+67+89+45". Die unterschiedliche Menge der Zahlen ist okay, da es unterschiedlich viele sein können, wie du geschrieben hast. Aber auf einmal sind keine Bindestriche und Ausrufezeichen mehr drin. Mal Hüh, mal Hott. Verstehst du, was ich meine? Würdest du deine Frage mal unfallfrei zu Papier bekommen, wäre vielleicht schon lange jemand da gewesen, der dir den Code mundgerecht serviert hätte. Zitat:
Du hast hier 450 Postings. Das deutet darauf hin, dass du nicht nur mal eben deine Hausaufgaben von anderen gemacht haben möchtest, sondern dass dich Delphi wirklich interessiert (wäre es anders, hättest du von mir in diesem Thread kein einziges Postings gelesen). Darum verstehe ich aber nicht, wieso du bei solchen Stringbearbeitungs-Grundlagen quasi verzweifelst. Zitat:
So, wenn du es so möchtest - letzte Frage: Ist dein Problem mit dem Hinweis von Anubis tatsächlich erledigt??? |
Re: problem bei schleife
probier noch mal meins, nur statt +str -str...
ich hab mir nämlich selbst wiedersprochen :-D Zitat:
trotzdem war mein anstz glaub ich richtig... also
Code:
for e := 0 to Pos('+', Text.Lines.Strings[i])-str do
|
Re: problem bei schleife
ja ich probiers danke ;)
@ IngoD7 : ok ja wir wollen uns nicht streiten :cheers: --> natürlich interessiert mich delphi ;) sonst wär ich auch nicht in dem FOrum :D --> Ich hab nur das copy nicht verwendet weil ich mit dem nicht zurecht komme(kann das copy(mein Gehirn kann nicht) logisch übersetzen --> kommen IMMER Fehelr bei mir) naja . abgesehen davon: mit dem copy erreichst du beim ersten anlauf meist nie was (ich zumindest) .. ok add: Zitat:
so: wegen dem Plötzlichen "Rw: " ohne "!-" das liegt daran das es unsinnig ist wenn mans leichter auch haben kann :mrgreen: jetzt hab ich als anfang genommen(mithilfe des codes von ANUBIS´) " und als ende ein Rufzeichen... das geht jetzt eh hoffe du verstehst jetzt meinen plötzlichen Lösungs-Wandel :D ciao Nicodius //edit das mit dem augen geöffnet war sarkastisch :) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:25 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-2025 by Thomas Breitkreuz