Hallo,
Ich hoffe ich bin hier richtig.
Ich habe gerade eben folgenden Algo geschrieben:
Er soll immer die nächste Zeichenkette liefern.
z.b.:
nextchar('abc','a') = b
nextchar('abc','c') = aa
nextchar('abc','ab') = ac
usw...
Delphi-Quellcode:
function nextchar(const scharset,sword:string):string;
var
slastchar:string;
l,f:integer;
begin
l:=length(sword);
f:=length(scharset);
slastchar := sword[l];
if stringofchar(scharset[f],l) = sword then begin
result := stringofchar(scharset[1],l+1)
end
else begin
if slastchar = scharset[f] then begin
result := nextchar(scharset,copy(sword,1,l-1))+scharset[1]
end
else begin
slastchar := copy(scharset,pos(slastchar,scharset)+1,1);
result := copy(sword,1,l-1)+slastchar
end;
end;
end;
Er funktioniert soweit auch ganz gut, aber er ist mir zu langsam, wenn er oft wiederholt wird.
Bsp.:
Delphi-Quellcode:
var
s:string;
f:textfile;
begin
AssignFile(f, 'C:\test.txt');
ReWrite(f);
s:='a';
repeat
writeln(f,s);
s:=nextchar('abcdefghijklmnopqrstuvwxyz',s);
until s = 'zzzzz';
closefile(f);
Hat vll jemand ein paar Ideen, wie man ihn optimieren kann, damit er schneller läuft?
Gibt es vll einen schnelleren Ersatz für die "copy" oder "stringofchar" Funktion etc.?
Danke