Autor Beitrag
delphisual
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 89

WIN 2000
D5 Prof
BeitragVerfasst: So 07.12.03 00:43 
Hallo zusammen, und danke für eventuelle Hilfe!!!

Meine Procedure sollte für jeden Array-Ellement nur 1-mal ?-? oder ?+?
zulassen, doch meine Abfrage
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
 if (S[i+1]<>'+'OR (S[i+1]<>'-'then
    begin
    .
    .
    end;

die dass verhindern soll lässt die Zeichen trotzdem durch bloß warum? hat jemand eine Idee was ich falsch mache?

ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
procedure auslesen(S:String);
var laenge,i,Array_laenge: integer;
    myS: String;
    myArray: Array of string;
begin

laenge:=Length(Form1.Edit1.Text);
Array_laenge:=0;
for i:=0 to laenge-1 do
 begin
    if (S[i+1]='-'then
    begin
    myS:='-';
    Array_laenge:=Array_laenge+1;
    SetLength(myArray,Array_laenge);
    myArray[Array_laenge-1]:=myS;
    end;

    if (S[i+1]='+'then
    begin
    myS:='+';
    Array_laenge:=Array_laenge+1;
    SetLength(myArray,Array_laenge);
    myArray[Array_laenge-1]:=myS;
    end;

    //********** Hier liegt mein Feller, aber warum???
    if (S[i+1]<>'+'OR (S[i+1]<>'-'then
    begin
    myS:=S[i+1]; // Variable myS bekommt auch '+' oder '-' zugewiesen,
    ShowMessage(myS);  //obwohl ich das mit Abfrage verhindert haben sollte ;(
    myArray[Array_laenge-1]:=Concat(myArray[Array_laenge-1],myS);
    end;
 end;

danke schön!!!

Moderiert von user profile iconUGrohne: Code- durch Delphi-Tags ersetzt

_________________
(Wer ein Problem definiert, hat es schon halb gelöst.)
delphisual Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 89

WIN 2000
D5 Prof
BeitragVerfasst: So 07.12.03 11:10 
HI All,
mein Operator ist falsch gewesen:
ausblenden Quelltext
1:
2:
    if (S[i+1]<>'+') AND (S[i+1]<>'-') then 
    begin


cya All

_________________
(Wer ein Problem definiert, hat es schon halb gelöst.)
Phantom1
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 390



BeitragVerfasst: So 07.12.03 11:17 
delphisual hat folgendes geschrieben:
HI All,
mein Operator ist falsch gewesen:
ausblenden Quelltext
1:
2:
    if (S[i+1]<>'+') AND (S[i+1]<>'-') then 
    begin


cya All


ja genau, oder du machst es dir etwas einfacher zb.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
procedure auslesen(S:String);
var
  myArray: Array of string;
  i: integer;
begin
  for i:=1 to Length(S) do
    if S[i] in ['-''+'then
    begin
      SetLength(myArray,Length(myArray)+1);
      myArray[High(myArray)]:=S[i];
    end else
      myArray[High(myArray)]:=myArray[High(myArray)]+S[i];
end;
delphisual Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 89

WIN 2000
D5 Prof
BeitragVerfasst: So 07.12.03 14:50 
Hi Phantom,
danke für dein posting ich habe zwar mein Code um einiges reduziert deine Variante ist aber noch eleganter!
Einfach super. :!:

Mit freundlichen Grüßen
delphisual

_________________
(Wer ein Problem definiert, hat es schon halb gelöst.)