Cunoaște Intuit, curs, de caractere și șiruri
În principal Lazarus tip string este String (șir limba engleză. - Row). Forma proiectului nostru, plasați un alt buton. manipulant ei va arata astfel:
După cum puteți vedea, pentru că șirul în Lazăr are formatul UTF8, nu există trucuri speciale pentru lucrul cu siruri de caractere nu este necesară aici, într-o variabilă de tip șir poate fi scris de către oricine, inclusiv textul românesc. string size String este nelimitat, dar este posibil să se definească în mod rigid dimensiunea. Această metodă este folosită atunci când știi că mai mult de dimensiunea liniei nu va. În acest caz, dimensiunea este specificată după șirul de cuvinte cheie între paranteze drepte, de exemplu:
MyStr variabilă poate înregistra până la 50 de caractere. Mărimea maximă a șirului, care poate fi setat fix astfel încât - 255 simboluri. Cu toate acestea, avem în minte caractere ASCII. adică limba engleză, cu un singur octet. exemplu:
Acest exemplu nu cauzează o eroare, dar mesajul nu iese complet și tăiat: „Când“. Aceasta este, primele trei litere au luat 6 octeți. a patra nu mai este adecvată. În acest caz, ar fi dimensiunea punctului este de 7, și 14 - de două ori numărul de litere. Cu toate acestea, în practică, este utilizat de obicei de tip String, fără limitări, în cazul în care linia este procesată corect.
Rețineți că tipul String este dinamic, adică, memorie de pre-alocat nu este pentru el. Strict vorbind, memoria este alocată pentru indicatorul de linie, mai degrabă decât linia în sine. Fizic linie să aloce memoria necesară numai în momentul dându-i o anumită valoare. Cu toate acestea, de multe ori este necesar pentru a curăța această linie. Este de ajuns să-i dea un gol citate, fără spații, și fără alte simboluri:
În acest caz, linia este setat la Nil. care este, la zero, nimic, și devine un șir gol.
O variabilă șir poate fi valori atribuite variabile sau constante simbolice, de exemplu:
În plus față de coarde în Lazăr există și alte tipuri de coarde.
Un șir scurt, care poate conține un număr maxim de 255 de caractere ASCII. Asta este, ShortString - este String [255].
În practică, șiruri scurte de caractere sunt folosite foarte rar, pentru că dacă aveți nevoie de un scurt șir de caractere, atunci dimensiunea sa poate fi specificat în mod explicit. Prin urmare, acest comutator corectate manual nu este de obicei necesară. Să presupunem că un șir și AnsiString - sunt unul și același lucru.
De obicei, liniile de același tip, puteți atribui valori la liniile de alt tip, compilatorul convertește automat textul. Excepția este siruri de caractere PChar. aici trebuie să facem conversia manual, folosind funcția PChar (). handler corectă a butonului doilea:
Salvați proiectul, compila și rula. Când apăsați butonul de-al doilea, vă va lăsa un mesaj cu trei rânduri
Există mai multe tipuri de UnicodeString și WideString. Ambele tipuri conțin caractere pe doi octeți. Dar lucrul cu aceste tipuri de disconfort - există probleme cu alfabetul chirilic, pentru noi mult mai convenabil String simplu. Prin urmare, considerăm că tipurile de date nu vor.
Am rezuma unele dintre dispozițiile:
- Trei tipuri de bază de coarde: AnsiString. ShortString și PChar.
- De obicei, indică tipul String. Când comutatorul este pornit (implicit), apoi utilizat tip AnsiString. În caz contrar - ShortString.
- Linia poate fi atribuită oricărui text ghilimele simple, sau conținutul unei alte variabile șir de caractere, de exemplu:
- PChar de tip șir poate fi atribuit fie textul sau conținutul o altă variabilă șir. Dar, în cazul în care tipul de această variabilă este diferit, atunci ai nevoie pentru a face funcția PChar de conversie ():
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?