Delphi-PRAXiS
Seite 4 von 7   « Erste     234 56     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Fehlersuche (https://www.delphipraxis.net/132179-fehlersuche.html)

DeddyH 7. Apr 2009 17:37

Re: Fehlersuche
 
Zitat:

ich versteh das Programm einfach nicht ....
Da haben wir etwas gemeinsam mit dem Unterschied, dass Du es ja selbst geschrieben hast :mrgreen:. Könntest Du evtl. mal nachvollziehbar einrücken, dann ist das besser zu lesen. Und y muss in der Schleife geändert werden, damit die Abbruchbedingung irgendwann eintreffen kann.

gangs-taas 7. Apr 2009 17:48

Re: Fehlersuche
 
Delphi-Quellcode:
String2 := Copy(Edit2.Text,1, Length(Edit2.Text));
y:= StrToInt(Copy(Edit1.Text,1,1));
Schalter := 0;
x := 1 ;
// String stückeln//
Memo1.Text := '';
repeat
      begin
      sTemp1:= Copy(String2, 1, y);
           case StrToInt(sTemp1) of
           1234 : Memo1.Text := Pchar(Memo1.Text + 'a');
           5678 : Memo1.Text := Pchar(Memo1.Text + 'b');
           end;
       String2 := Copy(Edit2.Text,(y+1), Length(Edit2.Text));  // String jetzt nur noch von 'einer Zahl nach y' bis zum ende'
       y := y+y   ; // Wenn ich diese Zeile entferne (habe gemerkt dass sie sinnlos ist) hängt sich das Programm auf
       If (y >= (Length(Edit2.Text))) Then
       Schalter := 1  ;
       End;
until (schalter = 1) ;

so besser ?
wo muss ich das y entfernen ? ich will ja nur machen, das y nicht mehr y+y ist (da unten ...)
aber wenn ich das lösch hängt sichm ien programm auf

DeddyH 7. Apr 2009 17:59

Re: Fehlersuche
 
Delphi-Quellcode:
String2 := Copy(Edit2.Text,1, Length(Edit2.Text)); //was soll denn das hier?
y:= StrToInt(Copy(Edit1.Text,1,1)); //wie bereits erwähnt: Edit1.Text[1] hat denselben Effekt
Schalter := 0;
x := 1 ; //x wird anschließend nie benutzt
// String stückeln//
Memo1.Text := '';
repeat
      begin
      sTemp1:= Copy(String2, 1, y); //im ersten Durchlauf also "1", dann "12" usw.
           case StrToInt(sTemp1) of
           1234 : Memo1.Text := Pchar(Memo1.Text + 'a'); //wieso der Cast nach PChar?
           5678 : Memo1.Text := Pchar(Memo1.Text + 'b');
           end;
       String2 := Copy(Edit2.Text,(y+1), Length(Edit2.Text));  // String jetzt nur noch von 'einer Zahl nach y' bis zum ende'
       //y := y+y   ; // Wenn ich diese Zeile entferne (habe gemerkt dass sie sinnlos ist) hängt sich das Programm auf
       inc(y); //vermutlich war das so gemeint
       If (y >= (Length(Edit2.Text))) Then
         Schalter := 1;
       End;
until (schalter = 1);

gangs-taas 7. Apr 2009 18:27

Re: Fehlersuche
 
Delphi-Quellcode:
String2 := Copy(Edit2.Text,1, Length(Edit2.Text)); //was soll denn das hier? Das brauch ich für nen Eintrag weiter unten und ich wusste nicht wohin ich das sonst schreiben soll
y:= StrToInt(Copy(Edit1.Text,1,1)); //wie bereits erwähnt: Edit1.Text[1] hat denselben Effekt
Schalter := 0;
x := 1 ; {x wird anschließend nie benutzt stimmt hatte ich vergessen löschen (hatte ich aus einer früheren 'version' des Programmes über )}
// String stückeln//
Memo1.Text := '';
repeat
      begin
      sTemp1:= Copy(String2, 1, y); //im ersten Durchlauf also "1", dann "12" usw.
           case StrToInt(sTemp1) of
           1234 : Memo1.Text := Pchar(Memo1.Text + 'a'); //wieso der Cast nach PChar? okay du hast recht das ist unnötig
           5678 : Memo1.Text := Pchar(Memo1.Text + 'b');
           end;
       String2 := Copy(Edit2.Text,(y+1), Length(Edit2.Text));  // String jetzt nur noch von 'einer Zahl nach y' bis zum ende'
       2(y); // ja meinte ich
       If (y >= (Length(Edit2.Text))) Then
         Schalter := 1;
       End;
until (schalter = 1);

DeddyH 7. Apr 2009 18:36

Re: Fehlersuche
 
Erklär doch einmal mit Worten, was der Code machen soll, dann kommen wir vielleicht eher zu einer Lösung.

gangs-taas 7. Apr 2009 18:47

Re: Fehlersuche
 
zu erst soll er die zahlen aus Edit2 einlesen.
dann soll er die ersten 'y' zahlen des Strings (also ehemals Edit2) 'abtrennen' und überprüfen zu welchem Buchstaben die gehören (also in meinem Code 'a' oder 'b')

anschließend soll er von dem übrig geblibenen String wieder die ersten 'y' zahlen abtrennen und das hier auch überprüfen.
das soll er so langem machen, bis alle zahlen überprüft sind.


die anzahl der abzutrennenden Buchstaben/Zahlen (also 'y') ist die erste Zahl in Edit1


aber egal was ich mache ich bekomme immer nur ne fehlermeldung oder nur einen Buchstaben hinterher raus ...

DeddyH 7. Apr 2009 18:52

Re: Fehlersuche
 
Aber nur das erste Zeichen des Edits muss eine Zahl sein, oder hab ich das falsch verstanden?

gangs-taas 7. Apr 2009 18:54

Re: Fehlersuche
 
hey,
nachdem ich Delphi neu gestartet hab funktioniert es jetzt so wie ich es will...
*komisch*

danke für eure bzw deine hilfe !

DeddyH 7. Apr 2009 19:01

Re: Fehlersuche
 
Das mag ich zwar kaum glauben und hatte deshalb schon mit dem Code angefangen, aber wenn es jetzt geht, ist ja gut :)

gangs-taas 7. Apr 2009 19:05

Re: Fehlersuche
 
ist echt so.

vielen dank ^^


sag mal hab schon wieder ne frage.

kan ich in case abfragen variablen bauen ?


also

case StrToInt(sTemp1) of
variable1 : (Memo1.Text + 'a')


geht das ?


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:39 Uhr.
Seite 4 von 7   « Erste     234 56     Letzte »    

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