![]() |
|
|
#1
|
|||
|
|||
|
Добрый день. Есть номер договора, например 00002. Для дальнейшей работа с ним, мне нужно 0000 отделить от 2. т.е. присвоить переменной :null 0000, а переменной :num 2. Подскажите пожалуйста, как разделить 00002 на ноли и цыфры. Спасибо.
|
|
#2
|
|||
|
|||
|
Код:
procedure TForm1.Button1Click(Sender: TObject);
var num1,num2, num:string;
i:integer;
begin
num:='00002';
for i:=1 to Length(num) do
//перебираем все цифры числа и ищем где кончатся нули и начнутся цифры отличные от нуля
if num[i]<>'0' then
begin
num1:=Copy(num,1,i-1);
num2:=Copy(num,i,Length(num));
break;
end;
ShowMessage('Число1: '+num1+' Число2: '+num2);
end;Последний раз редактировалось Snake22, 27.03.2013 в 17:16. |
| Этот пользователь сказал Спасибо Snake22 за это полезное сообщение: | ||
DOR (27.03.2013)
| ||
|
#3
|
||||
|
||||
|
StrToInt(str: string) проглатывает всё что имеет пачку нулей перед собой.
Т.е. StrToInt('0000000000002') вернёт двойку. Если прикрутить сюда ещё Length('0000000000002') можно всегда узнать количество нулей, и само число. Последний раз редактировалось Uniq!, 27.03.2013 в 18:29. |
|
#4
|
||||
|
||||
|
Цитата:
Код:
function IntToStr(Value: Integer): string; >> Код:
function StrToInt(const S: string): Integer; |
| Этот пользователь сказал Спасибо NumLock за это полезное сообщение: | ||
Uniq! (27.03.2013)
| ||
|
#5
|
||||
|
||||
|
Цитата:
Спасибо, я банально опечатался. |
|
#6
|
|||
|
|||
|
Простите мою глупость. Можно написать код на моем примере? Так как это сделал Snake22.
|
|
#7
|
||||
|
||||
|
Код:
procedure TForm1.Button1Click(Sender: TObject); var art : string; num,col0 : integer; begin art := '00120'; col0 := Length(art) - Length(IntToStr(StrToInt(art))); num := StrToInt(art); Caption := IntToStr(num) + ' нулей:' + IntToStr(col0); end; |
|
#8
|
|||
|
|||
|
Цитата:
col0 должен не считать количество 0, а записать ввиде 00 |
|
#9
|
||||
|
||||
|
Кхм...
Код:
stroka_s_ky4ei_nylei := StringOfChar('0',col0);![]() |
| Этот пользователь сказал Спасибо Uniq! за это полезное сообщение: | ||
DOR (27.03.2013)
| ||