БОЛЬШОЙ FAQ ПО DELPHI



Инкрементация строкового поля

Свойства text элемента управления является строкой, в свою очередь являющейся массивом символом. Вы не можете осуществить преобразование символа в строку. Тем не менее, вы можете получить доступ ко всем символам строки через их индекс.

Попробуйте это:


 var
   s: string;
 begin
   s := RevField.text;
   s[1] := chr(ord(s[1]) + 1);
   RevField.text := s;
 end;
 

Здесь кроются 2 проблемы:

  1. Для увеличения значения вам необходимо извлекать символы из строки.

  2. Хотя вы можете получить доступ к отдельным символам через выделение подстроки, данный метод не срабатывает у некоторых свойств, таких как, например, свойство TStringField Text.

    Лучшим решением, по-видимому, будет написание специфической функции. Например, в случае, если revision-символ всегда является конечным символом строки, функция могла бы выглядеть следующим образом:


 function IncrementTrailingVersionLetter(Str: string): string;
 begin
   Str[Length(Str)] := Char(Ord(Str[Length(Str)]) + 1);
   IncrementTrailingVersionLetter := Str;
 end;
 

и использовать ее следующим образом:


 with RevField do
   Text := IncrementTrailingVersionLetter(Text);
 




<< ВЕРНУТЬСЯ В ОГЛАВЛЕНИЕ



Материалы находятся на сайте https://exelab.ru/pro/



Видеокурс ВЗЛОМ