Tipuri de caractere și șir de date

Tipuri de caractere și șir de date

Deci, cu numerele care le-am înțeles. A fost rândul textului. Delphi manipuleaza date de tip text ca personaje individuale, precum și secvențe de simboluri - linii.

Aici este necesar pentru a face o mică digresiune despre prezentare. Faptul că tema de stocare a datelor de text este vastă, atât în ​​număr și complexitate. În cazul în care arunca imediat pe un cap ceainic simplu, în totalitate, este un pic ca să înțeleagă și sunt susceptibile de a obține confuz. Prin urmare, vom proceda, la fel ca la școală în lecții de fizică. Inițial, legile fizicii sunt explicate într-un mod simplu, sub formă de mecanicii newtoniene, și apoi, mult mai târziu, începem să spunem povești de povestitor relativist Einstein, și vedem că lumea original este doar o reprezentare simplificată a imaginii reale a lumii. Același lucru se face aici.

Tip de date Char

Tipul de date de bază (care se bazează pe ceea ce toate celelalte tipuri de date de text) - Char. variabilă de tip char poate stoca un singur caracter, unul dintr-un set de 256 de caractere. Fiecare personaj are propriul său cod. De fapt calculatorul funcționează fără simboluri (el nu știe ce este) și coduri de caractere. De exemplu, atunci când imprimarea unui caracter cu un cod specific este în căutarea pentru o imagine cu caracter grafic în tabelul de imagine de caractere pentru un anumit număr, și apoi afișează o imagine grafică pe ecran. Simbolurile pot fi comparate între ele, la egalitate și pentru a determina care este mai mare sau mai mică, atunci computerul compară din nou nu caracterele și codurile lor.

În jurul mesei simbol poate fi descris ca acest lucru. La început sunt diferite caractere de control de serviciu, care nu au o reprezentare grafică. De exemplu, această filă de caractere, transportul retur, linie de alimentare, etc. Apoi, du-te punctuației '!', '?', '' etc. În plus, există cifre '1', '2', '3', etc. Următoarele sunt litere ale alfabetului englezesc „A“, „B“, „C“. 'Z', 'o', 'b', 'c'. 'Z'. Intregind tabelul din literele alfabetului naționale „A“, „B“, „B“. 'Eu', 'a', 'b', 'în'. 'I'.

Trebuie remarcat faptul că există o mulțime de seturi de caractere. Diferite sisteme pot fi interpretate în moduri diferite coduri de caractere pentru simplul motiv că acestea sunt ghidate de tabele diferite simboluri. În acest opus, vom folosi tabelul de simboluri numit de cod Windows Pagina 1251 (chirilic). Acest tabel de caractere pentru chirilic pe sistemele Microsoft Windows. Acest lucru înseamnă că, într-un sistem Windows, fiecare caracter cu un cod specific va fi interpretat în același mod pentru toate programele, cu excepția cazului în care, desigur, nu pune în aplicare unele proprii, de prelucrare caracter specific.

Așa cum am spus mai înainte, tipuri de variabile de caractere poate conține un singur caracter în loc de două sau trei, etc. Exemplu de tip Char:

Acest program stabilește valoarea unei Char valoare simbolul „Z“ și apoi îl afișează pe consolă.

Dar acest program nu vor fi compilate de către compilator, din cauza erorilor de compilare. O variabilă poate fi atribuită o valoare de numai un singur simbol.

linii manipulau

Mai jos sunt principala, cele mai frecvente operații care pot fi efectuate pe siruri de caractere. Practic, toate operațiunile sunt puse în aplicare de către funcțiile biblioteca standard.
  • atribuirea de valori ale altor linii sau constante șir
  • obținerea unei valori string
  • primirea Lungimea liniei (numărul de caractere pe linie)
  • obținerea valorii unui anumit simbol (simbol situat într-o anumită poziție rând)
  • modificarea valorii unui caracter specific într-un șir de caractere
  • fuziune (concatenare) a două sau mai multe linii
  • subșir dintr-o selecție șir
  • inserați o linie în alta
  • îndepărtarea unei porțiuni din șirul
  • definesc poziția de apariție a unui șir de caractere la altul
  • schimba cazul caracterului
  • comparație șir pentru egalitate sau mai mult / mai puțin
În plus față de aceste operații, există o mulțime de alte, mai specializate, dar despre ele mai târziu.

Rularea un pic mai departe, trebuie remarcat faptul că multe dintre operațiunile sunt efectuate pe siruri de caractere folosind o varietate de rutine. Subprogramul - o bucată de cod care are un ID și poate fi numit pe ea pentru a îndeplini orice sarcină. De multe ori rutina pe care doriți să-l trimiteți orice parametri. Deoarece parametrii utilizați în oricare expresie sau identificator nimic. De exemplu, un identificator al unei variabile sau constante. Rutinele sunt împărțite în proceduri și funcții. Diferența dintre ele este doar în prezența rezultatului returnat. Funcțiile returnează rezultatul executării sale și procedura nu returnează nici un rezultat, doar pentru a efectua o acțiune. De exemplu, Sin - funcția care calculează valoarea sinus a parametrului a trecut la ea și returnează rezultatul de calcul ca valoare reală. În contrast WriteLn este o procedură care nu se întoarce nici o valoare, dar efectuează o acțiune - valorile de ieșire ale parametrilor transmiși-l la consola. Procedurile sunt numite după cum urmează:

