06. oktober 2008 - 15:27Der er
12 kommentarer og 1 løsning
StringReplace - fjerne mellemrum
Kan man anvende StringReplace til at fjerne alle mellemrum på nær et i en streng? Hvis jeg har en streng som f.eks. 1111 3 4 5 skal den blive til 1111 3 4 5
Den moderne arbejdsplads er i stigende grad afhængig af mødelokaler til at fremme samarbejde, men dette skift medfører også stigende sikkerhedsudfordringer.
Tja. Hvis du erstatter to mellemrum med et mellemrum og bliver ved med at kalde den indtil der ikke findes nogen, saa vil du opnaa det oenskede. Det er dog ikke specielt effektivt.
vallemanden> hvis du ser på min tekst så vil du se at det jeg vil opnå er at fjerne alle mellemrum ud over 1 mellem hver parameter 1111...3.4..5 til 1111.3.4.5 (prikker for at vise mellemrum)
Det er parametre til et fjernestyringssystem og det sker at brugerne taster ekstra mellemrum ind i deres SMS besked og så har jeg balladen.
Hvis hastighed er vigtig så skal man undgå både StringReplace og Delete.
Noget a la:
function strip5(s : string) : string;
var tmp : string; i, ix : integer;
begin tmp := s; ix := 1; for i := 1 to length(s) do begin if (s[i] <> ' ') or ((i > 1) and (s[i-1] <> ' ')) then begin tmp[ix] := s[i]; inc(ix); end; end; result := copy(tmp, 1, ix); end;
Der er et eller andet galt her - jeg har sendt en kommentar og bedt arne_v om et svar da jeg endte med at bruge hans eksempel som udgangspunkt for min løsning, men den er da forsvundet igen.
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.