synmemo i usuwanie znakow

0

Potrzebuje procedury na usuwanie wszystkich :

  • liczb
  • liter
  • znaków interpunkcji
  • i tak dalej

...z zawartości synmemo o nazwie "NOTA".

Jak na razie zrobiłem takie coś dla "liczb":

Var
Tekst:string;
begin

BEGIN
tekst:=nota.Text;
while Pos('0', tekst) > 0 do Delete(tekst, Pos('0', tekst), 1);
while Pos('1', tekst) > 0 do Delete(tekst, Pos('1', tekst), 1);
while Pos('2', tekst) > 0 do Delete(tekst, Pos('2', tekst), 1);
while Pos('3', tekst) > 0 do Delete(tekst, Pos('3', tekst), 1);
while Pos('4', tekst) > 0 do Delete(tekst, Pos('4', tekst), 1);
while Pos('5', tekst) > 0 do Delete(tekst, Pos('5', tekst), 1);
while Pos('6', tekst) > 0 do Delete(tekst, Pos('6', tekst), 1);
while Pos('7', tekst) > 0 do Delete(tekst, Pos('7', tekst), 1);
while Pos('8', tekst) > 0 do Delete(tekst, Pos('8', tekst), 1);
while Pos('9', tekst) > 0 do Delete(tekst, Pos('9', tekst), 1);
nota.Text:=tekst;
END;

<font color="red">[b][Moderator przypomina o istnieniu tagu delphi][/b]</span>

To oczywiście działa, ale jak mam robić analogicznie dla liter to trochę daje tego kodu... Czy nie ma jakiegoś prostrzego sposobu?

0

const
Cyfry: set of Char = ['0'..'9'];
var
c: Char;
i: Integer;
begin
for c:=#0 to #255 do if c in Cyfry then
for i:=Length(tekst) downto 1 do
if tekst[i] = c then Delete(tekst, i, 1)
end;

Odradzam korzystanie z Pos.

0

Vogel, wydaje mi sie że prościej będzie StringReplace'm

0

Ja jednak popieram moją wersję: na 99% jest szybsza.

0

nio stringreplace jest dosc wolny...

0

No dobra - to niezły pomysł... ale co jeśli chce takie coś zrobić dla liter - jednocześnie dużych i małych. W tablicy ASCII między dużymi i małymi literami - nie można tej przerwy jakoś obciąć ? Bo na razie to moge tylko usuwać małe i duże litery osobno - a ja chce wszystkie te i te.

0

['A'..'Z', 'a'..'z'] - człowieku, to są podstawy!!

0

<font color="green">człowieku, to są podstawy</span>

Akurat nie znałem takiej deklaracji: czy muszę wiedzieć wszystko? :)

0

czy muszę wiedzieć wszystko? :)

Wystarczy, że znasz podstawy :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1