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
Recent
MacOS post compilation sc...
by
marcou
[
Today
at 07:30:07 pm]
made hooking newinstance ...
by
Thaddy
[
Today
at 07:24:08 pm]
Printer Info
by
J-G
[
Today
at 06:58:55 pm]
water filling simulation
by
Dzandaa
[
Today
at 06:53:35 pm]
[New Component] ExtTabCtr...
by
wp
[
Today
at 06:48:14 pm]
XLibre, finally and fortu...
by
Thaddy
[
Today
at 06:37:12 pm]
Pdf Viewer in Pascal
by
Tomxe
[
Today
at 05:00:32 pm]
Sizes and SizeInt
by
LemonParty
[
Today
at 03:05:53 pm]
How can 'Canvas does not ...
by
J-G
[
Today
at 03:05:01 pm]
AArch64. Fast method to c...
by
Thaddy
[
Today
at 01:58:45 pm]
I found an actual use for...
by
Thaddy
[
Today
at 01:07:16 pm]
Strange Behaviour at Runt...
by
andrew Bubble
[
Today
at 12:41:49 pm]
Can /my/ AI help me with ...
by
microxa
[
Today
at 12:12:06 pm]
Knigo
by
CM630
[
Today
at 12:05:31 pm]
P.I.S.S. a PlugIn-framewo...
by
cdbc
[
Today
at 11:27:35 am]
[solved] rotate image pro...
by
speter
[
Today
at 10:03:42 am]
Lazarus Main and Gnome/Wa...
by
zeljko
[
Today
at 09:06:57 am]
TstringGrid read cell col...
by
Josh
[June 08, 2026, 11:05:23 pm]
Pascal for AI Agent CLI T...
by
schuler
[June 08, 2026, 10:35:41 pm]
is there a Base 26 / Radi...
by
Josh
[June 08, 2026, 08:54:36 pm]
FPC Unleashed (inline var...
by
Fibonacci
[June 08, 2026, 08:49:31 pm]
Notetask 1.1.4 - Free cro...
by
AlexanderT
[June 08, 2026, 04:55:38 pm]
Pixie: A lightweight HTML...
by
Tomxe
[June 08, 2026, 01:48:30 pm]
EasyLazFreeType Bug?
by
Tommi
[June 08, 2026, 10:57:47 am]
embed .jpg file into .pp ...
by
Thaddy
[June 08, 2026, 09:51:38 am]
« previous
next »
Print
Pages: [
1
]
Author
Topic: IntToStr bring me to lost hairs (Read 1045 times)
paule32
Hero Member
Posts: 645
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: 12896
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: 645
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: 19262
Glad to be alive.
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
objects are fine constructs. You can even initialize them with constructors.
paule32
Hero Member
Posts: 645
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: 19262
Glad to be alive.
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
objects are fine constructs. You can even initialize them with constructors.
paule32
Hero Member
Posts: 645
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