Валентин Озеров - Советы по Delphi. Версия 1.4.3 от 1.1.2001
Название: | Советы по Delphi. Версия 1.4.3 от 1.1.2001 | |
Автор: | Валентин Озеров | |
Жанр: | Современные российские издания, Литература ХXI века (эпоха Глобализации экономики), Программирование: прочее, Pascal, Delphi, Lazarus и т.п. | |
Изадано в серии: | неизвестно | |
Издательство: | неизвестно | |
Год издания: | - | |
ISBN: | неизвестно | |
Отзывы: | Комментировать | |
Рейтинг: | ||
Поделись книгой с друзьями! Помощь сайту: донат на оплату сервера |
Краткое содержание книги "Советы по Delphi. Версия 1.4.3 от 1.1.2001"
…начиная с 1001. Смотрите другие файлы…
Читаем онлайн "Советы по Delphi. Версия 1.4.3 от 1.1.2001". [Страница - 2]
- 1
- 2
- 3
- 4
- . . .
- последняя (197) »
Кстати, втоpая из них мне очень пpигодилась для полyчения экспоненты числа. Имеется в видy экспонента: X=1E 13 [001193]
Почему непpавильно pаботает функция StrToFloat?
Nomadic советует:Пишу даже прямо StrToFloat('32.34'), к примеру, получаю исключение «'32.34' is not valid float». Если пишу число без десятичной точки, то все ОК. А какой у тебя DecimalSeparator? В Russian settings почему-то по умолчанию считается, что разделитеь дроби – запятая. Пеpеустанови пpи запуске пpогpаммы
DecimalSeparator := '.';
Или пользуйся этой функцией так:
StrToFloat('32,24');
Число строкой X
Сергей AKA WildSery прислал свой вариант:Привожу мой вариант, написал для своего приложения за 20 минут. В силу специфики приложения не утруждал себя прописью полностью "рублей" и "копеек", а ограничился "руб." и "коп.", а также не было необходимости в знаке числа, по это все добавляется буквально 3-4 строками.
function currency2str (value: double): string;
const hundreds: array [0..9] of string = ('',' сто',' двести',' триста',' четыреста',' пятьсот',' шестьсот',' семьсот',' восемьсот',' девятьсот');
tens: array [0..9] of string = ('','',' двадцать',' тридцать',' сорок',' пятьдесят',' шестьдесят',' семьдесят',' восемьдесят',' девяносто');
ones: array [0..19] of string = ('','','',' три',' четыре',' пять',' шесть',' семь',' восемь',' девять',' десять',' одиннадцать',' двенадцать',' тринадцать',' четырнадцать',' пятнадцать',' шестнадцать',' семнадцать',' восемнадцать',' девятнадцать');
razryad: array [0..6] of string = ('',' тысяч',' миллион',' миллиард',' триллион',' квадриллион',' квинтиллион');
var s: string; i: integer; val: int64;
function shortnum(s: string; raz: integer): string;
begin
Result:=hundreds[StrToInt(s[1])];
if strtoint(s)=0 then exit;
if s[2]<>'1' then begin
Result:=Result+tens[StrToInt(s[2])];
case strtoint(s[3]) of
1: if raz=1 then result:=result+' одна' else result:=result+' один';
2: if raz=1 then result:=result+' две' else result:=result+' два';
else result:=result+ones[strtoint(s[3])];
end;
Result:=Result+razryad[raz];
case strtoint(s[3]) of
0,5,6,7,8,9: if raz>1 then result:=result+'ов';
1: if raz=1 then result:=result+'а';
2,3,4: if raz=1 then result:=result+'и' else if raz>1 then result:=result+'а';
end;
end else begin
Result:=Result+ones[StrToInt(Copy(s,2,2))];
Result:=Result+razryad[raz];
if raz>1 then result:=result+'ов';
end;
end;
begin
val:=Trunc(value);
if val=0 then begin result:='ноль'; exit; end;
s:=IntToStr(val); Result:=''; i:=0;
while length(s)>0 do begin
Result:=shortNum(Copy('00'+s,Length('00'+s)-2,3),i)+Result;
if length(s)>3 then s:=copy(s,1,length(s)-3) else s:='';
inc(i);
end;
s:=IntToStr(Trunc((value-val)*100+0.5));
Result:=Result+' руб. '+s+' коп.';
end;
Даты
Добавление даты и времени в компонент Memo
Delphi 1{ Следующий код вставляет значение даты/времени в memo-поле. }
Var
s : string;
begin
s := DateToStr( Date ) + ' ' + TimeToStr( Time ) + ' :';
Memo1.Lines.Insert(0, s);
Memo1.SetFocus;
Memo1.SelStart := Length(s);
Memo1.SelLength := 0;
Вычисление даты Пасхи II
Delphi 1function easter (year: integer): tdatetime;
{----------------------------------------------------------------}
{ Вычисляет и возвращает день Пасхи определенного года. }
{ Идея принадлежит Mark Lussier, AppVision <MLussier@best.com>. }
{ Скорректировано для предотвращения переполнения целых, если по }
{ ошибке передан год с числом 6554 или более. }
{----------------------------------------------------------------}
var
nMonth, nDay, nMoon, nEpact, nSunday,
nGold, nCent, nCorx, nCorz: Integer;
begin
{ Номер Золотого Года в 19-летнем Metonic-цикле: }
nGold := (Year mod 19) + 1;
{ Вычисляем столетие: }
nCent := (Year div 100) + 1;
{ Количество лет, в течение которых отслеживаются високосные года… }
{ для синхронизации с движением солнца: }
nCorx := (3 * nCent) div 4 – 12;
{ Специальная коррекция для синхронизации Пасхи с орбитой луны: }
nCorz := (8 * nCent + 5) div 25 – 5;
{ Находим воскресенье: }
nSunday := (Longint(5) * Year) div 4 – ncorx – 10;
{ ^ Предохраняем переполнение года за отметку 6554}
{ Устанавливаем Epact – определяем момент полной луны: }
nEpact := (11 * nGold + 20 + nCorz – nCorx) mod 30;
if nepact < 0 then nEpact := nEpact + 30;
if ((nepact = 25) and (ngold > 11)) or (nepact = 24) then nEpact := nEpact + 1;
{ Ищем полную луну: }
nMoon := 44 – nEpact;
if nmoon < 21 then nMoon := nMoon + 30;
{ Позиционируем на воскресенье: }
nMoon := nMoon + 7 – ((nSunday + nMoon) --">- 1
- 2
- 3
- 4
- . . .
- последняя (197) »
Книги схожие с «Советы по Delphi. Версия 1.4.3 от 1.1.2001» по жанру, серии, автору или названию:
Олег Сергеевич Фридом (Гитарист) - 800 аккордов на гитаре с песенным приложением. Версия 3 Жанр: Для струнно-щипковых инструментов Год издания: 2002 |
Вячеслав Владимирович Меньшиков - Ржев – Сталинград. Скрытый гамбит маршала Сталина Жанр: Военная документалистика и аналитика Год издания: 2012 |
Тим Вейнер - ФБР. Правдивая история Жанр: Спецслужбы Год издания: 2014 |
Олег Пауллер - Псы войны. Дневники Шеннона Жанр: Приключения Год издания: 2018 |