/ Forside / Teknologi / Udvikling / Delphi/Pascal / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Delphi/Pascal
#NavnPoint
oldwiking 603
jrossing 525
rpje 520
EXTERMINA.. 500
gandalf 460
gubi 270
DJ_Puden 250
PARKENSS 230
technet 210
10  jdjespers.. 200
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!
>
>



Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408925
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste