Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Problem mit EOutOfMemory (https://www.delphipraxis.net/88084-problem-mit-eoutofmemory.html)

r0nnY 9. Mär 2007 22:27


Problem mit EOutOfMemory
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi, ich arbeite gerade an einem Projekt, welches u.a. das Speichern und Laden beinhalten soll. Das besondere ist daran, das dabei ein passwort verschlüsselt wird. Nun hab ich das ganze einfach mal in ein Demo Programm gepackt (siehe Anhang) um euch um Rat zu beten, weil ich nicht weis was ich tun soll um den Fehler (EOutOfMemory) zu beseitigen.
Wenn mir einer von euch weiterhelfen könnte wäre ich sehr froh

MfG r0nnY

Luckie 9. Mär 2007 22:34

Re: Problem mit EOutOfMemory
 
Strings fangen bei Index 1 ein und hören bei Length auf:
Delphi-Quellcode:
function Crypt(Klar : String):String;
var S, K, G, I          : Integer;
    Ergebnis, schluessel : string;
begin

  SetLength(Schluessel,Length(Klar));
  SetLength(Ergebnis,Length(Klar));

  for I:=1 to Length(Klar) do begin
    Schluessel[i]:=Chr(Random(26)+97);
  end;

  for I:=1 to Length(Klar) do begin
    K:=Ord(Klar[I]);
    S:=Ord(Schluessel[I])-97;
    G:=K+S;
    if G>122 then
      G:=G-26;
    Ergebnis[I]:=Chr(G-32);
  end;
  key1:=schluessel;
  Result:=Ergebnis;

end;

Desweiteren solltest du dem Programm noch sagen, wo in welchem Verzeichnis es die Ini-Datei abspeichern soll.

r0nnY 10. Mär 2007 06:44

Re: Problem mit EOutOfMemory
 
Danke für den Hinweis.
Wenn ich die Ini im Verzeichnis des Programms speichern will, dann reicht das doch auch so wie ich es hab oder?

xaromz 10. Mär 2007 08:40

Re: Problem mit EOutOfMemory
 
Hallo,
Zitat:

Zitat von r0nnY
Wenn ich die Ini im Verzeichnis des Programms speichern will, dann reicht das doch auch so wie ich es hab oder?

Prinzipiell ja. Beachte aber, dass das kein von Microsoft gewünschtes Verhalten ist, und unter Vista nicht mehr geht (jedenfalls landet die INI-Datei an einer anderen Stelle). Zum Speichern von Einstellungen gibt es schon seit über zehn Jahren ein spezielles Verzeichnis. Ich verweise mal auf Luckies Artikel.

Gruß
xaromz

Luckie 10. Mär 2007 10:00

Re: Problem mit EOutOfMemory
 
Zitat:

Zitat von r0nnY
Wenn ich die Ini im Verzeichnis des Programms speichern will, dann reicht das doch auch so wie ich es hab oder?

Nein. Gibst du kein Verzeichnis an. speicher Windows die Datei im aktuellen Verzeichnis und das muss nicht das Anwendungsverzeichnis sein.

himitsu 10. Mär 2007 17:07

Re: Problem mit EOutOfMemory
 
EOutOfMemory kommt, wenn versucht wird mehr Speicher zu reservieren/bestellen, also in einem zusammenhängendem Block noch frei ist.

Also entweder ist dein Speicher (virtueller Speicher der Anwendung) einfach zu voll, oder du versuchst einfach irgendwo einen zugroßen Block zu reservieren.


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:48 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