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; end; |