Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Repeatschleife macht Ärger.... (https://www.delphipraxis.net/159199-repeatschleife-macht-aerger.html)

schokoschnecke 17. Mär 2011 20:42

Repeatschleife macht Ärger....
 
Hallo,
Ich arbeite für die Schule an einem Steganographieprogramm. Zuerst ging es darum, jeweils das letzte Bit des Farbcodes zu verändern. Nun habe ich zur Übung versucht, auch das vorletzte zu verändern. Allerdings funktioniert das nicht. Ich habe mit Showmessages überprüft, wie weit es geht, und bei dieser Schleife bleibt er hängen. Er zeigt dann an 'Index was outside the bounds of the array'. Dieselbe Schleife hat für das erste Programm aber funktioniert. Ich versteht nicht, warum es auf einmal nicht mehr geht. Versteht das jemand?

Delphi-Quellcode:
 repeat
   begin                    
   inc(stelle2);

    if strtoint(bincode[stelle2]) = 1 then

    zahl := zahl + (power(2,(hochzahl - stelle2)));
    end;
   until stelle2 = 8;
Zahl ist vom Typ real; stelle2 und hochzahl sind vom Typ integer, bincode ist ein string.

daywalker9 17. Mär 2011 21:33

AW: Repeatschleife macht Ärger....
 
Wie genau hast du
Delphi-Quellcode:
bincode
deklariert?

Uwe Raabe 17. Mär 2011 21:42

AW: Repeatschleife macht Ärger....
 
...und welchen Wert hat stelle2 vor dem repeat?

hoika 18. Mär 2011 06:57

AW: Repeatschleife macht Ärger....
 
Hallo,

hast du beim Compilieren irgendwelche Warnungen ?


Heiko

WM_CLOSE 18. Mär 2011 07:25

AW: Repeatschleife macht Ärger....
 
Warum so kompliziert?
Delphi-Quellcode:
var
  c:Cardinal;
  s:String;
  i:Integer;
begin
  s:='10100111';
  c:=0;
  for i:=1 to Length(s) do
  begin
    if s[i]='1' then
      c := c or (1 shl (Length(s)-i));
  end;
  showmessage(IntToStr(c));
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:52 Uhr.

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