Cunoaște Intuit, curs, de caractere și șiruri

Scopul prelegerii

Relația cu caracter și șir de tipuri de componente de date pentru a fi utilizate cu siruri de caractere.

Conceptul de „caracter“ și „linia“

Pentru utilizator mediu, aceste concepte este foarte abstract. Când el cheile în „A“ crede că este un simbol, o scrisoare. Atunci când intră în „4“, este - figura. Și despre toate acolo spații, semne de punctuație și semne aritmetice și el nu cred acest lucru. Dar programator trebuie să înțeleagă modul în care toate aceste semne sunt percepute de către calculator. Deci, vă rugăm să aveți răbdare, vom explora aceste concepte în detaliu.

De fapt, tot ceea ce introducem cu tastatura - este de caractere. Litera „z“, numărul „3“ spațiu. semn multiplica, semn la sută, etc. - toate aceste caractere. Computerul poate funcționa, de asemenea, doar cu cifre, și binar - cele care conțin numai 0 sau 1. Toate aceste litere, numere zecimale, și alte caractere nu înseamnă absolut nimic pentru el. Și pentru că ne putem descurca într-un fel de text, numere, precum și alte informații necesare pentru a veni cu un sistem special pentru transferul de informații în computerul poate înțelege, și vice-versa. Deci, nu erau pagini de cod.

Pagina de cod (pagina de cod engleză.) - un tabel special care asociază fiecare valoare de octet unele caractere.

Nu este foarte clar? Să investigheze. Știm că informația este măsurată în octeți, și că, într-un octet de 8 biți. Bit - aceasta este unitatea minimă de informații, care pot opera un calculator. Scula poate fi stocat fie 0 sau 1.

In primele zile ale paginii de cod ASCII calculatoare a fost proiectat (limba engleză American Standard Code pentru schimbul de informații -. Codul standard american pentru schimbul de informații). Prima versiune a acestui standard a apărut în 1963. Această pagină conține un caractere de 7 biți, fiecare bit octet nu a fost implicat. număr binar minimal, care poate fi stocat în 7 biți - este zero. Maxim - 1111111.

Faceți clic pe butonul „Start“, faceți clic pe „Run“ și „Run“ enter

și apăsați . Încărcați calculator Windows standard. În meniul principal, sub „View“, selectați „Engineering“. Partea stângă a calculatorului de mai jos câmpurile de introducere de numere, veți vedea switch-uri de diferite sisteme de calcul:

Cunoaște Intuit, curs, de caractere și șiruri


Fig. 5.1. comutatoare calculator

Aici avem posibilitatea de a trece la un sistem de patru contabilitate:

  • Hex - 16-ary. Folosit în principal, în limbaj de asamblare, sau atunci când depanare programe.
  • Decembrie - 10-Ung. Sistemul nostru convențional este utilizat în mod implicit.
  • Octombrie - 8-ary. Foarte rar folosit.
  • Bin - 2-ary. Deși ea este de înțeles doar pentru un computer, dar din cauza caracterului voluminos înregistrărilor în programarea este, de obicei, nu este utilizat.

Să vedem cât de multe caractere ar putea fi incluse în pagina de cod ASCII. Treceți la sistemul binar (Bin), introduceți șapte unități, și apoi trece înapoi la un sistem zecimal (decembrie). Avem 127. Acesta este numărul de caractere conținute în primul tabel ASCII. În plus față de literele latine, tabelul include și alte caractere - numere, semne aritmetice, semne de punctuație, caractere spațiu, bretele, etc. Fiecare caracter corespunde numărul său în tabel. Când am introdus limba engleză litera „A“, atunci computerul a primit numărul simbolului în tabel - 65. în mod alternativ, în binar, 100 0001. Astfel, simbolurile pot fi comparate între ele. Engleză „B“ este pe locul 66, și, prin urmare, au existat mai mult decât „A“. litere mici au alte numere, de exemplu, „o“, a fost în tabelul cu numărul 97 și a fost considerată mai mare decât „A“. Introducem caractere, care sunt convertite automat la numere, care operează deja calculatorul.

Aici trebuie sa facem o clarificare importantă. Dacă am introdus un număr de „65“, atunci PC-ul nu a fost numărul 65, sau litera latină „A“, a fost de două caractere „6“ și „5“. Simbolul „6“ corespunde numărului 54 al tabelului de cod și simbolul „5“ - numărul 53. Astfel, numărul pe care le introducem în PC-ul, de fapt, nu numere și caractere de text! Conversia caracterelor în cifre și din spate sunt de obicei realizate automat de către program. Astfel de transformări, de exemplu, efectuează în mod continuu standard de calculator pentru Windows. Și când studiem cifrele, ne-am pentru a efectua aceeași transformare.

