StrToInt — Функция Delphi

StrToInt и IntToStr вне модуля SysUtils

Delphi , Синтаксис , Преобразования

Статья StrToInt и IntToStr вне модуля SysUtils раздела Синтаксис Преобразования может быть полезна для разработчиков на Delphi и FreePascal.

Комментарии и вопросы

Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.

StrToInt — Функция Delphi

Есть ли аналоги сабжевых функций, но для работы с Cardinal или DWord ?

Может модули уже готовые для этих целей есть?

Почему например работает вот такая конструкция:

Ведь B не Integer?

А они разве не работают для них?

Чета я сомневаюсь. Ну если всё же ты прав, и они по типу не подходят, то

Описание
Функция форматирует элементы открытого массива Args в соответствии со строкой форматирования Format. В качестве результата функция возвращает отформатированную строку.
Информацию о строках формата см. в Приложении «Строки форматирования».

Почему например работает вот такая конструкция:
var
B: dword;

begin
Edit1.Text:= IntToHex(B, 8);
end;
Ведь B не Integer?

Это неявное приведение типов, оно разрешено между многими встроенными типами, так, byte, cardinal и int64 можно приводить к integer без явного type-кастинга, так же, например, тип pointer можно неявно привести к любому другому указательному типу. Такая не до конца строгая типизация (учитывая, что тип большей мощности можно привести к типу с меньшей) упрощает код, т.е. язык позволяет нам, вобщем-то, нарушать в данном случае типизацию, следовательно правильность кода с неявными преобразованиями типов не гарантируется, чего и следовало ожидать. Тем не мене, при использовании той же IntToStr, которая имеет оверлод для int64, Делфи идёт по пути приведения к взаимовключающим типам, так, передача cardinal-значения в функцию IntToStr создаст вызов оверлода с int64-аргументом вместо integer, т.е. IntToStr($ffffffff) вернёт как раз то, что нужно, т.к. образом неявный каст будет произведён из cardinal в int64, а не из cardinal в integer, что, конечно, безопаснее.

Функции Delphi

Стандартные функции Delphi:

Для проведения всевозможных математических вычислений и многочисленных преобразований язык программирования Delphi содержит библиотеки стандартных процедур и функций. Давайте подробнее рассмотрим стандартные функции Delphi.

Между значением и именем функции существует зависимость. Поэтому всякая функция может быть представлена как операнд некоторого выражения (к примеру, в инструкции присваивания). Для возведения числа в n-ую степень достаточно записать

откуда ln — функция, вычисляющая натуральный логарифм числа exp(x), exp — функция, вычисляющая экспоненту в степени x, x — число, n-ую степень которого надо найти, а n — степень числа x. Каждая функция обладает следующими характеристиками: тип значений, тип параметров.

Должно существовать соответствие между типом переменной (ей присваивается определенное значение функции) и типом функции. И в то же время необходимо соответствие между типом фактического параметра данной функции (фактический параметр — это параметр, который указывается при обращении к функции) и типом формального параметра. В противном случае компилятором выводится сообщение об ошибке.

Математические функции Delphi:

Библиотеки языка Delphi включаются в себя и множество математических функций:

Величину угла при использовании тригонометрических функций необходимо выражать в радианах. Чтобы преобразовать угол из градусов в радианы, используйте следующую формулу:

где a выражает угол в градусах; 3.1415926 означает число pi. На месте константы 3.1415926 с дробной частью для достижения большей точности чаще всего пользуются стандартной именованной константой pi. Тогда выражения для угла в пересчете в радианы будет выглядеть следующим образом:

Функции преобразования Delphi:

Наиболее частое использование функций преобразования связано с инструкциями, которые обеспечивают ввод/вывод какой-либо информации. Например, для вывода значения переменной c типом real в поле вывода диалогового окна (компонент Label), нужно провести преобразование числа в строку символов, которая собственно изображает данное число. Это можно достичь, применяя функцию FloatToStr, которая заменяет значение выражения (оно указано как параметр функции) его строковым представлением.

Пример.

В приведенном примере значение переменной m будете выведено в поле Label. В таблице ниже Вам будут представлены основные функции преобразования Delphi:

Применение функций Delphi:

В любом выражении функция используется как операнд. В качестве ее параметра можно выбрать переменную, константу, выражение определенного типа данных.

Примеры.

Структура функции Delphi

Как организована инструкция функции в языке Delphi? В любом языке программирования на первом этапе описания функции указывается ее заголовок. Далее за заголовком программист описывает раздел объявления констант const (если таковы имеются), затем занимается описанием раздела объявления типов type, далее следует раздел объявления переменных var и, наконец, раздел инструкций.

В приведенном примере в заголовке функции вначале указывается зарезервированное слово function, а следом идет имя функции. Далее в скобках программист перечисляет список параметров, и вслед за ним, используя символ «:», указывает тип значения функции. В конце каждого заголовка стоит символ «;». После заголовка следуют раздел констант, раздел типов, раздел переменных. Внутри раздела инструкций кроме констант и переменных, описанных соответственно в разделах const и var, может находится переменная result.

Когда инструкции функции завершат свое выполнение, значению переменной result присваивается значение функции. Таким образом, среди всех инструкций функций необходимое присутствие инструкции, которая бы присваивала переменной result окончательное значение функции. Обычно подобная инструкция есть последняя исполняемая инструкция функции. Представим пример функции FuntToKg, преобразующей фунты в килограммы.

TryStrToInt

Try to convert a string to an integer, and report on success.

Declaration

Source position: sysstrh.inc line 118

const s : string ;

Description

TryStrToInt tries to convert the string S to an integer, and returns True if this was succesful. In that case the converted integer is returned in I . If the conversion failed, (an invalid string, or the value is out of range) then False is returned.

Errors

None. On error, False is returned.

See also

Convert a string to an integer value.

Try to convert a string to an int64 value, and report on success.

Илон Маск рекомендует:  Как на borland с builder рассчитать хэш по алгоритму md5

Convert a string to an integer value, with a default value.

Convert a string to an Int64 value.

Convert a string to an Int64 value, with a default value

DelphiComponent.ru — бесплатно видеоуроки по Delphi, статьи, исходники

Процедуры и функции для работы со строками в Delphi

Строки очень часто используются в программах — хотя бы для вывода раз­личных сообщений пользователю, чтобы он не заблудился в интерфейсе. Ну, для таких простых случаев вполне достаточно тех сведений, которые вы получили на уроке, посвящённом строкам. Если же у вас более серьёз­ные намерения и вы хотите манипулировать строками по своему желанию (например, вы пишете какую-нибудь словесную игру вроде Балды или Ло­гогрифов), то в Delphi найдётся всё нужное и для таких любителей словес­ности и жонглирования приставками и суффиксами.

Для определённости в примерах будем считать, что

Когда мы изучали простые операции со строками, то рассматривали кон­катенацию строк с помощью оператора +. Но объединить две строки можно и функцией

которая возвращает «сумму» двух строк:

Для сравнения строк вместо операторов отношения можно использовать следующие функции.

Обе функции сравнивают строки s1 и s2. Первая — с учётом регистра букв (прописные/строчные), вторая — без учёта.

Эти функции возвращают значение

0, если строки равны;

Их нельзя применять к русским словам, поэтому лучше пользоваться функциями:

которые одинаково хорошо работают и с латинскими, и с русскими буква­ми.

Теперь перейдём к процедурам и функциям, которые выполняют со сло­вами более сложные действия.

Довольно часто нужно преобразовать все буквы слова либо к верхнему, либо к нижнему регистру. Если слова состоят только из латинских букв, то можно использовать функции:

Первая переводит слова в нижний регистр (строчные буквы), вторая — в верхний (прописные буквы). Для русских ( и для латинских ) букв годятся функции :

Функция AnsiLowerCase (S1) вернёт строку «смородина».

Функция AnsiUpperCase (’смородина’) вернёт строку «СМОРОДИНА».

Процедуры вывода сообщений на экран (обычно в метку или список) тре­буют в качестве параметра строку, а что делать, если нужно предъявить пользователю число? — Преобразовать число в строку! Это можно сде­лать и самостоятельно, но гораздо удобнее воспользоваться встроенными функциями Delphi.

Чаще других в программах применяют функции для преобразования це­лых чисел в строку:

Например, IntToStr (1234) вернёт строку «1234».

Для действительных чисел тоже имеется подобная функция

Если вы хотите узнать, как десятичное число записывается в 16-ричной системе счисления, примените к нему функции:

Например, IntToHex (12 34, 8) вернёт строку «000004D2», а IntToHex (2009, 4) — строку «07D9».

Второй параметр — Digits — задаёт число цифр в 16-ричном числе.

При вводе данных из файла или некоторых компонентов вместо числа мы получаем строку символов. И хотя она состоит из цифр, это не число. В этом случае поможет функция

Причём строка S может содержать не только десятичное, но и 16-ричное число.

Например, функции StrToInt(’$07D9’) и StrToInt(’2009’) вернут одно и то же число 2009.

Однако эта функция «опасна»: если в строке обнаружится хотя бы один неверный символ, возникнет ошибка. Если у вас есть обоснованные со­мнения в правильности строки, лучше обратиться к надёжной функции

Она возвращает TRUE, если строка преобразована в число без ошибок, и FALSE, если с ошибками. Переменная Value (в нашем примере i) хранит число.

В примере строка ‘$07D9s’ содержит неверный символ «s», поэтому функ­ция вернёт FALSE и строку печатать не нужно (на самом деле значение переменной i будет равно 2009, так как функция успеет конвертировать первые символы строки — до первой «нецифры»).

Так же можно использовать и процедуру:

V — переменная целого или действительного типа.

Code — переменная целого типа, в которой возвращается номер ошибочно­го символа в строке. Если таких символов нет, то значение этой перемен­ной будет равно нулю.

В результате выполнения этого примера будет напечатано число 2009.

Этот код также напечатает число 2009, но значение переменной i будет равно не нулю, как в первом случае, а 6, так как шестой символ строки не является 16-ричной цифрой.

Аналогичные функции для вещественных чисел:

В начале и/или конце строки могут присутствовать ненужные пробелы. От них легко избавиться , применив функции

Первая удаляет начальные пробелы, вторая — конечные, третья — и те, и другие. Эти функции возвращают новую строку — уже без пробелов.

Узнать длину строки (число символов в ней) можно с помощью функции

Например , Length (S1) вернёт 9, а Length(S2) — 7.

Ну, а теперь — самые интересные процедуры и функции!

Удаляем часть строки S от символа номер Index:

Здесь Count — число удаляемых символов.

Например, после выполнения процедуры:

строка si будет иметь значение «РОДИНА».

А после процедуры delete(s2,5,3); строка s2 будет урезана до «ПАРА».

Если значение переменной Index меньше единицы или больше длины строки, то строка останется без изменений. Ничего не слу­чится со строкой и если Count меньше единицы.

Если же Count больше, чем число символов в строке, начиная с In­dex, то будут удалены все символы до конца строки.

Процедура Insert действует противоположно — она вставляет подстроку Substr в строку Dest после символа номер Index:

Например, после выполнения процедуры insert (’З’, s1,6); строка s1 превратится в смешное слово «СМОРОЗДИНА».

А процедура insert (’КА’, s2,8); позволит нам насладиться неологиз­неологиз­мом «ПАРАШЮТКА».

Если же мы не хотим портить исходную строку, как это делает процедура Delete, то можем создать новую строку, вырезав из любой строки нужный нам кусок:

Например, строка s примет значение «ПАРА» после выполнения функции s:=copy(s2,1,4);

Обратите внимание: чтобы получить то же самое слово, что и в примере с delete(s2,5,3);, мы указали другие значение параметров в вызове функции!

Функция copy (s1,4,9) вернёт в переменную s слово «РОДИНА».

И последняя функция находит позицию подстроки substr в строке str. function Pos(const substr: string; const str: string): Integer;

Если в строке искомая подстрока встречается несколько раз, то первый вызов функции Pos вернёт позицию первого вхождения, после чего поиск нужно продолжить со следующей позиции. Например, в слове ФЕЛЬДФЕБЕЛЬ так можно найти обе «ели».

Если же подстроки в строке нет, то вернётся безнадёжный ноль!

StrToInt — Функция Delphi

Работа со строками Delphi позволяет извлечь из строки необходимую информацию и представить её в нужном виде. Система предоставляет весь спектр необходимых функций для работы со строками Delphi и преобразования строк Delphi в необходимые форматы:

  • числовой формат, целый и дробный с плавающей точкой;
  • формат времени, даты, даты-времени;
  • преобразование символов к верхнему или нижнему регистру;
  • сравнение строк, поиск в строке и копирование подстроки;
    и многие другие.
Илон Маск рекомендует:  Что такое код ming_setcubicthreshold

Непосредственно сами строки Delphi поддерживают единственную операцию, так называемую операцию конкатенации, то есть присоединения. Несмотря на «научное» название, операция конкатенации выполняет очень простую процедуру. С помощью операции конкатенации одна строка присоединяется к другой:

Результирующая строка S будет суммой двух слагаемых строк. Длина строки, то есть количество символов в строке, возвращается встроенной функцией

function Length(S: String): Integer;

Delphi работает со строками типа String, в котором длина строки записывается в начале строки, перед первым символом. Поэтому индекс первого символа в строке не 0, а 1. То есть, если:

S:=’Строка типа String’;

то S[1] — символ ‘С’, S[2] — символ ‘т’ , последний символ в строке — S[Length(S)], равный ‘g’.

Однако часто приходится иметь дело со строками типа PChar, которые использует операционая система Windows. В строках типа PChar длина строки определяется специальным символом конца строки — #0. Поэтому для использования функций Windows тип String необходимо предварительно переводить в тип PChar. Преобразование типа String в тип PChar выполняет функция

function PChar(S: String): PChar;

Для полноценной работы со строками Delphi используются следующие стандартные процедуры и функции:

Функции преобразования в числовой формат и обратно

Выполняя вычисления, используем для ввода данных и отображения результатов следующие функции, работающие со строками Delphi:

функция IntToStr(N: Integer): String
Преобразует целое число N в строку.
функция StrToInt(S: String): Integer
Преобразует строку S в целое число.
функция FloatToStr(X: Extended): String
Преобразует число с плавающей точкой X в строку.
функция StrToFloat(S: String): Extended
Преобразует строку S в число с плавающей точкой.

Процедуры и функции преобразования дат и времени

Сначала собственно функции, предоставляющие информацию о текущих дате и времени:

функция Now: TDateTime
Возвращает текущую дату и время.
функция Date: TDateTime
Возвращает текущую дату.
функция Time: TDateTime
Возвращает текущее время.

Далее, функции, работающие с составляющими даты и времени (год, месяц, число, день недели, часы, минуты, секунды и даже миллисекунды):

функция DayOfWeek(Date: TDateTime): Integer
Возвращает текущий номер дня недели: 1 — воскресенье, 7 — суббота.
процедура DecodeDate(Date: TDateTime; var Year, Month, Day: Word)
Разбивает дату Date на год — Year, месяц — Month и день — Day.
процедура DecodeTime(Time: TDateTime; var Hour, Min, Sec, MSec: Word)
Разбивает время Time на час — Hour, минуты — Min, секунды — Sec и миллисекунды — MSec.
функция EncodeDate(Year, Month, Day: Word): TDateTime
Объединяет год — Year, месяц — Month и день — Day в значение типа TDateTime.
функция EncodeTime(Hour, Min, Sec, MSec: Word): TDateTime
Объединяет час — Hour, минуты — Min, секунды — Sec и миллисекунды — MSec в значение типа TDateTime.

Наконец, собственно, функции, переводящие дату и время из формата TDateTime в строчный формат:

функция DateTimeToStr(DateTime: TDateTime): String
Преобразует дату и время DateTime в строку.
функция DateToStr(Date: TDateTime): String
Преобразует дату Date в строку.
функция TimeToStr(Time: TDateTime): String
Преобразует время Time в строку.

Следующие функции работают с параметрами возвращаемой строки. Функции с приставкой Ansi работают в том числе и с кириллическими символами. Если символы в строках предполагаются исключительно латинские, то можно использовать аналогичные функции, но без приставки Ansi:

функция AnsiLowerCase(const S: String): String
Возвращает строку S, преобразованную к нижнему регистру.
функция AnsiUpperCase(const S: String): String
Возвращает строку S, преобразованную к верхнему регистру.
функция Length(const S: String): Integer
Возвращает количество символов в строке S.
функция Trim(const S: String): String
Удаляет из строки S начальные и завершающие пробелы и управляющие символы.
функция TrimLeft(const S: String): String
Удаляет из строки S начальные пробелы и управляющие символы.
функция TrimRight(const S: String): String
Удаляет из строки S завершающие пробелы и управляющие символы.

Следующие функции сравнивают две строки между собой:

функция AnsiCompareStr(const S1, S2: String): Integer
Сравнивает две строки S1 и S2 с учётом регистра символов.
Возвращает значение 0 если S1>S2
функция AnsiCompareText(const S1, S2: String): Integer
Сравнивает две строки S1 и S2 без учёта регистра символов.
Возвращает значение 0 если S1>S2

Следующие функции осуществляют поиск в текущей строке подстроки, вставляют, удаляют или заменяют подстроку:

функция Pos(Substr: String; Str: String): Integer
Возвращает позицию (индекс) первого вхождения Substr в строке Str. Если Substr нет в Str, возвращает 0.
функция Insert(Source: String; var S: String; Index: Integer): Integer
Вставляет строку Source в строку S, начиная с номера символа, равного Index
процедура Delete(var S: String; Index, Count: Integer)
Удаляет из строки S подстроку, начинающуюся с номера символа, равного Index, и содержащую до Count символов.
функция StringReplace(const S, OldPattern, NewPattern: string; Flags: TReplaceFlags): String
Заменяет в строке S подстроку OldPattern на строку NewPattern с учётом флага TReplaceFlags. Для работы с этой функцией нужно создать переменную типа TReplaceFlags — это множество, и включить в него одно или оба значения из следующих:
rfReplaceAll — будут заменены все вхождения. Если это значение не будет включено во множество, то будет заменено только первое вхождение;
rfIgnoreCase — замена будет без учёта регистра символов. Если это значение не будет включено во множество, то замена будет чувствительна к регистру символов.

Наконец, функция копирования части строки:

функция Copy(S: String; Index, Count: Integer): String
Возвращает подстроку строки S, начиная с номера символа, равного Index и содержащую до Count символов.

Помимо прочего, эту функцию можно использовать для вывода нецелого числа с нужным количеством цифр после запятой. Для этого, сначала получаем строку из числа формата Real, затем находим функцией Pos позицию запятой в этой строке, прибавляем нужное количество и копируем в результат это количество символов. Вот готовая функция:

function RealToStr(X: Real; Count: Integer): String; //Count — количество цифр после запятой
var S: String;
N: Integer;
begin
S:=FloatToStr(X); //после запятой — длинная последовательность цифр
//DecimalSeparator — константа, содержащая истинный разделитель целой и дробной частей числа N:=Pos(DecimalSeparator, S); //позиция запятой в строке
//вычисляем длину строки с нужным количеством знаков после запятой:
if N=0 //если в строке нет запятой — это целое число, и
then N:=Length(S) //тогда просто выводим это число
else N:=N+Count; //иначе вычисляем длину строки
Result:=Copy(S, 1, N); //копируем часть строки в результат
end;

Или вот, к примеру, текст модуля, обеспечивающего ввод в компонент Edit только чисел.

StrToInt — Функция Delphi

The Delphi function StrToInt for string-to-integer conversions generates an exception if the given string does not represent a valid integer. Examples: StrToInt(‘ABC’) or StrToInt(‘1.5’). That’s a nice thing for the automatic validation of user input: if you try to convert an invalid value that was entered, such as into an Edit box, then Delphi automatically displays an error message.

