|
| fra 10 til 0010 ( inttostr ) Fra : Hans Nikolajsen |
Dato : 15-11-02 15:39 |
|
Ja dav.
Jeg skal lave en string der på 4 tegn ud fra en integer!
eks.:
var
tekst: string;
x: integer;
bla. bla.
x := 10;
tekst := FloatToTextFmt( ????? x ????)
label1.caption := tekst;
så står der 0010 på skærmen og ikke bare 10!
Hvordan gør jeg det!
--
M.v.h.
Hans Nikolajsen
E-mail: hn2test@stofanet.dk
Homepage: http://home1.stofanet.dk/jadav/
Fjern test fra min E-mail for at skrive til mig!
| |
Hans Nikolajsen (15-11-2002)
| Kommentar Fra : Hans Nikolajsen |
Dato : 15-11-02 17:16 |
|
Ja dav igen!
ja ja, jeg ved godt at det kan gøres på denne måde men, det er ikke smart.
(c:
Tekst := '';
Startstal :='';
tal := strtoint(edit8.Text)+1;
if tal <1000 then startstal := '0';
if tal <100 then startstal := '00';
if tal <10 then Startstal := '000';
Startstal := Startstal + inttostr(tal);
edit10.Text := Startstal;
--
M.v.h.
Hans Nikolajsen
E-mail: hn2test@stofanet.dk
Homepage: http://home1.stofanet.dk/jadav/
Fjern test fra min E-mail for at skrive til mig!
"Hans Nikolajsen" <hn2@stofanet.dk> skrev i en meddelelse
news:3dd5070b$0$5765$ba624c82@nntp04.dk.telia.net...
> Ja dav.
>
> Jeg skal lave en string der på 4 tegn ud fra en integer!
> eks.:
>
> var
> tekst: string;
> x: integer;
>
> bla. bla.
>
> x := 10;
> tekst := FloatToTextFmt( ????? x ????)
>
> label1.caption := tekst;
>
> så står der 0010 på skærmen og ikke bare 10!
>
> Hvordan gør jeg det!
>
>
>
>
> --
> M.v.h.
> Hans Nikolajsen
> E-mail: hn2test@stofanet.dk
> Homepage: http://home1.stofanet.dk/jadav/
> Fjern test fra min E-mail for at skrive til mig!
>
>
| |
René Jensen (15-11-2002)
| Kommentar Fra : René Jensen |
Dato : 15-11-02 17:36 |
|
Hans Nikolajsen wrote:
> Ja dav igen!
>
> ja ja, jeg ved godt at det kan gøres på denne måde men, det er ikke smart.
> (c:
>
> Tekst := '';
> Startstal :='';
> tal := strtoint(edit8.Text)+1;
> if tal <1000 then startstal := '0';
> if tal <100 then startstal := '00';
> if tal <10 then Startstal := '000';
> Startstal := Startstal + inttostr(tal);
> edit10.Text := Startstal;
Du skal bruge en mere generel funktion som den her:
function LeadingZero(Number, FixedSize : Integer) : string;
var
s : string;
i : Integer;
begin
Number := IntToStr(Number);
i := 0;
while i < FixedSize do
begin
s := '0' + s;
i := i + 1;
end;
Result := s;
end;
Den tager to argumenter; Number, det tal du ønsker skal formateres, og
FixedSize, som er antallet af cifre. I dit eksempel skal du kalde
ovenstående funktion sådan her:
LeadingZero(10, 4); // returnerer en string = '0010'
Med venlig hilsen,
René Jensen
| |
Simon Hiort-Lorenzen (15-11-2002)
| Kommentar Fra : Simon Hiort-Lorenzen |
Dato : 15-11-02 20:08 |
|
"René Jensen" <not4u2know@privacy.org> wrote in message
news:3DD52257.6070503@privacy.org...
> LeadingZero(10, 4); // returnerer en string = '0010'
Den returnerer da '000010'. Jeg har brugt denne funktion et par gange:
function Lz(Number : integer; digits : integer = 5) : string;
var i : integer;
begin
result := inttostr(number);
i := 10;
while i <= power(10, digits-1) do
begin
if number < i then result := '0' + result;
i := i * 10;
end;
end;
Den fungerer på samme måde, bare rigtigt
Simon
| |
René Jensen (16-11-2002)
| Kommentar Fra : René Jensen |
Dato : 16-11-02 18:13 |
|
Simon Hiort-Lorenzen wrote:
> "René Jensen" <not4u2know@privacy.org> wrote in message
> news:3DD52257.6070503@privacy.org...
>
>>LeadingZero(10, 4); // returnerer en string = '0010'
>
>
> Den returnerer da '000010'. Jeg har brugt denne funktion et par gange:
>
> function Lz(Number : integer; digits : integer = 5) : string;
> var i : integer;
> begin
> result := inttostr(number);
>
> i := 10;
> while i <= power(10, digits-1) do
> begin
> if number < i then result := '0' + result;
> i := i * 10;
> end;
> end;
>
> Den fungerer på samme måde, bare rigtigt
>
> Simon
>
>
Ok, her så en revideret udgave som er testet i forhold til min tidligere:
function LeadingZero(Number, FixedSize : Integer) : string;
var
s : string;
i : Integer;
begin
s := IntToStr(Number);
while Length(s) < FixedSize do
s := '0' + s;
Result := s;
end;
Med venlig hilsen,
René Jensen
| |
Harald (15-11-2002)
| Kommentar Fra : Harald |
Dato : 15-11-02 20:54 |
|
"Hans Nikolajsen" <hn2@stofanet.dk> skrev i en meddelelse
news:3dd5070b$0$5765$ba624c82@nntp04.dk.telia.net...
> Ja dav.
>
> Jeg skal lave en string der på 4 tegn ud fra en integer!
> eks.:
>
> var
> tekst: string;
> x: integer;
>
> bla. bla.
>
> x := 10;
> tekst := FloatToTextFmt( ????? x ????)
>
> label1.caption := tekst;
>
> så står der 0010 på skærmen og ikke bare 10!
>
> Hvordan gør jeg det!
Jeg vil også være med :) så jeg har lavet denne function:
function LeadingZero(Number : variant;FixedSize : Integer) : string;
begin
setlength(result,fixedsize-length(number));
fillchar(result[1],length(result),#48);
result:=result+string(number);
end;
tallet kan både være et tal eller en streng f.eks.
LeadingZero(32,4);
eller
LeadingZero('18',4);
eller
LeadingZero('jo',4);
Mvh
HK
| |
Fætter (17-11-2002)
| Kommentar Fra : Fætter |
Dato : 17-11-02 15:23 |
|
> Jeg vil også være med :) så jeg har lavet denne function:
Det vil jeg også!
function LeadingZero(Number, FixedSize: integer):string;
begin
if length('0' + inttostr(Number)) <= FixedSize then
result := '0' + LeadingZero(Number, FixedSize - 1)
else
result := inttostr(Number);
end;
/Fætter
| |
Asger Grunnet (16-11-2002)
| Kommentar Fra : Asger Grunnet |
Dato : 16-11-02 22:34 |
|
Hans Nikolajsen skrev:
> Jeg skal lave en string der på 4 tegn ud fra en integer!
[snip]
> så står der 0010 på skærmen og ikke bare 10!
>
> Hvordan gør jeg det!
Det undrer mig lidt, at der ikke er nogen, der har foreslået
den ganske udmærkede Delphi-funktion "Format" endnu.
Der er da ingen grund til at skrive sin egen funktion, når
det kan gøres sådan her:
tekst := Format('%.4d', [x]);
Asger.
| |
CykelSmeden fra Aalb~ (16-11-2002)
| Kommentar Fra : CykelSmeden fra Aalb~ |
Dato : 16-11-02 23:01 |
|
"Asger Grunnet" <asger@adslhome.dk> skrev i en meddelelse
news:3dd6b9d3$0$51975$edfadb0f@dread16.news.tele.dk...
>
> Hans Nikolajsen skrev:
> > Jeg skal lave en string der på 4 tegn ud fra en integer!
>
> [snip]
>
> > så står der 0010 på skærmen og ikke bare 10!
> >
> > Hvordan gør jeg det!
>
> Det undrer mig lidt, at der ikke er nogen, der har foreslået
> den ganske udmærkede Delphi-funktion "Format" endnu.
> Der er da ingen grund til at skrive sin egen funktion, når
> det kan gøres sådan her:
tekst := Format('%.4d', [x]);
Asger.
>
du var bedre end mig, jeg kunne ikke huske syntax for format, og to istedet
en anden stringhåndtering:
var n:integer;
s:string;
begin
N:= strtoint(edit1.text);
s := '0000' + inttostr (n);
n:= length(s)-3;
s := copy (s,n,4);
button1.caption := s;
>
| |
Thor (19-11-2002)
| Kommentar Fra : Thor |
Dato : 19-11-02 22:08 |
|
FormatFloat virker også på integers, så brug
str := formatfloat('0000', int);
Thomas R
"Hans Nikolajsen" <hn2@stofanet.dk> wrote in message
news:3dd5070b$0$5765$ba624c82@nntp04.dk.telia.net...
> Ja dav.
>
> Jeg skal lave en string der på 4 tegn ud fra en integer!
> eks.:
>
> var
> tekst: string;
> x: integer;
>
> bla. bla.
>
> x := 10;
> tekst := FloatToTextFmt( ????? x ????)
>
> label1.caption := tekst;
>
> så står der 0010 på skærmen og ikke bare 10!
>
> Hvordan gør jeg det!
>
>
>
>
> --
> M.v.h.
> Hans Nikolajsen
> E-mail: hn2test@stofanet.dk
> Homepage: http://home1.stofanet.dk/jadav/
> Fjern test fra min E-mail for at skrive til mig!
>
>
| |
|
|