Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 27.03.2013, 17:00
DOR DOR вне форума
Начинающий
 
Регистрация: 14.01.2011
Сообщения: 171
Версия Delphi: 7
Репутация: 10
По умолчанию Разделение числа

Добрый день. Есть номер договора, например 00002. Для дальнейшей работа с ним, мне нужно 0000 отделить от 2. т.е. присвоить переменной :null 0000, а переменной :num 2. Подскажите пожалуйста, как разделить 00002 на ноли и цыфры. Спасибо.
Ответить с цитированием
  #2  
Старый 27.03.2013, 17:13
Snake22 Snake22 вне форума
Активный
 
Регистрация: 20.02.2011
Сообщения: 374
Репутация: 744
По умолчанию

Код:
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  
Старый 27.03.2013, 17:20
Аватар для Uniq!
Uniq! Uniq! вне форума
Местный
 
Регистрация: 29.09.2010
Сообщения: 539
Версия Delphi: Delphi XE3
Репутация: 374
По умолчанию

StrToInt(str: string) проглатывает всё что имеет пачку нулей перед собой.
Т.е. StrToInt('0000000000002') вернёт двойку.

Если прикрутить сюда ещё Length('0000000000002') можно всегда узнать количество нулей, и само число.

Последний раз редактировалось Uniq!, 27.03.2013 в 18:29.
Ответить с цитированием
  #4  
Старый 27.03.2013, 18:27
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

Цитата:
Сообщение от Uniq!
IntToStr(str: string) проглатывает всё что имеет пачку нулей перед собой.
Т.е. IntToStr('0000000000002') вернёт двойку.

Если прикрутить сюда ещё Length('0000000000002') можно всегда узнать количество нулей, и само число.
да неужели???
Код:
function IntToStr(Value: Integer): string;
IntToStr() всегда в качестве параметра принимал число, а возвращал строку!!!

>>

Код:
function StrToInt(const S: string): Integer;
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
Этот пользователь сказал Спасибо NumLock за это полезное сообщение:
Uniq! (27.03.2013)
  #5  
Старый 27.03.2013, 18:30
Аватар для Uniq!
Uniq! Uniq! вне форума
Местный
 
Регистрация: 29.09.2010
Сообщения: 539
Версия Delphi: Delphi XE3
Репутация: 374
По умолчанию

Цитата:
Сообщение от NumLock
Код:
function StrToInt(const S: string): Integer;

Спасибо, я банально опечатался.
Ответить с цитированием
  #6  
Старый 27.03.2013, 19:30
DOR DOR вне форума
Начинающий
 
Регистрация: 14.01.2011
Сообщения: 171
Версия Delphi: 7
Репутация: 10
По умолчанию

Простите мою глупость. Можно написать код на моем примере? Так как это сделал Snake22.
Ответить с цитированием
  #7  
Старый 27.03.2013, 19:44
Аватар для Uniq!
Uniq! Uniq! вне форума
Местный
 
Регистрация: 29.09.2010
Сообщения: 539
Версия Delphi: Delphi XE3
Репутация: 374
По умолчанию

Код:
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  
Старый 27.03.2013, 20:37
DOR DOR вне форума
Начинающий
 
Регистрация: 14.01.2011
Сообщения: 171
Версия Delphi: 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от Uniq!
Код:
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;

col0 должен не считать количество 0, а записать ввиде 00
Ответить с цитированием
  #9  
Старый 27.03.2013, 20:41
Аватар для Uniq!
Uniq! Uniq! вне форума
Местный
 
Регистрация: 29.09.2010
Сообщения: 539
Версия Delphi: Delphi XE3
Репутация: 374
По умолчанию

Кхм...
Код:
stroka_s_ky4ei_nylei := StringOfChar('0',col0);
Неужели так сложно...
Ответить с цитированием
Этот пользователь сказал Спасибо Uniq! за это полезное сообщение:
DOR (27.03.2013)
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 21:58.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025