Autor |
Beitrag |
Larus
      
Beiträge: 431
|
Verfasst: 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
      
Beiträge: 5284
Erhaltene Danke: 27
Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
|
Verfasst: Sa 21.05.05 17:38
ähm ja  code ?
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 ?
Weil !
Zuletzt bearbeitet von F34r0fTh3D4rk am Sa 21.05.05 17:40, insgesamt 2-mal bearbeitet
|
|
stifflersmom
      
Beiträge: 194
XP /XP PRO/ SuSE div.
D1 - D7, BDS 2006
|
Verfasst: Sa 21.05.05 17:39
Uups. meine Glaskugel hat irgendwie einen Defekt.
Worum geht es nur?
|
|
Larus 
      
Beiträge: 431
|
Verfasst: Sa 21.05.05 18:29
Länge des Textes mom ich schick die...
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>=1) And (Ord(Text[i])-64<=26) Then 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!
Delphi-Quelltext 1: 2: 3: 4: 5:
| for i:=1 to Length(key) do begin If ((Ord(key[i])-65) Mod 2) = 0 Then text:=caeser(Text, (Ord(key[i])-65), false); end; |
Der Glaskugelwitz ist alt!
|
|
AXMD
      
Beiträge: 4006
Erhaltene Danke: 7
Windows 10 64 bit
C# (Visual Studio 2019 Express)
|
Verfasst: 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 
|
|
Larus 
      
Beiträge: 431
|
Verfasst: 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
      
Beiträge: 4006
Erhaltene Danke: 7
Windows 10 64 bit
C# (Visual Studio 2019 Express)
|
Verfasst: 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
      
Beiträge: 195
D2k5 Pers
|
Verfasst: 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
      
Beiträge: 2889
Erhaltene Danke: 13
W2000, XP
D6E, BDS2006A, DevExpress
|
Verfasst: 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
      
Beiträge: 195
D2k5 Pers
|
Verfasst: 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 
      
Beiträge: 431
|
Verfasst: So 22.05.05 21:25
Titel: !
alzaimar 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 
      
Beiträge: 431
|
Verfasst: 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! 
|
|