Thema: Delphi copy spinnt?

Einzelnen Beitrag anzeigen

Tarry

Registriert seit: 6. Nov 2007
123 Beiträge
 
#1

copy spinnt?

  Alt 2. Dez 2007, 11:24
Hi,
ich hab nen großes Problem, ich glaube copy spinnt^^

Hier mal mein Code:
Code:
function istSerial(Serial: String): Boolean;
var i, temp2, zaehlerStelle, zaehlerRichtige, lStrich: Integer;
    temp: String;
begin
zaehlerStelle := 0;
zaehlerRichtige := 0;
lStrich := 0;
For i := 1 to 13
do begin
    if Serial[i] = '-'
    then begin
          temp := '';
          temp := copy(Serial, lStrich+1, i-1);
          lStrich := i;
          zaehlerStelle := ZaehlerStelle + 1;
          case zaehlerStelle of
          1: if IstGanzeZahl(StrToInt(temp)/8) then zaehlerRichtige := zaehlerRichtige + 1;
          2: if IstGanzeZahl(StrToInt(temp)/9) then zaehlerRichtige := zaehlerRichtige + 1;
          3: if IstGanzeZahl(StrToInt(temp)/25) then zaehlerRichtige := zaehlerRichtige + 1;
          4: if IstGanzeZahl(StrToInt(temp)/82) then zaehlerRichtige := zaehlerRichtige + 1;
          5: if IstGanzeZahl(StrToInt(temp)/23) then zaehlerRichtige := zaehlerRichtige + 1;
          6: if IstGanzeZahl(StrToInt(temp)/1) then zaehlerRichtige := zaehlerRichtige + 1;
          7: if IstGanzeZahl(StrToInt(temp)/8) then zaehlerRichtige := zaehlerRichtige + 1;
          8: if IstGanzeZahl(StrToInt(temp)/8) then zaehlerRichtige := zaehlerRichtige + 1;
          9: if IstGanzeZahl(StrToInt(temp)/7) then zaehlerRichtige := zaehlerRichtige + 1;
          10: if IstGanzeZahl(StrToInt(temp)/6) then zaehlerRichtige := zaehlerRichtige + 1;
          11: if IstGanzeZahl(StrToInt(temp)/3) then zaehlerRichtige := zaehlerRichtige + 1;
          12: if IstGanzeZahl(StrToInt(temp)/7) then zaehlerRichtige := zaehlerRichtige + 1;
          13: if IstGanzeZahl(StrToInt(temp)/8) then zaehlerRichtige := zaehlerRichtige + 1;
          end;
         end;
   end;
if zaehlerRichtige = 13
then result := true
else result := false;
end;
Das Problem ist diese Zeile "temp := copy(Serial, lStrich+1, i-1)"
Wenn i = 5 ist und lStrich = 3 dann soll er nur das 4. Zeichen kopiere, kopiert aber vom 4 oder auch drittem bis zum 6 (i+1) woran kann das liegen? ich habe schon alles versucht, zweite variable, sogar ne Funktion alla :
Code:
 function minuseins(var k: Integer):integer;
Bitte helft mir ich komme nicht weiter..

Gruß
Tarry

PS: Die Funktion soll testen ob der eingegeben String ne, von mir erstellte Serial ist...
Beispiel Serial (Die Zahlen hab ich geändert, dadurch geht's nur um die Syntax): "2-65-3-18-69-51-42-11-36-117-36-72-25"
"Es gibt zwei Dinge, die unendlich sind. Das Universum und die menschliche Dummheit. Beim Universum bin ich mir noch nicht ganz sicher." -Albert Einstein

Probiere doch mal mein Wecker aus
--> http://tarry91.quotaless.com/index.html
  Mit Zitat antworten Zitat