Function DelSpace(s:string):string; Var i: word; Begin i := 1; While i <= length(s)-1 do Begin While (s[i]=\' \') and (length(s)>=i+1) and (s[i+1]=\' \') do delete(s,i+1,1); inc(i); end; Result := s; end;
Kaldes: test := \'ab c d e f\'; edit1.text := delspace(test);
// Fjerner alle forekomster af DelCh Function DeleteChar(Const Str:String;DelCh:Char):String; Var Idx:Integer; begin Result:=\'\'; for Idx:=1 to Length(Str) do if Str[Idx]<>DelCh then Result:=Result+Str[Idx]; end;
Kaldes: Test:=\' 12 3 4 5\'; Test:=DeleteChar(Test); // Test er nu lig \'12345\'
Som jeg læser det har han lavet en som kun kan fjerne dbl mellemrum og det er tilsyneladende Øv, øv. Derfor gætter jeg på at der også skal fjernes enkelte mellemrum.
Men uanset hvad, så er det så heldigt at den korte version kan opgraderes til ver 1.1 (kan tage dbl mellemrum) ved at indsætte ekstra space som vist neden under, det kræver kun et par tryk på mellemrumstast
function RemoveSpace(S:string) : string; begin while Pos(\' \', S) > 0 do // <-- 2*MELLEMRUM MELLEM \' \' delete(s,Pos(\' \', S),1); // <-- 2*MELLEMRUM MELLEM \' \' RemoveSpace:=S; end;
Sådan har jeg også læst opgaven. morten s\'s måde er simpel, men jeg kan ikke forstå at du kalder den rekursivt: While sætningen ændrer alle forekomster af \' \' (dobbelt) til \' \' (enkelt), og den gentager sig selv indtil der kun er enkelt \' \' tilbage. Jeg synes faktisk at den er ret smart! //hreiff
Den store forskel på min algoritme og mortens er at jeg ikke fjerner et bestemt antal mellemrum hver gang. JEg finder ud af hvormange der er også fjerner dem.
Principielt burde borrisholts funktion være hurtigere, da strengen kun løbes igennem 1 gang, men man skal jo ikke kimse af standardfunktionerne da de som regel er kodet ret godt.
Jeg havde simpelthen glemt ALT om dette emne.. Sorry! Borrisholdt får pointne, fordi det var hans svar der var først, og det virkede... Sorry igen til alle!
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.