Totul este bun, dar, în plus față de limba engleză, există multe alte limbi din lume! De exemplu, vom scrie cu caractere chirilice - caractere românești desen. 127 de caractere nu a fost suficient pentru a putea introduce text în alte limbi. Prin urmare, ASCII dezvoltat de la an noi standarde a apărut în anul. Fiecare personaj a devenit un 8 biți. Uită-te la calculator - opt biți pot conține numărul maxim de 1111 1111 transfer la sistemul zecimal vom obține 255 de caractere. Prima jumătate a tabelului rămân neschimbate, dar a doua jumătate a tabelului poate fi utilizat pentru simbolurile alte limbi și grafică de caractere, cu care programatori MS-DOS ori vopsit ferestre, panouri, mese și meniuri. Cu toate acestea, a fost prea mic pentru a codifica toate limbile din lume. Pentru fiecare limbă, a trebuit să dezvolte un standard care nu este compatibil cu ceilalți. Și, pentru o limbă poate fi dezvoltat unele standarde! Pentru limba română, de exemplu, nu există standarde CP866 (pagina de cod 866), KOI8-R. KOI8-U, ISO-8859-5, iar aceasta este doar cea mai comună! În haosul standardelor care a trebuit să înțeleagă într-un fel, și să le îmbunătățească.

Prima versiune a caracterelor Unicode au fixat dimensiunea 2 octeți (16 biți). Într-o codificare a fost posibil de a utiliza 65.535 de caractere! Cu toate acestea, sa dovedit că acest lucru nu este suficient. Unicode a fost dezvoltat în continuare, și de la an la an au început să apară noi versiuni și standarde bazate pe Unicode. Există standarde, cum ar fi UTF-8 (Eng Unicode Transformation Format opt ​​biți - .. 8-biți Unicode formatul de conversie), UTF-16. UTF-32.

Această abordare face codificarea UTF-8 pentru compatibilitatea cel mai economic cu standardele mai vechi, dar există și dezavantaje. Din păcate, pentru vorbitori de limba rusă (și, în general, pentru toate non-vorbitori de limba engleza) utilizatorii de Windows în Lazarus se va confrunta cu unele probleme de aplicare a caracterului diferit: în Lazăr utilizează codificarea UTF-8. Sistem de operare Windows utilizează UTF-16. și aplicații de consolă, Windows utilizează sistemul de codificare CP866 (de exemplu, standardul ANSI). Ea a folosit, de asemenea, unele funcții CFP compilator. Deci, în unele cazuri, avem de a utiliza funcțiile de conversie de codificare, de exemplu, UTF8ToConsole (). CP866ToUTF8 () etc. Ne uităm la ei mai târziu, la momentul respectiv.

Deci, pentru a rezuma rezultatele.

  • Simbolul - o reprezentare grafică de litere, cifre, semne aritmetice, semn de punctuație sau orice alt însemn care îndeplinește orice codificare standard de caractere.
  • Fiecare caracter corespunde numărului său din tabelul de caractere.
  • Codificări (pagina de cod), există multe.
  • String - un șir de caractere.
  • Cifrele pe care le câștigă pe tastatură - este de caractere. Pentru a le trata ca numere, programul efectuează conversia automată a caracterelor în cifre și înapoi, atunci când am afișează rezultatele calculelor.
  • UTF-8 - aceasta este una dintre reprezentările Unicode folosite în Lazăr.
  • În aceeași linie se poate întâlni personajele care ocupă 1, 2 sau mai mulți octeți.

Vă mulțumim pentru cursul minunat!

Munca independentă №2 compila modul MyCript.pas (Sistem de operare: Windows 7 x64, Lazarus 1.4 Win64) a emis o eroare în codul de asamblare

mycript.pas (54,5) Eroare: Asm: [împinge reg32] combinație de invalid opcode și operanzi
mycript.pas (95,5) Eroare: Asm: [pop reg32] combinație nevalidă de Opcode și operanzi

Am înțeles că cursul este gata pentru 32-bit sistem de operare, dar ce se întâmplă în cazul sistemelor pe 64 de biți?

Handlerele FileCreate elemente din meniu și FileOpen, precum și închiderea handler forma OnClose - în aceste trei proceduri conțin același cod

le înainte de a crea noul text>
în cazul în care începe apoi Memo1.Modified
// daca utilizatorul este de acord pentru a salva modificările:
dacă MessageDlg ( 'Save As'
„Fișierul curent a fost modificat. Salvați modificările?
mtConfirmation, [mbYes, mbNo, mbIgnore], 0) = mrYes apoi
FileSaveClick (Sender);
se încheie; // dacă

Dați-mi voie să vă întreb: nu ar fi mai bine să facă acest cod într-o procedură separată, de exemplu - sub forma unui eveniment handler OnCloseQuery? Din câte îmi amintesc de experiența Delphi, numesc această procedură în sine nu ar trebui să conducă la închiderea formularului. Acest lucru înseamnă că acesta poate fi utilizat în procedurile de curățare Memo1 și citirea dintr-un fișier. Sau în Lazăr nu poți face?

articole similare