Procedure_name (parametru1, parametru2 ParametrN.);

Un apel de funcție poate fi utilizată în orice expresie (pentru sistemele IT). De asemenea, apelul funcției poate fi utilizată într-o declarație de atribuire pentru a atribui orice rezultat funcție variabilă.

Varname = functionname (parametru1, parametru2 ParametrN.);

Atribuirea unei linii de valoare, obținerea de conținutul șirului

variabilă String poate fi setat ca orice altă variabilă. Singura restricție este aceea că valoarea tipului trebuie să fie String sau Char (adică un caracter, ci un șir de lungime 1).

Obținerea și instalarea unei singure NEWLINE

Prin șirul de caractere pot fi accesate prin indexul lor (poziția în linie). Indicele primului caracter al șirului 1. Ultimul caracter al indicelui șir este egal cu apelul funcției rezultat Lungime, care, în șirul va fi transmisă ca parametru. Rețineți că indicele primului caracter de 1 și 0 nu se face în mod normal, într-o varietate de structuri de date care pot conține mai multe elemente (în general, mai mult de unul). Când încercați să accesați indexul de simbol este mai mică decât 0 sau mai mare lungime (identificator șir de caractere) apare eroare de execuție.

Formatul a avea acces la șirul de caractere:
S [I]
. unde S - identificatorul unei variabile string, și I - un index caracter.

Expresia formei S [I], unde S - variabila string identificator, returnează un rezultat de tip Char.

acces la EXEMPLUL șirul de caractere pe index:

Trebuie să afișeze următoarele:

Fuzionarea două rânduri (concatenare)

Rânduri pot fi adăugate ca variabile numerice folosind operatorul +. Rezultatul adăugării este șir mai lung, care include conținutul ambelor rânduri în ordinea utilizării lor în operația adăugare. Există, de asemenea, o funcție Concat care efectuează exact aceeași funcție ca și +.

Formatul de funcționare a concatenare a două șiruri. unde A - identificator al unei linii sau expresie șir, și B - identificator al unui alt expresie rând sau șir.

Rezultatul de ieșire ar trebui să fie după cum urmează:

Izolarea unui subșir dintr-un șir de caractere

Consola va fi afișată după cum urmează:

Introduceți un rând în altul

Introduceți Insert rânduri procedura de executat. Procedura ia ca date de intrare trei parametri: șirul pe care doriți să inserați un rând în care trebuie să se facă inserția și poziția, în care trebuie să se facă inserția. Format de apel:

Introduceți (Sursa, Target, Poziția);
  • Sursa - șirul care urmează să fie introduse
  • Target - identificator de variabilă șir în care pentru a insera conținutul sursei
  • Poziția - poziția în care se va insera conținutul Sursei la Target

Vă rugăm să rețineți că acest lucru nu este o funcție, ci o procedură. Ea nu returnează un rezultat, și modifică conținutul țintă. O altă caracteristică a utilizării procedurii, nu o funcție este aceea ca țintă pot fi transmise numai identificator variabil, dar este imposibil de a transmite expresie sau identificatorul constantelor. Procedura Insert atribuie rezultatul la țintă și atribuiți-o constantă sau expresie nu poate fi, prin definiție.

  • Dacă poziția este mai mică de 1, procesul este nevoie pentru a 1.
  • Dacă mai mult Poziția Lungime (Target), apoi conținutul sursei, se adaugă la sfârșitul Target.
  • Dacă sursa este un șir gol, Inserare nu face nimic
Exemplu de utilizare Inserare

Șirul trebuie să fie afișate prin rularea acestui program:

O parte a unei linii poate fi îndepărtată folosind proceduri Delete. Formatului de apel Ștergere procedură:

Șterge (Target, Index, Count);
. unde Target - variabilă șir identificator din care sunt eliminate caractere, Index - o poziție din care îndepărtarea este efectuată, Count - numărul de caractere pentru a șterge.
  • În cazul în care indicele este mai mic de 1 sau mai mare decât lungimea (Target), niciunul dintre țintă nu este eliminat.
  • În cazul în care Count specifica mai multe caractere decât sunt incepand de la Index, caracterele sunt eliminate din indexul de până la capătul liniei. Dacă numărul este mai mic de 1, atunci nimic nu va fi șters.
Exemplu Delete:

Rezultatul ar trebui să fie de ieșire: Hariends

Determinarea poziției de apariție a unui șir de caractere la altul

Uneori este necesar să se stabilească dacă un șir de caractere este conținut în altul, precum și poziția din care se potrivesc cu conținutul corzilor. În acest scop, funcția Poz. Format de apel:

Pos (substr, Str). în cazul în care Str - un șir de caractere pentru a fi cautat substr. Funcția returnează poziția de intrare, ca rezultat. Dacă șirul SUBSTR nu este stocată în Str, rezultatul funcției este egal cu 0. Funcția este litere - mari și mici, adică, subșir „dans“ pentru a fi găsite în „Noi dansând în umbre“, dar nu va fi găsit în "Noi Dancing în umbre.

Exemplul de utilizare Pos:

articole similare