![]() |
Fehler beim Stringvergleich/Erkennt Objekt nicht
Hi,
wir hatten in der Schule ein paar simple Chiffrieralgorithmen geschrieben. Ich hab dann zu Hause mal die Vigenére codierung versucht: ![]() Ich habe das Quadrat in ein Stringgrid geschrieben. Wenn ich jetzt mit folgender Funktion den Text verschüsseln will,
Delphi-Quellcode:
zeigt er mir am Gleichheitszeichen : "Operator ist auf Operandentyp nicht anwendbar"
function stringcode (a,b:string):string;
var x,y,i:integer; stringbuffer:string; begin repeat a:=a+a; until length(a)>=length(b); for i:=1 to length(b) do begin while not a[i]=grid.cells[x,0] do x:=x+1; while not b[i]=grid.cells[0,y] do y=y+1; stringbuffer:=stringbuffer+grid.cells[x,y]; x:=0; y:=0; end; result:=stringbuffer; end; Wenn ich statt
Delphi-Quellcode:
es anders schreibe:
while not a[i]=grid.cells[x,0] do
Delphi-Quellcode:
Bekomme ich den Fehler "Undefinierter Bezeichner: 'grid'
while a[i]<>grid.cells[x,0] do
Ich hoffe ihr könnt mir helfen, danke. |
Re: Fehler beim Stringvergleich/Erkennt Objekt nicht
Hi,
der not-Operator bindet stärker als "=". Versuchs mal mit Klammern oder nimm gleich "<>"...
Delphi-Quellcode:
while not (a[i]=grid.cells[x,0]) do
|
Re: Fehler beim Stringvergleich/Erkennt Objekt nicht
Und woher weiß die Funktion was "grid" ist?
|
Re: Fehler beim Stringvergleich/Erkennt Objekt nicht
Mir is eben ne Erleuchtung gekommen und hab mir genau die selbe Frage gestellt wie Nuclear-Ping.
Habs jetzt umgeschrieben
Delphi-Quellcode:
Jetzt bekomm ich das Programm zum laufen aber sobald ich dann verusche was zu codieren hängt sich das Programm auf.
while a[i]<>Form1.grid.cells[x,0] do x:=x+1;
Danke für den Hinweis NormanNG. |
Re: Fehler beim Stringvergleich/Erkennt Objekt nicht
Zitat:
|
Re: Fehler beim Stringvergleich/Erkennt Objekt nicht
Ach verdammt das initialisieren hatte ich ganz vergessen. (Mein Lehrer der Nichtskönner ist zwar der festen Überzeugung, dass man sie nich initialisieren muss.
Genau das war der Fehler, danke! Ich verstehe nich ganz was du mit Fehler 2,4 meinst. Es wird der erste Buchstabe aus dem grid mit der stringvariable verglichen, wenns nich passt geht er einen Buchstaben weiter. Das heisst er MUSS zu einem Ergebnis kommen wenn nur die 26 Buchstaben des Alphabets und keine Sonderzeichen benutzt wurden; für den Fall muss ich dann noch ne Fehlermeldung einbauen das stimmt. Danke an alle die mir geholfen haben! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:02 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz