![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() помогите!! обьясните популярно этот код программы! особенно выделенные места!
![]() Код:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TForm1 = class(TForm) ListBox1: TListBox; Memo1: TMemo; Button1: TButton; Button2: TButton; Edit1: TEdit; Image1: TImage; Label1: TLabel; Label2: TLabel; Label3: TLabel; procedure FormCreate(Sender: TObject); procedure Button2Click(Sender: TObject); procedure ListBox1Click(Sender: TObject); procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; a: integer=0; implementation {$R *.dfm} function UpCaseAll(x: string): string; var b, w: integer; str: string; begin for w := 1 to length(x) do begin b := ord(x[w]); case b of 0..96: x[w] := chr(b); 97..122: x[w] := UpCase(chr(b)); 123..183: x[w] := chr(b); 184: x[w] := chr(168); 185..223: x[w] := chr(b); 224..255: begin b := b - (Ord('а') - Ord('А')); x[w] := chr(b); end; end; str := str + x[w]; end; UpCaseAll := str; end; procedure TForm1.FormCreate(Sender: TObject); begin ListBox1.Items.LoadFromFile('films.txt'); end; procedure TForm1.Button2Click(Sender: TObject); begin Close; end; procedure TForm1.ListBox1Click(Sender: TObject); begin memo1.Lines.LoadFromFile('myl/'+Listbox1.Items[ListBox1.ItemIndex]+'/'+Listbox1.Items[ListBox1.ItemIndex]+'.txt') ; end; procedure TForm1.Button1Click(Sender: TObject); var st, st1: string; f, i: integer; begin st := UpCaseAll(Edit1.Text); if st <> '' then begin for i := a to listbox1.Count - 1 do begin st1 := UpCaseAll(Listbox1.Items.Strings[i]); repeat f := POS(st, st1); if f <> 0 then begin Listbox1.ItemIndex := i; a := i + 1; exit; end; until f = 0; end; a := 0; end; end; end. Последний раз редактировалось Admin, 23.12.2010 в 20:59. |
#2
|
||||
|
||||
![]() Если в двух словах, то UpCaseAll нормализует строку заменяя все "неправильные" символы и переводит в верхний регистр символы латиницы. Например 'ё' будет заменено на 'е', или 'i' на 'I'
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#3
|
|||
|
|||
![]() спасибо большое
![]() Код:
b := b - (Ord('а') - Ord('А')); x[w] := chr(b); end; end; str := str + x[w]; end; UpCaseAll := str; lmikle: Еще раз повторяю - пользуемся правильными тегами!!! |
#4
|
|||
|
|||
![]() Это вычисление кода для русских букв.
функция Ord возвращает код символа. Теперь смотрим как расположены русские символы в кодовой таблице и понимаем логику вычисления. А вообще, вся эта функция бесполезна, т.к. есть встроенная AnsiUpperCase(). |