Autor Beitrag
Levsen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 16



BeitragVerfasst: Sa 04.10.08 07:24 
Hallo ich habe einen Base64 Encoder und Decoder gemacht baer das Decoden geht nicht :(

Wen ich Gecoden will kommt das
Zitat:
Der Index war außerhalb des Arraybereichs.


Hier mal der Code Schnippsel und in Zeile 10 ist der Fehler
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
    public Base64Decoder(char[] input)
    {
      int temp=0;
      source=input;
      length=input.Length;

      //find how many padding are there
      for (int x=0;x<2;x++)
      {
        if(input[length-x-1]=='=')//Bei der Zeile liegt der Fehler
          temp++;
      }
      paddingCount=temp;
      //calculate the blockCount;
      //assuming all whitespace and carriage returns/newline were removed.
      blockCount=length/4;
      length2=blockCount*3;
    }


Kann jemand helfen ?
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Sa 04.10.08 09:35 
Wenn der Fehler auftritt, sollte dir der Debugger doch die Inhalte aller Variablen zu diesem Zeitpunkt anzeigen und du damit selbst den Fehler in deinem Algorithmus finden können. Bis jetzt sieht es leider eher so aus, als ob du dir beim Debugging so viel Mühe gegeben hast wie bei der Rechtschreibung deines Postings :| .

_________________
>λ=
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: Sa 04.10.08 10:33 
user profile iconKha hat folgendes geschrieben Zum zitierten Posting springen:
... so viel Mühe gegeben hast wie bei der Rechtschreibung deines Postings :| .

Nun ja, ich habe schon Beiträge mit schlimmeren Schreibweisen gelesen. Aber dass Debugging oft schneller helfen kann als jedes Forum, sehe ich genauso.

user profile iconLevsen hat folgendes geschrieben Zum zitierten Posting springen:
Wenn ich decoden will, kommt das: Rechtschreibung von JüTho korrigiert
Zitat:
Der Index war außerhalb des Arraybereichs.

Zusammen mit der Angabe der Zeile, in der der Fehler auftritt, kann man solch einen Fehler auch oft durch Nachdenken beseitigen: Offensichtlich wird der durch "length-x-1" berechnete Index kleiner als 0 oder größer als das Maximum. Das hängt also von lenght und von x ab. Welche Werte kann x annehmen? Aha, wegen der Schleife nur 0 und 1. Welche Werte kann length annehmen? Das hängt vom input ab. Dazu gibt es keine näheren Informationen; aber was passiert, wenn input nur 1 Byte umfasst? Boooiiing...

Auch eine solche Überlegung habe ich vermisst. Jürgen