Как удалить пробелы слева и справа в строке? // Способпервый (самый простой) procedure TForm1.Button1Click(Sender: TObject); var s: string; begin s := ' Тестовая строка '; Edit1.Text := Trim( s ); //Выводим в Edit строку без пробелов слева и справа end; // Способвторой (более сложный) procedure TForm1.Button1Click(Sender: TObject); var s: string; begin s := ' Тестовая строка '; //удаляем лидирующие пробелы while s[1] = ' ' do Delete( s, 1, 1 ); //удаляем пробелы в конце while s[Length( s )] = ' ' do Delete( s, Length( s ), Length( s ) ); Edit1.Text := s; //Выводим в Edit строку без пробелов слева и справа end; |
Как удалить пробелы слева в строке? // Способпервый procedure TForm1.Button1Click(Sender: TObject); var s: string; begin s := ' Тестовая строка '; Edit1.Text := TrimLeft( s ); //Выводим в Edit строку без пробелов слева end; // Способвторой procedure TForm1.Button1Click(Sender: TObject); var s: string; begin s := ' Тестовая строка '; while s[1] = ' ' do Delete( s, 1, 1 ); Edit1.Text := s; //Выводим в Edit строку без пробелов слева end; |
Как удалить пробелы справа в строке? // Способпервый procedure TForm1.Button1Click(Sender: TObject); var s: string; begin s := ' Тестовая строка '; Edit1.Text := TrimRight( s ); //Выводим в Edit строку без пробелов справа end; // Способвторой procedure TForm1.Button1Click(Sender: TObject); var s: string; begin s := ' Тестовая строка '; while s[Length( s )] = ' ' do Delete( s, Length( s ), Length( s ) ); Edit1.Text := s; //Выводим в Edit строку без пробелов справа end; |
Как удалить в строке лишние пробелы между словами? (оставив между словами только по одному пробелу – такая строка называется “нормализованной”) procedure TForm1.Button1Click(Sender: TObject); var s: string; begin s := ' Тестовая строка '; s:=Trim(s); //сначала удаляем пробелы слева и справа в строке while Pos( ' ', s ) > 0 do //а затем удаляем лишние пробелы между словами Delete( s, Pos( ' ', s ), 1 ); Edit1.Text := s; //Выводим в Edit “нормализованную” строку end; Как удалить из строки все пробелы? // Способпервый procedure TForm1.Button1Click(Sender: TObject); var s: string; begin s := ' Тестовая строка '; while Pos( ' ', s ) > 0 do Delete( s, Pos( ' ', s ), 1 ); Edit1.Text := s; //Выводим в Edit строку без пробелов end; // Способвторой procedure TForm1.Button1Click(Sender: TObject); var s: string; begin s := ' Тестовая строка '; s := StringReplace( s, ' ', '', [rfReplaceAll] ); Edit1.Text := s; //Выводим в Edit строку без пробелов end; { В функции StringReplace: Первый параметр - строка, в которой производится замена Второй параметр - подстрока, которую нужно заменить Третий параметр - строка, которой нужно заменить подстроку Последний параметр - флаги: rfReplaceAll - заменить все найденные подстроки rfIgnoreCase - игнорировать регистр букв } //В данном примере из строки s удаляются все пробелы путем замены ' ' на '' . |
Как получить номер первого интересующего нас символа в строке (например, символа 'Т') ? // Способпервый procedure TForm1.Button1Click(Sender: TObject); var s: string; begin s := ' Тестовая строка '; Edit1.Text := IntToStr( Pos( 'Т', s ) ); //Выводим в Edit номер 1-го симв.”T” end; // Способвторой procedure TForm1.Button1Click(Sender: TObject); var s: string; i: integer; begin s := ' Тестовая строка '; for i := 1 to Length( s ) do if s[i] = 'Т' then begin Edit1.Text := IntToStr( i ); //Выводим в Edit номер 1-го симв.”T” Break; //и выходим из цикла end; end; |
Как получить номер последнего интересующего нас символа в строке (например, символа 'а') ? // Способпервый procedure TForm1.Button1Click(Sender: TObject); var s: string; begin s := ' Тестовая строка '; Edit1.Text := IntToStr( LastDelimiter( 'а', s ) ); //Рез-т выводим в Edit end; // Способвторой procedure TForm1.Button1Click(Sender: TObject); var s: string; i: integer; begin s := ' Тестовая строка '; for i := Length( s ) downto 1 do if s[i] = 'а' then begin Edit1.Text := IntToStr( i ); //Результат выводим в Edit Break; //и выходим из цикла end; end; |
Как проверить наличие интересующей нас буквы в определенной позиции строки (например, символа 'е' в 5-й позиции)? // Способпервый procedure TForm1.Button3Click(Sender: TObject); var s: string; begin s := ' Тестовая строка '; if s[5] = 'е' then ShowMessage( 'Такая буква существует' ) else ShowMessage( 'Такая буква не существует' ); end; // Способвторой procedure TForm1.Button3Click(Sender: TObject); var s: string; begin s := ' Тестовая строка '; if IsDelimiter( 'е', s, 5 ) then ShowMessage( 'Такая буква существует' ) else ShowMessage( 'Такая буква не существует' ); end; |
Как определить длину строки? procedure TForm1.Button1Click(Sender: TObject); var s: string; begin s := ' Тестовая строка '; Edit1.Text := IntToStr( Length(s)); //Выводим в Edit длину строки end; |
Как заменить подстроку в строке? // Можно воспользоваться функцией StringReplace, у которой: // Первый параметр - строка, в которой производится замена // Второй параметр - подстрока, которую нужно заменить // Третий параметр - строка, которой нужно заменить подстроку // Последний параметр - флаги: // rfReplaceAll - заменить все найденные подстроки // rfIgnoreCase - игнорироватьрегистрбукв procedure TForm1.Button1Click(Sender: TObject); begin // В тексте Editзаменяется 1 на ! и результат помещается в тот же Edit Edit1.Text := StringReplace(Edit1.Text,'1','!', [rfReplaceAll,rfIgnoreCase] ); end; В данном примере '1'заменяется на '!'во всех случаях, игнорируя регистр букв. |
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.