Илон Маск рекомендует:  Меню и навигация

But sometimes you don’t want this behaviour, especially when you want to convert several strings into integer numbers, such as the stuff entered in a bunch of Edit boxes, or the strings of a StringGrid, a ListBox. Then it would be annoying to show an error message for every conversion that goes wrong — imagine 100 error messages, and each time the user has to click a button to close the dialog window :p

If you use StrToIntDef (string-to-integer-default) instead, you’ll never get an exception. If the string is invalid, then this function will return the default value that you provided. Example: StrToIntDef(‘ABC’, 0) returns 0.

Here’s a simple source code example, using a TEdit and TLabel components:

The user has to enter the desired amounts of products into several edit boxes. After clicking a button, the amounts are displayed in labels. But if an amount entered is inval >0 was entered:

Another source code example, this time with a stringgrid:

A stringgrid contains numbers in its first and in its second column, that were collected earlier on from user inputs — but maybe there are some invalid values.
You want to display the sums of the numbers in the third column. If a string is invalid (such as ‘ABC’ or ‘1.5’) or if a number is negative , then display the word ‘Invalid’ :

Функции преобразования

Функции преобразования (табл. 1.7) наиболее часто используются в инструкциях, обеспечивающих ввод и вывод информации. Например, для того чтобы вывести в поле вывода (компонент Label) диалогового окна значение переменной типа real, необходимо преобразовать число в строку символов, изображающую данное число. Это можно сделать при помощи функции FloatToStr, которая возвращает строковое представление значения выражения, указанного в качестве параметра функции.

Например, инструкция Labeii.caption := FioatTostr(x) выводит значе-ние переменной х в поле Labeii.

Таблица 1.7. Функции преобразования

Chr(n) IntToStr (k)

Символ, код которого равен n Строка, являющаяся изображением целого k

Строка, являющаяся изображением вещественного n

FloatToStrF(n, f , k,m)

Строка, являющаяся изображением вещественного п. При вызове функции указывают: f — формат (способ изображения); k — точность (нужное общее количество цифр); m — количество цифр после десятичной точки

Целое, изображением которого является строка s

Вещественное, изображением которого является строка s

Целое, полученное путем округления n по известным правилам

Целое, полученное путем отбрасывания дробной части n

Дробное, представляющее собой дробную часть вещественного n

Дробное, представляющее собой целую часть вещественного n

НОВОСТИ ФОРУМА
Рыцари теории эфира
01.10.2020 — 05:20: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ — Upbringing, Inlightening, Education ->
[center][Youtube]69vJGqDENq4[/Youtube][/center]
[center]14:36[/center]
Osievskii Global News
29 сент. Отправлено 05:20, 01.10.2020 г.’ target=_top>Просвещение от Вячеслава Осиевского — Карим_Хайдаров.
30.09.2020 — 12:51: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ — Upbringing, Inlightening, Education ->
[center][Ok]376309070[/Ok][/center]
[center]11:03[/center] Отправлено 12:51, 30.09.2020 г.’ target=_top>Просвещение от Дэйвида Дюка — Карим_Хайдаров.
30.09.2020 — 11:53: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ — Upbringing, Inlightening, Education ->
[center][Youtube]VVQv1EzDTtY[/Youtube][/center]
[center]10:43[/center]

интервью Раввина Борода https://cursorinfo.co.il/all-news/rav.
мой телеграмм https://t.me/peshekhonovandrei
мой твиттер https://twitter.com/Andrey54708595
мой инстаграм https://www.instagram.com/andreipeshekhonow/

[b]Мой комментарий:
Андрей спрашивает: Краснодарская синагога — это что, военный объект?
— Да, военный, потому что имеет разрешение от Росатома на манипуляции с радиоактивными веществами, а также иными веществами, опасными в отношении массового поражения. Именно это было выявлено группой краснодарцев во главе с Мариной Мелиховой.

[center][Youtube]CLegyQkMkyw[/Youtube][/center]
[center]10:22 [/center]

