Einzelnen Beitrag anzeigen

Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#8

Re: String-Bearbeitung! Ich finde den Fehler nicht!

  Alt 27. Aug 2006, 16:47
hmm...

Delphi-Quellcode:
function stripsingle(s: string; notifbefore,c,notifafter: char): string;
var i,si,sc: Integer; //index, stringindex, stripcount
begin
setlength(Result,length(s))
si := 1;

if (s[1] <> c) or (s[2] = notifafter) then
  begin
    Result[si] := s[1];
    Inc(si);
  end;

for i := 2 to length(s)-1 do
  if ((s[i] = c) and ((s[i+1] = notifafter) or (s[i-1] = notifbefore))) or (s[i] <> c)then
    begin
      Result[si] := s[i];
      Inc(si);
    end
  else
    Inc(sc);
  
if (s[length(s)] <> c) or (s[length(s)-1] = notifbefore) then
  begin
  Result[si] := s[length(s)];
  Inc(si);

setlength(Result,si); //hoffe das löscht den string nicht....
end;
warum ist meine Funktion so viel kürzer als deine? aufrufen mit

text := stripsingle(text,#13,#10,#0); Ach ja: performant ist die funktion keineswegs. man sollte lieber einen speicherbereich von der größe des ursprungsstrings belegen, dann die einzelnen chars zuweisen und zum schluss runterkürzen.

EDIT: habs nochmal angepasst...
EDIT: jetzt isses wahrscheinlich auch performant. werds aber mal testen.
EDIT: möp. funzt nicht. werds mal austesten....
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat