Entwickler-Ecke

Sonstiges (Delphi) - wiedermal probs mit codierung


muetzenjoe - Fr 11.05.07 21:06
Titel: wiedermal probs mit codierung
erstmal hi@all...

also ich habe ein problem beim codieren oder besser gesagt beim speichern davon.

die codier funktion benutze ich in vielen tools von mir aber nun hängt es und ich weiß nicht wieso! (normaler weise liegt die funktion in einer dll aber diesmal nicht!)

hier die funktion:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
function codierer(s:PChar): PChar;
var i:integer;
begin
  for i := 1 to length(s) do
    if not (s[i] in ['''','"','s','v']) then
     s[i] := char(byte(s[i]) xor 81); 
end;


und hier der code der probleme macht:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
procedure TForm4.Button1Click(Sender: TObject);
begin
  ini_i:=0;
  ini_i:=INISectionsCount(extractfilepath(application.exename)+'score.ini');
  inc(ini_i);
  try
    Ini:=TIniFile.Create(extractfilepath(application.exename)+'score.ini');
    Ini.WriteString(inttostr(ini_i),codierer(pchar('Name')),codierer(pchar(edit1.text)));
    Ini.WriteString(inttostr(ini_i),codierer(pchar('Wert')),codierer(pchar(memo1.text)));
  finally
    Ini.Free;
  end;
  showmessage('gespeichert!');
  edit1.Clear;
  memo1.Clear;
  form4.Close;
end;

das prog stürtz ab und zeigt auf die codierung. wieso? eigentlich funzt es so immer also kann es doch eigentlich nur ein denk fehler sein.

p.s.:
fehlermeldung:
[Warning] Unit4.pas(38): Return value of function 'codierer' might be undefined


Sinspin - Sa 12.05.07 00:55

das macht so den eindruck als steckt der fehler in der warnung.
irgendwie kann ich nicht finden wo du das ergebnis zurückgibst.


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
function codierer(s:PChar): PChar;
var i:integer;
begin
  for i := 1 to length(s) do
    if not (s[i] in ['''','"','s','v']) then
     s[i] := char(byte(s[i]) xor 81); 
  result := s; // könnte das die lösung sein?
end;