Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

IntToStr без System.pas [D7, WinXP]


Страницы:   1 2 3

diimon ©   (2007-09-04 07:18:00) 

у меня проблема: хочу написать маленькое приложение(модули System.pas и SysInit.pas обрезаны)
мне необходимы функции IntToStr и StrToInt, но я не знаю как их теперь реализовать, думал выдернуть их из оригинального System.pas, но там одна функция тянет за собой другую... вообщем ничего у меня не выходит. Что делать??(Ассемблер я к сожалению почти не знаю :(  )


diimon   (2007-09-04 13:14:00) [41]


> tmp   (04.09.07 08:19) [1]
> function IntToStr(N: Int64): string;begin  Str(N,Result);
> end;


Компилятор ругается на эту строку "Str(N,Result);"

System unit out of date or corrupted: missing '@str0int64'


Anatoly Podgoretsky   (2007-09-04 12:03:00) [42]

> sniknik  (04.09.2007 11:18:08)  [8]

Для особо озабоченных, там есть генетически модифицированый System.pas


palva   (2007-09-04 11:25:00) [43]

не знаком с KOL?
Да, теперь я понял вопрос.


sniknik   (2007-09-04 11:18:00) [44]

palva ©   (04.09.07 11:00) [7]
не знаком с KOL? там есть замены которые можно скомпилить и использовать.
есть и описание как это сделать (не только для KOL/в нем, видел еще в статьях по минимизации получающегося екзешника)

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


palva   (2007-09-04 11:00:00) [45]

> модули System.pas и SysInit.pas обрезаны
Можно их вообще стереть или забить мусором. На создание программ это не повлияет. Компилятор использует модули System.dcu и SysInit.dcu из папки LIB. Вот без них проблемно. Без System.dcu вообще невозможно получить программу, даже если вы не будете использовать IntToStr.


clickmaker   (2007-09-04 10:27:00) [46]

msvcrt.dll или ntdll.dll
atoi
_itoa


homm   (2007-09-04 09:38:00) [47]

> думал выдернуть их из оригинального System.pas

Опа. А что, они не в SysUtils.pas разве объявлены?


Anatoly Podgoretsky   (2007-09-04 09:01:00) [48]

Может тебе в KOL?


Anatoly Podgoretsky   (2007-09-04 09:00:00) [49]

Если не использовать STR/VAL, то функции настолько тривиальны, что написание с нуля, занимает ничтожное время.


tmp   (2007-09-04 08:29:00) [50]

В StrToIntDef лишняя переменная, лучше так:

function StrToIntDef1(const S: string; DefVal: Integer): Cardinal;
var
 Code: Integer;
begin
 Val(S,Result,Code);
 if Code > 0 then Result := DefVal;
end;


tmp   (2007-09-04 08:19:00) [51]

function IntToStr(N: Int64): string;
begin
 Str(N,Result);
end;

function StrToIntDef(const S: string; DefVal: Integer): Cardinal;
var
 N: Cardinal;
 Code: Integer;
begin
 Val(S,N,Code);
 if Code = 0 then
   Result := N
 else
   Result := DefVal;
end;


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо