Kopiowanie danych do Tmemo

Kopiowanie danych do Tmemo
L5
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 12
0

Witam,
Mam następujący problem do rozwiązania kopiuje dane ze TMemo1 do TMemo2
W TMemo1 ma np:

Kopiuj
1532
1520
152’
1530
15*

Jak zapewnić aby do TMemo 2 skopiowane zostały dane które są tylko liczba tzn nie zawierają jakich innych znaków specjalnych

robertz68
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Zielona Góra
0

sposobów mnóstwo, np prosta funkcja:

Kopiuj
function TylkoCyfry(S: string): string;
var
  i: Byte;
begin
  i := 1;
  while i <= Length(S) do
    if S[i] in ['0'..'9'] then
      Inc(i)
    else
      Delete(S, i, 1);
  Result := S;
end;

zaleta taka, że łatwo możesz rozszerzyć znaki które chcesz skopiować

BH
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 6
0

Mniejsze juz sie nie da

Kopiuj
function JestemCyfra(const AString: string): Boolean;
begin
  Result := StrToIntDef(AString, 0 ) = StrToIntDef(AString, 1);
end;
CL
  • Rejestracja: dni
  • Ostatnio: dni
0

Ja to rozumiem tak:

Kopiuj
  for var i := 0 to memo1.Lines.Count - 1 do
    if TryStrToFloat(memo1.Lines[i], output) then
      Memo2.Lines.Add(memo1.Lines[i]);
flowCRANE
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Tuchów
  • Postów: 12269
0

Do sprawdzania czy da się przekonwertować ciąg znaków na liczbę całkowitą słyży funkcja TryStrToInt, która nie rzuca błędu, jeśli ciąg zawiera niedozwolone znaki. W tym przypadku minusem jest konieczność podania drugiego parametru, którego i tak nie będziemy wykorzystywać (no ale podać trzeba).

Kopiuj
var
  Line: String;
  Dummy: Integer;
begin
  Memo2.Clear();
  Memo2.Lines.BeginUpdate();
  try
    for Line in Memo1.Lines do
      if TryStrToInt(Line, Dummy) then
        Memo2.Lines.Add(Line);
  finally
    Memo2.Lines.EndUpdate();
  end;
end;
L5
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 12
0

Dzięki robrtz68 już dziala

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.