Toon posts:

<DELPHI> . door , vervangen

Pagina: 1
Acties:
  • 101 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Wie weet hoe ik in delphi een getal met een punt (bv 2.34) kan vervangen door een komma (dat het 2,34 wordt)

  • jelmervos
  • Registratie: Oktober 2000
  • Niet online

jelmervos

Simple user

Misschien is dit een goeie functie:
code:
1
2
3
4
5
6
7
8
9
10
11
function ReplaceStr(Source, Search, ReplaceBy: String): String;
var
  RS: String;
begin
  RS := Source;
  while Pos(Search, RS) > 0 do begin
    Insert(ReplaceBy, RS, Pos(Search, RS));
    Delete(RS, Pos(Search, RS), Length(Search));
  end;
  Result := RS
end;

In jou voorbeeld zou je hem dan zo moeten gebruiken:
code:
1
2
Str := '2.34'
Str := ReplaceStr(Str, ',', '.');

Dan zit er in Str: 2,34

"The shell stopped unexpectedly and Explorer.exe was restarted."


Verwijderd

Je moet het getal als string inlezen.
Daarna ga je ieder karakter in de string controleren of het een '.' is, zoja, vervangen.

Verwijderd

heeft geen zin, ligt aan je taal instelling van je OS...

ut kan wel moet je gewoon een Loopje maken die alle tekens uit je getal bekijkt en controleert op een punt en die dan vervangt door een komma

Verwijderd

Op vrijdag 16 november 2001 15:31 schreef jelmervos het volgende:
Misschien is dit een goeie functie:
code:
1
2
3
4
5
6
7
8
9
10
11
function ReplaceStr(Source, Search, ReplaceBy: String): String;
var
  RS: String;
begin
  RS := Source;
  while Pos(Search, RS) > 0 do begin
    Insert(ReplaceBy, RS, Pos(Search, RS));
    Delete(RS, Pos(Search, RS), Length(Search));
  end;
  Result := RS
end;

In jou voorbeeld zou je hem dan zo moeten gebruiken:
code:
1
2
Str := '2.34'
Str := ReplaceStr(Str, ',', '.');

Dan zit er in Str: 2,34
tis niet de bedoeling dat je gelijk met hele functions komt aan zetten |:( want dan maak je ut alleen maar ingewikkelder

Verwijderd

Topicstarter
tis niet de bedoeling dat je gelijk met hele functions komt aan zetten |:( want dan maak je ut alleen maar ingewikkelder
Ik ben geen NOOB meer hoor maar ik wist ff niet meer hoe die functie werkte...

Maar gasten bedankt.. kan ik weer ff vooruit met de euro conv! :D

Verwijderd

Ik ben geen NOOB meer hoor maar ik wist ff niet meer hoe die functie werkte...
ja sorry hoor, dat kon ik niet ruiken...

maar voor dit probleem is de oplossing eigenlijk heel simpel dus, ik d8 als je dit niet weet zal je functies wel ook niet weten :)

en zo'n euro converter heb ik ook wel eens gefixt daar heb je dit helemaal niet voor nodig, maar goed je doet maar :+

  • jelmervos
  • Registratie: Oktober 2000
  • Niet online

jelmervos

Simple user

Op vrijdag 16 november 2001 15:34 schreef mad_maxz het volgende:

[..]

tis niet de bedoeling dat je gelijk met hele functions komt aan zetten |:( want dan maak je ut alleen maar ingewikkelder
Ach, ik vond het wel een goeie functie. En wat weet jij er nou van wat de topicstarten zoekt?

"The shell stopped unexpectedly and Explorer.exe was restarted."


Verwijderd

Gebruik hiervoor de variabele ThousandSeparator, DecimalSeparator uit de unit SysUtils; zie verder: Help.

[Edit: Oeps, slecht omschreven vraag fout begrepen :)]

Verwijderd

hij zoekt dat waar hij om vraagt en niet meer...

en dat is niet wat jij doet!!! :(

hij zegt zelf hij is geen n00b, maar als het nou wel een n00b was dan zou die helemaal niet weten wat dat nou allemaal is... functies en var's = ingewikkeld (als je het niet weet)

Verwijderd

dus denk na voordat je zo maar iets post

Verwijderd

:?

  • jelmervos
  • Registratie: Oktober 2000
  • Niet online

jelmervos

Simple user

Op vrijdag 16 november 2001 15:51 schreef mad_maxz het volgende:
dus denk na voordat je zo maar iets post
Oke, ik zal het nooit weer doen. Sorry jonge. :(

Lees zijn vraag nog es:
Wie weet hoe ik in delphi een getal met een punt (bv 2.34) kan vervangen door een komma (dat het 2,34 wordt)
Hij wil iets vervangen binnen een string, dus ik geef hem een simpele functie die dat doet.

En dat hij geen newbie meer is wist ik toen toch nog niet. Check de volgorde maar man!

"The shell stopped unexpectedly and Explorer.exe was restarted."


  • roelio
  • Registratie: Februari 2001
  • Niet online

roelio

fruitig, en fris.

Op vrijdag 16 november 2001 15:34 schreef mad_maxz het volgende:
tis niet de bedoeling dat je gelijk met hele functions komt aan zetten |:( want dan maak je ut alleen maar ingewikkelder
tuurlijk niet! als dit met meerdere getallen moet is een function alleen maar handig, veel beter dan het "loopje" wat jij voorschrijft, immers dat zou je dan op de meest onmogelijke plekken moeten neerzetten, oftewel: geen hergebruik van code |:(

En dan zeg je dat functions en vars ingewikkeld zijn... vind ik persoonlijk van niet, maar dat zijn toch wel de basics van de taal... dus die moet ook iedere "n00b" weten als hij/zij een beetje wil gaan proggen ...

AMD Phenom II X4 // 8 GB DDR2 // SAMSUNG 830 SSD // 840 EVO SSD // Daar is Sinterklaas alweer!!


  • jelmervos
  • Registratie: Oktober 2000
  • Niet online

jelmervos

Simple user

Op vrijdag 16 november 2001 15:57 schreef limoentje het volgende:

[..]

tuurlijk niet! als dit met meerdere getallen moet is een function alleen maar handig, veel beter dan het "loopje" wat jij voorschrijft, immers dat zou je dan op de meest onmogelijke plekken moeten neerzetten, oftewel: geen hergebruik van code |:(
Idd, dat bedoel ik. Ik wist verder ook niet (direct) dat het om een taal instelling ging. Ik las z'n vraag zoals hij er stond. Dus een string zoeken en verandering in een string.
Toevallig had ik die functie net gemaakt, en vond het wel toepasselijk hem hier te posten. Heeft iemand er nog es wat aan. :)

"The shell stopped unexpectedly and Explorer.exe was restarted."


Verwijderd

Die functie zit ook in SysUtils als StringReplace...

  • jelmervos
  • Registratie: Oktober 2000
  • Niet online

jelmervos

Simple user

Op vrijdag 16 november 2001 16:04 schreef DiFool het volgende:
Die functie zit ook in SysUtils als StringReplace...
Ok :) Laat dan alles maar :)

"The shell stopped unexpectedly and Explorer.exe was restarted."


Verwijderd

Hehe, in het leven staan met goede bedoelingen is kut, eerst word je afgeblaft en dan blijkt je werk al gedaan te zijn :)

  • jelmervos
  • Registratie: Oktober 2000
  • Niet online

jelmervos

Simple user

Op vrijdag 16 november 2001 16:17 schreef DiFool het volgende:
Hehe, in het leven staan met goede bedoelingen is kut, eerst word je afgeblaft en dan blijkt je werk al gedaan te zijn :)
Idd, nouja, heb er weer wat van geleerd, alleen over dat die functie al bestaad. Dat ik wordt afgeblaft is natuurlijk niet cool.

"The shell stopped unexpectedly and Explorer.exe was restarted."


Verwijderd

Dit iets?
code:
1
2
3
for t:=1 to length(str) do
  if str[t]='.' then
    str[t]:=',';

Wel eest een string van maken natuurlijk

Verwijderd

En dan heeft delphi ook standaard al een functie StringReplace aan boord :)

  • brammetje
  • Registratie: Oktober 2000
  • Laatst online: 12-01-2025
Op vrijdag 16 november 2001 15:49 schreef DiFool het volgende:
Gebruik hiervoor de variabele ThousandSeparator, DecimalSeparator uit de unit SysUtils; zie verder: Help.

[Edit: Oeps, slecht omschreven vraag fout begrepen :)]
hmmz.. hier dacht ik ook al aan :), het ook helemaal niet gek dat je aan instellingen in windows denkt, en daar zal het waarschijnlijk ook over gaan.

Ik raad kobbe aan hier toch ff naar te kijken!

Verwijderd

Op vrijdag 16 november 2001 16:27 schreef jelmervos het volgende:
Idd, nouja, heb er weer wat van geleerd, alleen over dat die functie al bestaad.
Gevoel ken ik... Doe maar 's een search op 'StrTran'... :+
Dat ik wordt afgeblaft is natuurlijk niet cool.
Who is mad_maxz anyway? :7

  • jelmervos
  • Registratie: Oktober 2000
  • Niet online

jelmervos

Simple user

Op vrijdag 16 november 2001 22:35 schreef Afterlife het volgende:

[..]

Gevoel ken ik... Doe maar 's een search op 'StrTran'... :+
Zelfde ooit ook es gehad?
[..]

Who is mad_maxz anyway? :7
Idd, boeie dus. :)

"The shell stopped unexpectedly and Explorer.exe was restarted."


Verwijderd

Dit misschien??
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?
procedure TForm1.InputEditKeyPress(Sender: TObject; var Key: Char);
begin
    if Key = #13 then Convert
  { DecimalSeparator is een GLOBALE variabele in Delphi
    die afhangt van de "Regional Settings" van Windows  }
  else
    if (Key = ',') and (DecimalSeparator = '.') then
      Key := '.'
    else
      if (Key = '.') and (DecimalSeparator = ',') then
        Key := ',';

end;
?>
Pagina: 1