Avatar billede test42 Nybegynder
17. november 2002 - 15:22 Der er 4 kommentarer og
1 løsning

Replace alle tegn

Jeg har en streng, hvor jeg skal have udskiftet alle tegn, der ikke er i alfabetet med mellemrum...
Jeg har prøvet med StringReplace, men det bliver alt for uoverskueligt, hvis man skal gennemgå alle tegn...

Hvordan kan man gøre det smartest?
Avatar billede speedy Nybegynder
17. november 2002 - 16:02 #1
Hej,

Jeg har lige lavet denne funktion:

function Alfabetiser(theText: String): String;
const
  LegalChars = ['a'..'z', 'A'..'Z', 'æ', 'ø', 'å', 'Æ', 'Ø', 'Å'];
var
  i: integer;
begin
  for i := 1 to Length(theText) do
    if (theText[i] in LegalChars) then
      Result := Result + theText[i]
    else
      Result := Result + ' ';
end;


/SpEeDy
Avatar billede speedy Nybegynder
17. november 2002 - 16:04 #2
Du kan bare tilføje flere lovlige bogstaver hvis du f.eks. også vil tillade tal kan du bare ændre til:

  LegalChars = ['a'..'z', 'A'..'Z', 'æ', 'ø', 'å', 'Æ', 'Ø', 'Å', '1'..'9'];

/SpEeDy
Avatar billede speedy Nybegynder
17. november 2002 - 16:04 #3
ups
Avatar billede speedy Nybegynder
17. november 2002 - 16:04 #4
skulle selvfølgelig være

  LegalChars = ['a'..'z', 'A'..'Z', 'æ', 'ø', 'å', 'Æ', 'Ø', 'Å', '0'..'9'];
Avatar billede athlon-pascal Juniormester
19. november 2002 - 17:02 #5
En smart ting vil være at den automatisk finder ud af hvilke tegn der er i det alfabet der er tilknyttet computerens aktuelle tegnsæt. Prøv med:

function HesteAlfabetiser(HesteTekst: String): String;
var
  I: integer;
begin
  for I := 1 to Length(HesteTekst) do
    if AnsiLowerCase(HesteTekst[I]) <> AnsiUpperCase(HesteTekst) then
      Result := Result + HesteTekst[I]
    else
      Result := Result + ' ';
end;
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester