Autor Beitrag
Larus
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 431



BeitragVerfasst: Sa 21.05.05 17:37 
Ich habe eine externe Funktion, die einen Text bekommt und einen veränderten zurückliefert! verwende ich diese Funktion 3 mal hintereinander passiert nichts mit der Länge! lass ich aber die forschleife mit der Funktion laufen verdoppelt und verdreifacht sich der Text! Wieso? HILFE und vielen dank im voraus
F34r0fTh3D4rk
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 5284
Erhaltene Danke: 27

Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
BeitragVerfasst: Sa 21.05.05 17:38 
ähm ja :D code ? :shock:

Zitat:

Ich habe eine externe Funktion

zeig mal her (oder hast den source net ?)

Zitat:

passiert nichts mit der Länge

welche länge ?

Zitat:

lass ich aber die forschleife mit der Funktion laufen verdoppelt und verdreifacht sich der Text!

welche forschleife ?

Zitat:

Wieso?

Weil !


Zuletzt bearbeitet von F34r0fTh3D4rk am Sa 21.05.05 17:40, insgesamt 2-mal bearbeitet
stifflersmom
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 194

XP /XP PRO/ SuSE div.
D1 - D7, BDS 2006
BeitragVerfasst: Sa 21.05.05 17:39 
Uups. meine Glaskugel hat irgendwie einen Defekt. :?:
Worum geht es nur?
Larus Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 431



BeitragVerfasst: Sa 21.05.05 18:29 
Länge des Textes mom ich schick die...
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
function caeser(Text : String; Key : SmallInt; Entschluesseln : boolean):String;
  var
    i : integer;
  begin
    For i:=1 to Length(Text) do
      begin
        If (Ord(Text[i])-64>=1And (Ord(Text[i])-64<=26Then
          If Entschluesseln Then
            Result:=Result+(Chr((((Ord(Text[i])-65)+(26-Key))Mod 26) + 65))
          Else
            Result:=Result+(Chr((((Ord(Text[i])-65)+(Key))Mod 26) + 65))
        Else
          Result:=Result+Text[i];
      end;
  end;

und hier die forschleife!

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
        for i:=1 to Length(key) do
          begin
            If ((Ord(key[i])-65Mod 2) = 0 Then
              text:=caeser(Text, (Ord(key[i])-65), false);
          end;

Der Glaskugelwitz ist alt!
AXMD
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 4006
Erhaltene Danke: 7

Windows 10 64 bit
C# (Visual Studio 2019 Express)
BeitragVerfasst: Sa 21.05.05 18:37 
Deine Forschleife ist komplett sinnlos. Du verschlüsselst da ja wieder zeichenweise, obwohl die Caesar-Funktion sich ja schon darum kümmert, dass alles verschlüsselt wird...

AXMD

PS.:
Zitat:
Der Glaskugelwitz ist alt!
Aber hier äußerst passend :mrgreen:
Larus Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 431



BeitragVerfasst: Sa 21.05.05 19:25 
Die forschleife enthält noch weitere Elemente anderer verschlüsselungen nur da ich die ausgeklammert hatte zur fehlersuche fand ich heraus, dass es an Caesar und viginere liegt! Nun will ich wissen woran das liegt! Sinnlos ist die Schleife auf jeden Fall nicht nur hab ich die anderen Elemente die unwichtig sind net gepostet!
AXMD
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 4006
Erhaltene Danke: 7

Windows 10 64 bit
C# (Visual Studio 2019 Express)
BeitragVerfasst: Sa 21.05.05 19:31 
Was nicht schlecht wäre, wären Kommentare oder zumindest eine Erläuterung, was die ganzen doppelt und dreifach verschachtelten Klammern mit den Modulos und dem 'A' (#65) machen. Denn ich kenne Caesar, habe es aber um einiges einfacher in Erinnerung. Und wie wär's, wenn du auch Teile vom "unwichtigen" Code posten würdest, damit wir ausschließen können, dass der Fehler dort liegt

AXMD
crakos
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 195


D2k5 Pers
BeitragVerfasst: Sa 21.05.05 20:00 
check grad net so was nun sache ist, schick mal den vollständigen code und sag jetzt was er nicht macht, oder sagt, oder was nun los ist Oo

_________________
Das Ende der Menschheit ist der Anfang der Unendlichkeit.
alzaimar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2889
Erhaltene Danke: 13

W2000, XP
D6E, BDS2006A, DevExpress
BeitragVerfasst: So 22.05.05 17:36 
Wieso initialisierst Du eigentlich das 'Result'at deiner Funktion nicht? Ich denke, da gibt es die witzigsten Effekte, wenn man seine Variablen nicht initialisiert. Dazu gehören auch solche von Dir Beobachteten.
crakos
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 195


D2k5 Pers
BeitragVerfasst: So 22.05.05 18:28 
hä? result ist der wert, den die funktion zurück gibt Oo
ka ob man mit result rechnen kann ala result:=result+x; ich mache das immer mit varibalen und sage nur am ende result:=dievariable
aber müsstest du dann nicht sagen result:=''; am anfang, denn sonst ist result ja vielleicht irgendetwas (nur sone idee :))

_________________
Das Ende der Menschheit ist der Anfang der Unendlichkeit.
Larus Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 431



BeitragVerfasst: So 22.05.05 21:25 
Titel: !
user profile iconalzaimar hat folgendes geschrieben:
Wieso initialisierst Du eigentlich das 'Result'at deiner Funktion nicht? Ich denke, da gibt es die witzigsten Effekte, wenn man seine Variablen nicht initialisiert. Dazu gehören auch solche von Dir Beobachteten.


kk ich werd es mal versuchen! Nur wundert mich wieso das ausserhalb der For-schleife nicht passiert!

Türlich kann man mit Resukt rechnen. Aber sollte das Problem mit dem Tip von alzaimar nicht lösbar sein mach ich es auch mit extravariabeln!
Larus Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 431



BeitragVerfasst: So 22.05.05 22:35 
Problem gelöst! es war die sache mit Result:=''; Normalerweise hat er das nicht gemacht, aber die forschleife hat wohl immer zu schnell zuviele daten reingepumpt! :P