Знайте, Intuit, лекция, герои и струни
В Лазар главния тип низ е String (английски низ -. Ред). Формата на нашия проект, поставете друг бутон. Нейният треньор ще изглежда така:
Както можете да видите, защото низа в Лазар е UTF8 формат, няма специални трикове за работа с низове не е необходимо тук, в променлива от тип String могат да бъдат написани от никого, включително и текстът на български език. размер String низ е неограничен, но е възможно да се определи строго размера. Този метод се използва, когато знаеш, че повече от размера на линията няма. В този случай, размерът е определен след String дума в квадратни скоби, например:
Променливата MyStr може да записва до 50 знака. Максималният размер на низа, който може да бъде твърдо закрепено по такъв начин - 255 символа. Въпреки това, ние имаме предвид, ASCII символи. т.е. английски, еднобайтовата. например:
Този пример не причинява грешка, но съобщението не излиза напълно, и отсече: "Когато". Това означава, че първите три букви взеха 6 байта. четвъртия вече не е подходящо. В този случай, ще бъде размерът на точка е 7, а 14 - от два пъти броя на буквите. На практика обаче, обикновено се използва тип String без ограничения, при което линията се обработват правилно.
Имайте предвид, че видът на String е динамичен, т.е., предварително разпределени в паметта не е за него. Строго погледнато, памет се разпределя към показалеца на линия, а не на самата линия. Физически за да бъде разпределена на необходимата памет само по време на го давам някаква стойност. Въпреки това, често е необходимо да се почисти тази линия. Това е достатъчно, за да му се даде празни котировки, без интервали и без каквито и да било други символи:
В този случай, линията е настроен на нула. това е, нула, нищо, и се превръща в празен низ.
Низ променлива може да бъде назначен стойности на символични променливи или константи, например:
В допълнение към String в Лазар има и други видове струнни.
Кратък низ, който може да съдържа максимум 255 ASCII-символи. Това означава, че ShortString - е String [255].
На практика кратки низове се използват много рядко, защото, ако имате нужда от кратък низ, тогава размерът му може да бъде определен изрично. Ето защо, този превключвател коригира ръчно обикновено не е необходимо. Да предположим, че един String и AnsiString - са едни и същи.
Обикновено линиите от същия вид, които можете да зададете стойности на линиите на друг тип, компилаторът автоматично конвертира текста. Изключение е PChar струни. тук ние трябва да направим превръщането ръчно, с помощта на функцията PChar (). Правилно манипулатор на втория бутон:
Запазване на проекта, компилирате и стартирате. Когато натиснете втория бутон, ще остави съобщение с три реда
Има повече видове UnicodeString и WideString. И двата вида съдържат двубайтови знаци. Но работата с тези видове неудобно - има проблеми с кирилицата, за нас много по-удобно просто String. Ето защо, ние смятаме за типовете данни ние няма.
Ние обобщава някои от разпоредбите:
- Три основни типа низ: AnsiString. ShortString и PChar.
- Обикновено се посочи String тип. Когато ключът е включен (по подразбиране), след това се използва тип AnsiString. В противен случай - ShortString.
- Line може да бъде назначен за всеки текст, затворени в единични кавички, или съдържанието на друг низ променлива, например:
- PChar тип низ може да бъде присвоен или текста или съдържанието на друг низ променлива. Но ако типа на тази променлива е различна, а след това трябва да се направи функция за преобразуване PChar ():
Благодарим Ви за прекрасен, разбира се!
Независимият работата №2 съставяне MyCript.pas модул (OS: Windows 7 x64, Лазар 1.4 Win64), издадени за грешка в монтажа код
mycript.pas (54,5) Грешка: Asm: [тласък reg32] невалидна комбинация от опкод и операнди
mycript.pas (95,5) Грешка: Asm: [поп reg32] невалидна комбинация от опкод и операнди
Аз разбирам, че курса е готов за 32-битова операционна система, но какво да кажем в случая с 64-битови системи?
На манипулаторите FileCreate елементи на менюто, FileOpen, както и затваряне на формуляра манипулатор OnClose - в тези три процедури съдържат един и същ код
тях, преди да създадете нов текст>
ако след това Memo1.Modified започне
// ако потребителят е съгласен да запазите промените:
ако MessageDlg ( "Запиши като"
"Сегашната файлът е редактиран. Запазване на промените?
mtConfirmation [mbYes, mbNo, mbIgnore], 0) = mrYes тогава
FileSaveClick (подателя);
приключи; // ако
Позволете ми да ви попитам: няма ли да е по-добре да се направи този код в отделна процедура, например - под формата на манипулатор на събитие OnCloseQuery? Доколкото мога да си спомня за Delphi опит, обадете се на тази процедура сама по себе си не би трябвало да доведе до затварянето на формата. Това означава, че тя може да се използват при процедури за почистване Memo1 и четене от файл. Или в Лазар не можеш да направиш?