Доминико Риккарди: Россию ждёт страшное будущее (хотелки ЦРУ):
https://tainy.net/22686-predskazaniya-dominika-rikardi-o-budushhem-rossii-sdelannye-v-2000-godu.html

Завещание Алена Даллеса / Разработка ЦРУ (запрещено к ознакомлению Роскомнадзором = Жид-над-рус-надзором)
http://av-inf.blogspot.com/2013/12/dalles.html

[center][b]Сон разума народа России [/center]

[center][Youtube]CLegyQkMkyw[/Youtube][/center]
[center]10:22 [/center]

Доминико Риккарди: Россию ждёт страшное будущее (хотелки ЦРУ):
https://tainy.net/22686-predskazaniya-dominika-rikardi-o-budushhem-rossii-sdelannye-v-2000-godu.html

Завещание Алена Даллеса / Разработка ЦРУ (запрещено к ознакомлению Роскомнадзором = Жид-над-рус-надзором)
http://av-inf.blogspot.com/2013/12/dalles.html

[center][b]Сон разума народа России [/center]

TryStrToInt

Try to convert a string to an integer, and report on success.

Declaration

Source position: sysstrh.inc line 118

const s : string ;

Description

TryStrToInt tries to convert the string S to an integer, and returns True if this was succesful. In that case the converted integer is returned in I . If the conversion failed, (an invalid string, or the value is out of range) then False is returned.

Errors

None. On error, False is returned.

See also

Convert a string to an integer value.

Try to convert a string to an int64 value, and report on success.

Convert a string to an integer value, with a default value.

Convert a string to an Int64 value.

Convert a string to an Int64 value, with a default value

Использование функций TryStrToFloat и TryStrToInt для проверки ввода

В старших версиях Delphi введены две полезные функции: TryStrToInt и TryStrToFloat. Эти функции в качестве аргументов используют строку, которую нужно конвертировать в целое или вещественное значение и переменную, куда будет записан результат в случае успешного преобразования. Если преобразование неуспешно – функция возвращает false.

function TryStrToInt(const S: string; out Value: Integer): Boolean;

function TryStrToFloat(const S: string; out Value: Double): Boolean; overload;

Фрагмент кода с использованием функции TryStrToFloat приведен ниже. Следует заметить, что в качестве аргумента функция принимает вещественное число с десятичным разделителем, установленным в данной операционной системе.

if(TryStrToFloat(EditMu.Text, Mu)=false) then

ShowMessage(‘Правильно введите параметр Mu.’);

2.5. Кнопки для запуска/остановки расчета

Часто программисты при разработке расчетных программ блокируют поля ввода от изменения пользователем значений в них на время проведения расчета. Для этого при запуске расчета поля делают недоступными (Edit1.Enabled:= false;) или устанавливают для них свойство ReadOnly (Edit1.ReadOnly:= true;). Оставляем этот момент на рассмотрение разработчика. Это возможная, но не обязательная мера, поскольку, пока программа считает, она не проверяет поля ввода. А вот на работу кнопок управления обязательно нужно обратить внимание. Если расчет методом Монте-Карло достаточно хорошо обеспечен, т.е. проводится с большой статистикой, программа может считать несколько секунд. В этом случае разработчик должен предусмотреть наличие кнопки, позволяющей прервать расчет. Закономерно предположить, что перед запуском программы на расчет кнопка СТАРТ активна, а кнопка СТОП недоступна для использования. Когда идет расчет, кнопку СТАРТ делают недоступной, а кнопку СТОП доступной к использованию. По окончании расчета или в случае, когда расчет был прерван, кнопки возвращаются в первоначальное состояние. Один из вариантов работы с кнопками приведен в виде фрагмента кода ниже. В этом случае используется одна кнопка, которая переименовывается в зависимости от действий программы.

if Button1.Caption = ‘Старт’ then begin

ProcRun; //Запуск расчета, проверка не нажата ли кнопка СТОП

else if Button1.Caption = ‘Стоп’ then begin

ProcStop; //Остановка расчета, запоминание статистики

Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL