Всем привет! Помогите разобраться
вот есть переменная x:Char
делаем For x:='1' do 'Z' do
ShowMessage(x);
и она выдает все от 1 до Z и еще в добавок ':;<=>?@'
Я хочу увеличить x на 1 символ, так сказать...
Т.е. если в переменной х был 1 то нужно чтоб стал 2, если 9 то А, если А то В...
Каким способом такое сделать? х:=х+1 не канает
И как исключить этот самый "в добавок" т.е. чтоб эти символы не выдавала...
Суть в том что я хочу встроить этот алгоритм при создании файла, мне нужно чтоб в конце имени файла приписывался индекс от 1 до Z.
Переменная типа CHAR
Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду
-
- Сообщения: 407
- Зарегистрирован: 13 сен 2004, 12:05
- Откуда: Курган
- Контактная информация:
Чем проще - тем оригинальней, а значит гениально, т.к. все гениальное - просто! Да! Кстати! Ctrl+V реально вставляет!!! ХDD
Сделай проверку и все, неужели так сложно?
В других случаях проканает
X := Chr(ord(x)+1); или
inc(byte(x));
Код: Выделить всё
if x='9' then x := 'A';
X := Chr(ord(x)+1); или
inc(byte(x));
It's a long way to the top if you wanna rock'n'roll
Char - символ, и ты просишь вывести промежуток символов от 1 до Z.
Нужно же перегнать Char в integer к примеру.. И с ним работатью
Нужно же перегнать Char в integer к примеру.. И с ним работатью
Проканает даже без приведения к byte:somewhere писал(а):В других случаях проканает ....
inc(byte(x));
Inc (x); { где x - переменная типа char }
Так как пр-ра Inc (это даже и в Паскале) применяется к любому "ordinal-type".
Проагмент из паскалевкого хелпа:
Inc (procedure)
=============
Increments a variable.
Declaration:
procedure Inc(var X [ ; N: Longint ] );
Target:
Windows, Real, Protected
Remarks:
X is an ordinal-type variable or a variable of type PChar if the extended
syntax is enabled and N is an integer-type expression.
......
Либо можно завести массив символов, где будут записаны лишь нужные символы, пользоваться не номером сиимвола (от ord('0') до ord('Z')), а номером ячейки масива (от 1 до 36):
Код: Выделить всё
const MY_CHARS : array [1..36] of char = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';
-
- Сообщения: 407
- Зарегистрирован: 13 сен 2004, 12:05
- Откуда: Курган
- Контактная информация:
Сенькс! Все ништяк! Робит как надо!
Чем проще - тем оригинальней, а значит гениально, т.к. все гениальное - просто! Да! Кстати! Ctrl+V реально вставляет!!! ХDD