Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Probleme mit den Items von der ComboBox zu verschlüsseln?
bruce185 - Sa 14.07.07 16:10
Titel: Probleme mit den Items von der ComboBox zu verschlüsseln?
Guten Tag,
ich möchte gerne die Einträge die in der ComboBox1 sind, verschlüsseln und anschließend abspeichern.
Ich habe das mal so probiert:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| procedure TForm1.Button1Click(Sender: TObject); var str: TStringList; i: integer; begin str := TstringList.Create;
str.Text:=ComboBox1.Items.GetText; for i:=1 to length(str.GetText) do str[i]:=char(23 Xor Ord(str[i]));
str.SaveToFile('Einstellungen.dat');
str.Free; end; |
an dieser stelle str[i] erhalte ich fehlermeldung, anscheinend weil ich mit TStringList arbeite.
Wie könnte ich diesen Code umschreiben, damit er richtig funktioniert?
MfG
Heiko - Sa 14.07.07 17:02
Wenn ich mich geradr richtig erinnere fangen Stringlisten bei 0 an und nicht bei 1. Also einfach str[i-1] ;)
bruce185 - Sa 14.07.07 17:07
Danke Dir.
Das problerm ist, das str[i] oder str[i-1] vom Compiler nicht akzeptiert wird, also ich kann mein programm garnicht Compilieren, weil dort was fehlt, z.B. str.Count[i], aber so geht das auch nicht.
Woran kann das liegen?
Edit: Sry, an dieser stelle Ord(str[i]) ist der fehler.
Wisst ihr vieleicht, was dort fehlt?
MfG
Heiko - Sa 14.07.07 17:16
Dein Problem war (wie ich gerade erst richtig sehe [vorhin nur überfloegn ;) ]): Du greifst auf die Elemente (Lines) zu und nicht auf den Text.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| procedure TForm1.Button1Click(Sender: TObject); var str: TStringList; i: integer; begin str := TstringList.Create;
str.Text:=ComboBox1.Items.Text; for i:=1 to length(str.Text) do str.Text[i]:=char(23 Xor Ord(str.Text[i]));
str.SaveToFile('Einstellungen.dat');
str.Free; end; |
bruce185 - Sa 14.07.07 17:28
Das geht auch nicht.
Folgende fehlermeldung an stelle char:
Delphi-Quelltext
1: 2:
| [Fehler] Unit1.pas(36): Der linken Seite kann nichts zugewiesen werden [Fataler Fehler] Project2.dpr(5): Verwendete Unit 'Unit1.pas' kann nicht compiliert werden |
Nochmal zu meinem problem, ich möchte die Items speichern und nicht den Text von der ComboBox, weil somit nur der Text verschlüsselt wird.
Ich weiss leider nicht, wie das geht.
MfG
Heiko - Sa 14.07.07 17:31
Du meinst jetzt die Eigenschaften von jedem Item, die jedes Item besitzt?
//EDIT: Das würde dir aber nix bringen, denn bei ComboBox=>StringList gehen die extra gesetzten Eigenschaften verloren. Was müsste denn mitgespeichert werden?
bruce185 - Sa 14.07.07 20:19
Also, bei nächstem Starten des Programms werde ich ja das von der gespeicherten Datei wieder auslesen und dann entschlüsseln und wieder anzeigen in der ComboBox.
Aber es kommt immer fehlermeldung, wenn ich das was dann im TStringList gespeichert wurde, verschlüsseln möchte und das verschlüsselte abspeichern.
Heiko - Sa 14.07.07 20:24
Also reicht der Text doch...
Um die Items brauchst du dich nicht kümmern, das macht Delphi von alleine (Zeilenumbruch = nächstes Item) ;).
Folgendes Funktioniert:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| procedure TForm1.FormCreate(Sender: TObject); var i: integer; Text: String; begin ComboBox1.Items.Text:='blubb'#1310'blubb2'; Text:=ComboBox1.Items.Text; for i:=1 to length(Text) do Text[i]:=char(23 Xor Ord(Text[i])); ShowMessage(Text);
end; |
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!