JPC W05

background image

Obsługa wierszy tekstu

Języki programowania - C++

Marzena Nowakowska

Wydział Zarządzania i Modelowania

Komputerowego

Politechnika Świętokrzyska

background image

Plan wykładu

Tablica znaków
Klasa AnsiString
Wybrane metody klasy AnsiString
Konwersja typów w klasie AnsiString
Operacje na obiektach klasy AnsiString
Komponent typu TMemo
Klasa TStrings i dostęp do tekstów w tej

klasie

background image

Tablica znaków

Deklarowanie tablicy znakowej:

char

identyfikator[liczba_elementów];

Przykład:

char tablica[30];

Inicjowanie tablicy znaków

:

char tekst0[15] = {'6', '7', '&', '8‘, '9', '0', '&', '^',
'%', '=', '|‘, 'a‘};
char tekst1[15] = "67&890&^% =|a";
char tekst2[] = "67&890&^% =|a";

tekst1 -> 6 7 & 8 9 0 & $ % = |

a \0 ?

?

tekst2 -> 6 7 & 8 9 0 & $ % =

|

a

\0

W BCB zamiast tablic znakowych używa się danych klasy AnsiString

background image

Klasa AnsiString

Konstruktory

:

AnsiString()

AnsiString napis1; AnsiString napis2=“to jest napis”;

AnsiString(const char* src)

char napis3[]=“A to inny napis”; // inicjowanie tablicy
AnsiString napis4(napis3);

AnsiString(const char* src, unsigned char len)

AnsiString napis5(napis3, 4); //

->“A to”

AnsiString(int src)

AnsiString napis6(10); //

-> “10”

AnsiString(double src)

AnsiString napis7(10.15); // -> “10.15”

background image

Wybrane metody klasy

AnsiString

double ToDouble()
int ToInt()
AnsiString LowerCase(), AnsiString UpperCase()
int AnsiCompare(const AnsiString& rhs)
char* AnsiLastChar()
void Insert(const AnsiString& str, int index)
bool IsEmpty()
AnsiString StringOfChar(char ch, int count)
AnsiString TrimLeft(), AnsiString TrimRight(),

AnsiString Trim()

int Length()
int AnsiPos(const AnsiString& subStr)
AnsiString SubString(int index, int count)

Uwaga: kolejne elementy tekstu w obiekcie AnsiString są numerowane od 1

background image

Konwersja typów w klasie

AnsiString

Podano uproszczone definicje prototypów
double ToDouble()
int ToInt()
char* c_str()
AnsiString FloatToStrF(long double value,

TStringFloatFormat format, int precision, int

digits);

wybrane stałe predefiniowane dla parametru

format: sffGeneral , sffFixed, sffCurrency

Przykłady:

double a; int i; char znaki[10];
AnsiString AA, II, ZNAKI;
AA=”123.094”; a=AA.ToDouble();
II=”123”; i=II.ToInt();
ZNAKI=”tekst”; strcpy(znaki, ZNAKI.c_str());
AA.FloatToStrF(22.55, sffFixed, 6,2);

background image

Przykłady wykorzystania

metod klasy AnsiString

Przeładowane operatory:

!=

,

= =

,

<

,

<=

,

>

,

>=

,

+

,

+=

AnsiString tekst, fragment_tekstu;
int nr_sep, dlugosc;
tekst=”Janko Muzykant; 55.5”;
nr_sep=tekst.AnsiPos(";");
dlugosc=tekst.Length()-nr_sep;
fragment_tekstu =
tekst.SubString(nr_sep+1,dlugosc);
fragment_tekstu = fragment_tekstu.Trim();

background image

Komponent typu

TMemo

• Użyteczne właściwości

Alignment

:

taLeftJustify, taRightJustify, taCenter

ScrollBars:ssNone, ssHorizontal, ssVertical, ssBoth
WordWrap

:

true, false

Lines

- obiekt typu

TStrings *

• Wybrane metody:

SetAlignment

,

SetScrollBars

,

SetWordWrap

,

SetFocus

