# StringFormat?

## Recommended Posts

Hi,

I have a number in the format "4.160,00" and I want to convert it to "4160" or "4160.00".

I've studied the help (StringFormat), but I didn't find a solution...

Bye,

Timo

Bye...,Timo

##### Share on other sites

Who else would I be?

##### Share on other sites

Can you please give me an example?

My English ist not the best, I tried but but I did not get it to work.

It would be very nice if you could help me.

Thanks,

Timo

Bye...,Timo

##### Share on other sites

```\$sString = "4.160,00"

\$sString = StringReplace(\$sString,".","")
\$sSplit = StringSplit(\$sString,",")
\$sString = \$sSplit[1]

MsgBox(0, "", \$sString)```

##### Share on other sites

Good idea, much easier than StringFormat.

Is this not possible with it?

Bye...,Timo

##### Share on other sites

Another (possibly more politically correct) way to do this:

`MsgBox(0,"",Number("4.160,00") * 1000)`

Who else would I be?

##### Share on other sites

Let's all join in the fun:

```MsgBox(0, '', _Convert("4.160,00"))

Func _Convert(\$sText)
Return StringReplace(StringReplace(\$sText, '.', ''), ',', '.')
EndFunc```

Common sense plays a role in the basics of understanding AutoIt... If you're lacking in that, do us all a favor, and step away from the computer.

Great.

Thanks.

Bye...,Timo

##### Share on other sites

I want to play too!

```\$string = '4.160,00'

\$result_1 = StringSplit(\$string, '')
MsgBox(0, '1', \$result_1[1] & \$result_1[3] & \$result_1[4] & \$result_1[5])

\$result_2 = StringReplace(StringLeft(\$string, 5), '.', '')
MsgBox(0, '2', \$result_2)```

##### Share on other sites

Continued...

```MsgBox(0, '', _Convert("4.160,00"))

Func _Convert(\$sText)
Local \$sHold, \$sMid
For \$iCC = 1 To StringLen(\$sText)
\$sMid = StringMid(\$sText, \$iCC, 1)
If \$sMid <> '.' And \$sMid <> ',' Then \$sHold &= \$sMid
If \$sMid = ',' Then \$sHold &= '.'
Next
Return \$sHold
EndFunc```

Common sense plays a role in the basics of understanding AutoIt... If you're lacking in that, do us all a favor, and step away from the computer.

##### Share on other sites

Informational for those of you who wish to add commas into numbers

oldy so probably can be done with less code now

http://www.autoitscript.com/forum/index.ph...ost&p=87193

Don't argue with an idiot; people watching may not be able to tell the difference.

##### Share on other sites

ROFL It is amazing how many methods of achieving the same goal can be imagined by a group of people.

Who else would I be?

##### Share on other sites

Informational for those of you who wish to add commas into numbers

oldy so probably can be done with less code now

Here's a go at it.

```Func _StrAddComma(\$sStr, \$sSeperator = ',', \$sEnd = '.')
If \$sSeperator = -1 Or \$sSeperator = Default Then \$sSeperator = ','
If \$sEnd = -1 Or \$sEnd = Default Then \$sEnd = '.'
Local \$aNum = StringSplit(\$sStr, \$sEnd), \$nHold, \$aSRE, \$bUB, \$iAdd
If UBound(\$aNum) > 2 Then
\$aSRE = StringRegExp(\$aNum[1], '(\d+)(\d{3})', 3)
\$bUB = True
Else
\$aSRE = StringRegExp(\$sStr, '(\d+)(\d{3})', 3)
EndIf
If UBound(\$aSRE) = 2 Then
While IsArray(\$aSRE)
\$nHold = \$sSeperator & \$aSRE[1] & \$nHold
\$aSRE = StringRegExp(\$aSRE[0], '(\d+)(\d{3})', 3)
WEnd
EndIf
If \$bUB And \$nHold Then
Return StringTrimRight(\$sStr, \$iAdd * 3) & \$nHold & \$sEnd & \$aNum[2]
ElseIf \$nHold Then
Return StringTrimRight(\$sStr, \$iAdd * 3) & \$nHold
EndIf
Return SetError(1, 0, \$sStr)
EndFunc```

Edit:

Pasted the wrong version.

Edit2:

Fixed a but I noticed.

Edit3:

Put it in scripts in scraps and shortened it to 22 lines: http://www.autoitscript.com/forum/index.ph...st&p=255542

Edit4:

Fixed a bug that xcal noticed ... thanks.

Edited by SmOke_N

Common sense plays a role in the basics of understanding AutoIt... If you're lacking in that, do us all a favor, and step away from the computer.

##### Share on other sites

It seems to stop working at 9223372036854775808. It works at 9223372036854775807. Don't ask how I know.

edit - numbers reversed

Edited by xcal

##### Share on other sites

It seems to stop working at 9223372036854775808. It works at 9223372036854775807. Don't ask how I know.

edit - numbers reversed

Going to fix it now.

```MsgBox(64, '', _StrAddComma('9223372036854775808'))

Func _StrAddComma(\$sStr, \$sSeperator = ',', \$sEnd = '.')
If \$sSeperator = -1 Or \$sSeperator = Default Then \$sSeperator = ','
If \$sEnd = -1 Or \$sEnd = Default Then \$sEnd = '.'
Local \$aNum = StringSplit(\$sStr, \$sEnd), \$nHold, \$aSRE, \$bUB, \$iAdd
If UBound(\$aNum) > 2 Then
\$aSRE = StringRegExp(\$aNum[1], '(\d+)(\d{3})', 3)
\$bUB = True
Else
\$aSRE = StringRegExp(\$sStr, '(\d+)(\d{3})', 3)
EndIf
If UBound(\$aSRE) = 2 Then
While IsArray(\$aSRE)
\$nHold = \$sSeperator & \$aSRE[1] & \$nHold
\$aSRE = StringRegExp(\$aSRE[0], '(\d+)(\d{3})', 3)
WEnd
EndIf
If \$bUB And \$nHold Then
Return StringTrimRight(\$sStr, \$iAdd * 3) & \$nHold & \$sEnd & \$aNum[2]
ElseIf \$nHold Then
Return StringTrimRight(\$sStr, \$iAdd * 3) & \$nHold
EndIf
Return SetError(1, 0, \$sStr)
EndFunc```

Common sense plays a role in the basics of understanding AutoIt... If you're lacking in that, do us all a favor, and step away from the computer.

## Create an account

Register a new account

• ### Recently Browsing   0 members

×

• Wiki

• Back

• #### Beta

• Git
• FAQ
• Our Picks
×
• Create New...