Operacje na danych



W poprzednim rozdziale omówiliśmy konwersje danych. Teraz zajmiemy się operacjami, które możemy na nich wykonać. Zaczniemy od zwiększania i zmniejszania liczb. Możemy to zrobić na dwojaki sposób:

zwiększenie
x := 10;
x := x + 1 --> Inc(x)
zmniejszenie
x := 10;
x := x - 1 --> Dec(x)

Funkcje Inc i Dec posiadają jeszcze jedną właściwość, a mianowicie zakres. Jeżeli go nie podamy to x zmieni się o wartość 1 (jak w powyższym przykładzie):

x := 10;
Inc(x, 10)

Powyższy zapis da nam wynik x := 20. Często używaną funkcją jest funkcja Round, która zaokrągla liczbę zmiennoprzcinkową do liczby całkowitej, tzn. 123,4 na 123. Jeżeli chcesz mieć dostępną większą ilość operacji to do deklaracji "uses" musisz dopisać "math". Jest to moduł zawierający funkcje matematyczne. Poniżej lista częściej używanych:

Ceil - zaokrągla liczbę w górę
Floor - zaokrągla liczbę w dół
IntPower - podnosi liczbę do potęgi całkowitej
Power - podnosi liczbę do potęgi
DegToRad - zamienia stopnie na radiany
RadToDeg - zamienia radiany na stopnie

Teraz zajmiemy się łańcuchami tekstowymi. Przedstawię 3 funkcje, z których dość często korzystam. Pierwszą z nich jest funkcja Copy, która kopiuje wyznaczony kawałek tekstu, np:

var
  x, y : string;
begin
  x := 'Ala ma kota';
  y := Copy(x, 5, 2);
  Form1.Caption := y;
end;
Teraz zajmiemy się wytłumaczeniem zawartści Copy:
x - tekst z którego kopiujemy wycinek
5 - jest to miejsce znaku od którego będziemy kopiować (liczymy od 0)
2 - jest to ilość znaków które mają być skopiowane

W wyniku powyższej operacji tekst w zmiennej y przyjmie wartość 'ma', czyli mówiąc po ludzku skopiowaliśmy wyraz 'ma'. Czas zająć się kolejną funkcją, czyli Delete. Jak nie trudno się domyśleć służy ona do usuwania tekstu. Ma ona taką samą budowę jak Copy:

var 
  x : string;
begin
  x := 'Ala ma kota';
  Delete(x, 5, 3);
  Form1.Caption := y;
end;
x - tekst z którego usuwamy
5 - od którego miejsca kasujem
2 - ile znaków usuwamy

Powyższa procedurka da nam w wyniku tekst 'Ala kota', czyli usunęliśmy wyraz ' ma'. Teraz zajmiemy się ciekawą funkcją Pos, która służy do wyszukiwania tekstu w tekście :). Rozważmy taką procedurkę:

var
  x : integer;
  t : string;
begin
  t := 'txt';
  x := pos(t, Memo1.Text);
  Form1.Caption := IntToStr(x);
  Memo1.SelStart := x - 1;
  Memo1.SelLength := Length(t);
  Memo1.SetFocus;
end;
Wytłumaczenie:
t - szukany tekst
x - pozycja szukanego tekstu
pos - znalezienie pozycji szukanego tekstu w polu Memo
SelStart-1 - zaznaczenie od miejsca znalezienia -1
SelLength - długość zaznaczenia
Length(x) - długość szukanego tekstu
SetFocus - pokazanie zaznaczenia







...powrót