Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi problem bei schleife (https://www.delphipraxis.net/22307-problem-bei-schleife.html)

Nicodius 15. Mai 2004 21:46


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

atreju2oo0 15. Mai 2004 22:10

Re: problem bei schleife
 
Code:
 
for e := 1 to Pos('-!', Text.Lines.Strings[i]) do
        Befehl := Befehl + Text.Lines.Strings[i][Str+e];
Du musst bei 1 anfangen, weil sonst das "+" Zeichen mit übernommen wird, oder? :gruebel:

Nicodius 16. Mai 2004 04:59

Re: problem bei schleife
 
naja :? komischh aber das wars nicht es hängt nur immer das -! an :cry:

IngoD7 16. Mai 2004 10:08

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:
Text.Lines.Strings[i]
steht.

GLaforge 16. Mai 2004 14:27

Re: problem bei schleife
 
Hi,
kann dein Code nicht so ganz durchschauen aber vielleicht muss du unter
Delphi-Quellcode:
for-to-do
die jeweiligen Befehle in
Delphi-Quellcode:
begin ... end
setzen.

Nicodius 16. Mai 2004 17:41

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

glkgereon 16. Mai 2004 19:40

Re: problem bei schleife
 
Delphi-Quellcode:
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];
Ich weiss nit obbes dat ist, da ich nicht ganz durchblicke (schreib mal typ und funktion deiner variablen dazu :wink: )
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:
for e := 0 to Pos('+', Text.Lines.Strings[i]) do
das
Delphi-Quellcode:
for e := 0 to Pos('+', Text.Lines.Strings[i])+str do
hin, glaub ich

weil er zählt ja um str stellen zu weit...

kann ich jetzt nicht erklären, aber probiers mal aus...

IngoD7 16. Mai 2004 23:17

Re: problem bei schleife
 
Zitat:

Zitat von Nicodius
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-!

Was willst du bei dem Beispiel erreichen?
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:
//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 := '';
Aber geraten und geglaubt wurde hier jetzt schon genug!

Siehe meine Frage oben.

Und lese mal in der Online-Hilfe etwas nach über den Befehl Copy. Den kannst du wohl gut gebrauchen.

Nicodius 17. Mai 2004 14:26

Re: problem bei schleife
 
=) ich teste mal deinen Beitrag, glkbkk danke :)

Nicodius 17. Mai 2004 14:32

Re: problem bei schleife
 
geht leider nicht :cry:


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:57 Uhr.
Seite 1 von 2  1 2      

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