TCustomEdi

t

TCustomMe

mo

TMemo

Obiekt klasy TMemo jest komponentem
wizualnym, który umożliwia wprowadzania lub
wyświetlania wielu wierszy tekstu. Dostęp do
zbioru wierszy odbywa się za pośrednictwem
właściwości Lines

background image

Klasa TStrings

TStrings jest klasa bazową dla obiektów, które

reprezentują kolekcję łańcuchów (tekstów). Klasa jest
zdefiniowana do zarządzania „listą łańcuchów” czyli
zbiorem wierszy tekstu.

Klasa wprowadza właściwości i metody aby: dodawać do

lub usuwać z określonego miejsca w tekście łańcuchy,
zmieniać położenie łańcuchów w tekście, mieć dostęp
do określonej pozycji łańcucha, dokonywać transmisji
łańcuchów do lub z pliku

nr_sep= Memo1->Lines->Strings[0].AnsiPos(";");

dlugosc= Memo1->Lines->Strings[0].Length()-nr_sep ;
ocena= Memo1->Lines-
>Strings[0].SubString(nr_sep+1,dlugosc);

background image

Klasa TStrings

• Wybrane właściwości:

int Capacity

wskazuje liczbę wierszy jaką może przechować obiekt TStrings.

int Count

informuje o liczbie wierszy zapisanych w obiekcie TStrings.

AnsiString Strings[int Index]

tablica identyfikująca kolejne wiersze; odwołanie do łańcucha o

określonym numerze jest realizowane poprzez indeks tablicy
Strings, poczynając od elementu o numerze 0, np.

dane->Lines-

>Strings[i]

• Wybrane metody

int Add(const AnsiString S)

dodaje łańcuch na końcu tekstu w obiekcie i zwraca jego
indeks.

void AddStrings(TStrings* Strings)

dodaje zbiór łańcuchów do listy.

void Clear(void)

usuwa (czyści) wszystkie łańcuchy na liście.

void Delete(int Index)

usuwa łańcuch o podanym numerze z listy (pierwszy łańcuch
ma numer 0).

background image

Obsługa tekstu w klasie

TStrings

Odwołanie do wiersza elementu dane wskazującego na obiekt klasy

TMemo w formularzu jest następujące:

dane->Lines->Strings[i]

dane

jest wskazaniem do obiektu typu TMemo, dlatego jego

właściwość

Lines

jest wybrana selektorem pośrednim (strzałka): ->

dane->Lines

jest elementem typu TStrings *, dlatego właściwość

Strings klasy TStrings jest wybrana selektorem pośrednim
(strzałka): ->.

• Właściwość Strings jest kolekcją (tablicą) obiektów klasy

AnsiString, dlatego należy wybrać jeden element tej tablicy
wskazując na jego indeks:

dane->Lines->Strings[i]

dane->Lines->Strings[i]

jest obiektem klasy AnsiString dlatego

wykorzystanie właściwości tej klasy na rzecz ww. obiektu odbywa
się poprzez selektor bezpośredni (kropka): .

• Przykład (jaki będzie wynik?):

dane->Lines->Strings[i].ToDouble()


Document Outline


Wyszukiwarka

Podobne podstrony:
w05
W05
2013 w05 DMA HWI 2013zid 28362 Nieznany
bal w05
BD 2st 1 2 w05 tresc 1 1
W19-SL-W05 - Leki psychotropowe (neuroleptyki) (Fivo), Naika, stomatologia, Farmakologia, WYKŁADY
gs w05
LP mgr W05 Analiza stanów
W05, Naika, stomatologia, Profilaktyka Stomatologiczna, Profilaktyka Stomatologiczna - ściągi
cps w05 v9
pdt w05 info id 353036 Nieznany
0708z techsiec w05
KZ BD w05
787 W05 Modbus id 46027 Nieznany (2)
stata w05
Żywienie człowieka W05 11 2010 Tłuszcze
jezc w05 funkcje
algorytmy w05 DFS sort topologi Nieznany (2)

więcej podobnych podstron