Lazarus
Home
Help
TinyPortal
Search
Login
Register
Lazarus
»
Forum
»
Programming
»
General
»
IntToStr bring me to lost hairs
Free Pascal
Website
Downloads
Wiki
Documentation
Bugtracker
Mailing List
Lazarus
Website
Downloads (Laz+FPC)
Packages (OPM)
FAQ
Wiki
Documentation (RTL/FCL/LCL)
Bugtracker
CCR Bugs
GIT
Mailing List
Other languages
Foundation
Website
Useful Wiki Links
Project Roadmap
Getting the Source
Screenshots
How to use the forum
Forum Rules
About donations (wiki)
Bookstore
Computer Math and Games in Pascal
(preview)
Lazarus Handbook
Search
Advanced search
WIKI Timeout issues
Please read here if you have trouble connecting to the wiki
Recent
Circumvent the assignment...
by
bytebites
[
Today
at 08:41:02 am]
Triple Gosper Space Filli...
by
Boleeman
[
Today
at 08:21:47 am]
Fragmented Window Grid Pa...
by
Boleeman
[
Today
at 07:55:53 am]
new private messages fly ...
by
Nitorami
[
Today
at 07:55:45 am]
About Skia graphics engin...
by
ALLIGATOR
[
Today
at 05:57:36 am]
Is there a Lazbuild compi...
by
440bx
[
Today
at 04:10:23 am]
Setting up an ARM embedde...
by
Ruptor
[
Today
at 12:44:58 am]
Tedit control that adjust...
by
simsee
[
Today
at 12:36:13 am]
Compare two text lines an...
by
simone
[
Today
at 12:04:05 am]
ChatGPT and ObjectPascal ...
by
Joanna
[July 12, 2025, 08:02:23 pm]
problem by export and imp...
by
paule32
[July 12, 2025, 07:43:53 pm]
Searching for current wor...
by
Thaddy
[July 12, 2025, 07:22:28 pm]
Has anyone installed TeeB...
by
Thaddy
[July 12, 2025, 07:06:19 pm]
Fpcupdeluxe
by
DonAlfredo
[July 12, 2025, 04:45:54 pm]
[SOLVED] SQLite query to ...
by
DanishMale
[July 12, 2025, 04:37:24 pm]
Pulsating Radial Segments...
by
Boleeman
[July 12, 2025, 04:11:52 pm]
Object Pascal Playing Car...
by
marcov
[July 12, 2025, 02:53:25 pm]
Fast Canvas Library V1.05...
by
Gigatron
[July 12, 2025, 02:49:43 pm]
Trouchet Koch (Snowflake ...
by
Boleeman
[July 12, 2025, 02:34:31 pm]
Extended Module Player
by
Gigatron
[July 12, 2025, 02:27:09 pm]
controls.lpr(731,15) Erro...
by
Martin_fr
[July 12, 2025, 11:44:05 am]
Amigo programming languag...
by
paxscript
[July 12, 2025, 08:48:11 am]
[Solved]Garbled web page ...
by
PeterHu
[July 12, 2025, 08:34:38 am]
Rainbowed Rotating Square...
by
Boleeman
[July 12, 2025, 07:33:00 am]
[Solved]Retrieving wrong ...
by
PeterHu
[July 12, 2025, 03:19:47 am]
« previous
next »
Print
Pages: [
1
]
Author
Topic: IntToStr bring me to lost hairs (Read 737 times)
paule32
Hero Member
Posts: 569
One in all. But, not all in one.
IntToStr bring me to lost hairs
«
on:
May 23, 2025, 04:41:25 pm »
I have this Function:
Code: Pascal
[Select]
[+]
[-]
function
IntToStr32
(
AValue
:
Integer
)
:
PChar
;
stdcall
;
export
;
var
temp
:
PChar
;
begin
temp
:
=
StrAlloc
(
64
)
;
_itoa
(
AValue
,
temp
,
10
)
;
if
AValue
=
123
then
writeln
(
'temp: '
+
temp
)
;
Exit
(
temp
)
;
end
;
when I call it with IntToStr32(123) I get no writeln
the Function _itioa is:
Code: Pascal
[Select]
[+]
[-]
function
_itoa
(
Value
:
Integer
;
Buffer
:
PChar
;
Radix
:
Integer
)
:
PChar
;
cdecl
;
external
'msvcrt.dll'
name
'_itoa'
;
But the following Code works:
Code: Pascal
[Select]
[+]
[-]
function
IntToStr32
(
AValue
:
Integer
)
:
PChar
;
stdcall
;
export
;
var
temp
:
PChar
;
begin
AValue
:
=
123
;
temp
:
=
StrAlloc
(
64
)
;
_itoa
(
AValue
,
temp
,
10
)
;
if
AValue
=
123
then
writeln
(
'temp: '
+
temp
)
;
Exit
(
temp
)
;
end
;
Logged
MS-IIS - Internet Information Server, Apache, PHP/HTML/CSS, MinGW-32/64 MSys2 GNU C/C++ 13 (-stdc++20), FPC 3.2.2
A Friend in need, is a Friend indeed.
marcov
Administrator
Hero Member
Posts: 12314
FPC developer.
Re: IntToStr bring me to lost hairs
«
Reply #1 on:
May 23, 2025, 04:45:19 pm »
_itoa has a return value. This is so you know how many characters you have written so that you can provide proper zero terminating.
Logged
paule32
Hero Member
Posts: 569
One in all. But, not all in one.
Re: IntToStr bring me to lost hairs
«
Reply #2 on:
May 23, 2025, 04:50:57 pm »
when I do:
temp := _itoa(AValue, temp, 10);
or:
StrCopy(temp, _itoa(AValue, temp, 10));
I get same results:
temp: 20971088
But not 123.
Logged
MS-IIS - Internet Information Server, Apache, PHP/HTML/CSS, MinGW-32/64 MSys2 GNU C/C++ 13 (-stdc++20), FPC 3.2.2
A Friend in need, is a Friend indeed.
Thaddy
Hero Member
Posts: 17414
Ceterum censeo Trumpum esse delendum (Tnx Charlie)
Re: IntToStr bring me to lost hairs
«
Reply #3 on:
May 23, 2025, 05:00:39 pm »
If you see a
pointer
value why do you stop thinking about what the pointer points to?
Also,
Why do you use C libraries for that?
The Pascal compiler handles that just as efficient.
If I wasn't already certified mad, you will make me even more mad with such questions where you do not do your own research.
Funny you focus on 32 Intel Windows, which is not obtainable from MS anymore.
«
Last Edit: May 23, 2025, 05:13:53 pm by Thaddy
»
Logged
Due to censorship, I changed this to "Nelly the Elephant". Keeps the message clear.
paule32
Hero Member
Posts: 569
One in all. But, not all in one.
Re: IntToStr bring me to lost hairs
«
Reply #4 on:
May 23, 2025, 05:13:14 pm »
good news:
I have found a Solution:
Code: Pascal
[Select]
[+]
[-]
function
IntToStr32
(
Value
:
Integer
)
:
string
;
stdcall
;
export
;
var
Buffer
:
array
[
0
..
31
]
of
Char
;
Temp
:
PChar
;
Negative
:
Boolean
;
Digit
:
Integer
;
Len
:
Integer
;
begin
Len
:
=
0
;
Temp
:
=
@
Buffer
[
0
]
;
Buffer
[
0
]
:
=
#0
;
Negative
:
=
Value <
0
;
if
Negative
then
Value
:
=
-
Value
;
repeat
Digit
:
=
Value
mod
10
;
Move
(
Buffer
[
0
]
,
Buffer
[
1
]
,
Len
+
1
)
;
Buffer
[
0
]
:
=
Chr
(
Ord
(
'0'
)
+
Digit
)
;
Inc
(
Len
)
;
Value
:
=
Value
div
10
;
until
Value
=
0
;
if
Negative
then
begin
Move
(
Buffer
[
0
]
,
Buffer
[
1
]
,
Len
+
1
)
;
Buffer
[
0
]
:
=
'-'
;
Inc
(
Len
)
;
end
;
SetString
(
Result
,
Buffer
,
Len
)
;
end
;
Logged
MS-IIS - Internet Information Server, Apache, PHP/HTML/CSS, MinGW-32/64 MSys2 GNU C/C++ 13 (-stdc++20), FPC 3.2.2
A Friend in need, is a Friend indeed.
Thaddy
Hero Member
Posts: 17414
Ceterum censeo Trumpum esse delendum (Tnx Charlie)
Re: IntToStr bring me to lost hairs
«
Reply #5 on:
May 23, 2025, 05:15:02 pm »
Yup, the setstring trick. (it is not a trick!)
One day you will learn.
Your code is still highly inefficient, though: you should use val(), which is also used by inttostr.
Then again: we discussed that.... and you did not understand that.
This part is exceptionally bad, what are you trying there?
Code: Pascal
[Select]
[+]
[-]
repeat
Digit
:
=
Value
mod
10
;
Move
(
Buffer
[
0
]
,
Buffer
[
1
]
,
Len
+
1
)
;
Buffer
[
0
]
:
=
Chr
(
Ord
(
'0'
)
+
Digit
)
;
Inc
(
Len
)
;
Value
:
=
Value
div
10
;
until
Value
=
0
;
Makes no sense.
«
Last Edit: May 23, 2025, 05:28:40 pm by Thaddy
»
Logged
Due to censorship, I changed this to "Nelly the Elephant". Keeps the message clear.
paule32
Hero Member
Posts: 569
One in all. But, not all in one.
Re: IntToStr bring me to lost hairs
«
Reply #6 on:
May 23, 2025, 06:48:49 pm »
it is not the efficency that I looking for.
I looking for workable...
Logged
MS-IIS - Internet Information Server, Apache, PHP/HTML/CSS, MinGW-32/64 MSys2 GNU C/C++ 13 (-stdc++20), FPC 3.2.2
A Friend in need, is a Friend indeed.
Print
Pages: [
1
]
« previous
next »
Lazarus
»
Forum
»
Programming
»
General
»
IntToStr bring me to lost hairs
TinyPortal
© 2005-2018