
Многие пользуются функциями StrToInt, TryStrToInt и IntToStr из модуля SysUtils для преобразования типов. Это удобно, но когда встает вопрос об отключении лишних модулей (когда пишем на api), непрактично.
Для таких же целей есть стандартные функции val и str из pascal, которые перекочевали в delphi, но о наличии которых в нём многие не подозревают. Писал я как-то одну консольную программу, вот и встал лицом к лицу с этой задачей. Для удобства написал аналоги дельфийский функция с использованием val и str.
StrToInt
function StrToInt(s:string):integer;
var
t:integer;
c:integer;
begin
val(s,t,c);
if c=0 then
Result:=t
else
Result:=0;
end;
TryStrToInt
function TryStrToInt(s:string;var i:integer):boolean;
var
t:integer;
c:integer;
begin
val(s,t,c);
if c=0 then begin
i:=t;
Result:=True;
end else
Result:=False;
end;
IntToStr
function IntToStr(i:integer):string; var s:string; begin Str(i,s); Result:=s; end;
http://parsers.info, crystalbit
От SysUtils можно отказаться, а вот от хороших дорог – нет. Строительная дорожная техника делает шаги вперёд, и это радует.
Куль, спасибо. Вот еще :
function FileExists(param: string): boolean; begin if _lopen(PChar(param), OF_SHARE_COMPAT) = HFILE_ERROR then Result:=False else Result:= true; end;Да кстати, IntToStr можно использовать и как floatToStr, нужно только заменить процедурку на
str(i:2:2, s);
Где 2 – количество значащих цифр после запятой.
Спасибо, буду продолжать эту тему) Твои замечания не забуду
а я что-то не понял зачем отказываться от использования SysUtils ?
Если программу пишешь на чистом winapi, то иногда стремишься уменьшить размер программы. В модуле SysUtils множество других функций, кода, который увеличивает размер нашей программы.
ааа, ну в прицепи логично, я просто подумал что может у вас фобия к SysUtils))) как у мну к MS