Jump to content

Need number to char help


E1M1
 Share

Recommended Posts

  • Moderators

E1Mi,

Perhaps something like this: ;)

$iInt = InputBox("Enter a Number", "Just a number from 1 to 676")

$iSecond = Mod($iInt, 26)
$iFirst = Int($iInt / 26)

$sLetters = ""
If $iFirst > 0 Then $sLetters &= Chr($iFirst + 64)
$sLetters &= Chr($iSecond + 64)

ConsoleWrite($sLetters  & @CRLF)

Lots of work for you still to do, but it gives you the idea. :)

M23

Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind

Open spoiler to see my UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Link to comment
Share on other sites

Hang on... In theory, you are talking about a numerical base with a letter notation. Base 26 in this case. When you think of it that way, it makes it more logical:

Func ToBase26($i)
    Local $s = ""

    Do
        $s = Chr(Mod($i, 26) + 64) & $s
        $i = Int($i / 26)
    Until $i = 0

    Return $s
EndFunc   ;==>ToBase26

That was based on WBD's (pity he hasn't been around recently) code here: http://www.autoitscript.com/forum/index.php?showtopic=93742

I'm sure he posted a better version with _FromBase somewhere... Got the link Melba?

Link to comment
Share on other sites

Something like this?

ConsoleWrite(N2C(28) & @CRLF)

Func N2C($int)
    Local $j, $char, $m

    For $j = 1 To Ceiling($int / 26)
        $m = Mod($int, 26)
        If Not $m Then
            $char &= Chr(90) ;"Z"
        Else
            $char &= Chr(64 + $m)
        EndIf
    Next
    Return $char
EndFunc

Br,

UEZ

Edited by UEZ

Please don't send me any personal message and ask for support! I will not reply!

Selection of finest graphical examples at Codepen.io

The own fart smells best!
Her 'sikim hıyar' diyene bir avuç tuz alıp koşma!
¯\_(ツ)_/¯  ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ

Link to comment
Share on other sites

Func ToBase26($i)
    Local $s = ""

    Do
        $s = Chr(Mod($i, 26) + 64) & $s
        $i = Int($i / 26)
    Until $i = 0

    Return $s
EndFunc   ;==>ToBase26

Does anyone know why 26 doesnt return Z wuth this func? all other numbers seems working, just 26 is problematic.

UEZ's func also doesn like 26

edited

Link to comment
Share on other sites

What would zero be in this base? ;) Think about that for a bit.

One possible solution:

Func ToBase26($i)
    Local $s = ""

    Do
        $s = Chr(Mod($i, 26) + 64) & $s
        $i = Int($i / 27)
    Until $i = 0

    Return StringReplace($s, "@", "Z")
EndFunc   ;==>ToBase26

Edited by Mat
Link to comment
Share on other sites

Indeed, did not keep in mind the 0 base. ;)

Update above.

Br,

UEZ

Edited by UEZ

Please don't send me any personal message and ask for support! I will not reply!

Selection of finest graphical examples at Codepen.io

The own fart smells best!
Her 'sikim hıyar' diyene bir avuç tuz alıp koşma!
¯\_(ツ)_/¯  ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ

Link to comment
Share on other sites

ok now why 28 is BB and not AB? it should go like aa, ab ac...az ... aaa,aab,aac....

Looks like i didnt express myself clearly enough at the beginning.

For mine? Try this:

For $i = 1 To 100
    ConsoleWrite(ToBase26($i) & @CRLF)
Next

Func ToBase26($i)
    Local $s = ""

    Do
        $s = Chr(Mod($i, 26) + 64) & $s
        $i = Int($i / 27)
    Until $i = 0

    Return StringReplace($s, "@", "Z")
EndFunc   ;==>ToBase26

It's not ideal, but it works.

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

AA

AB

AC

AD

AE

AF

AG

AH

AI

AJ

AK

AL

AM

AN

AO

AP

AQ

AR

AS

AT

AU

AV

AW

AX

AY

AZ

AA

BB

BC

BD

BE

BF

BG

BH

BI

BJ

BK

BL

BM

BN

BO

BP

BQ

BR

BS

BT

BU

BV

BW

BX

BY

BZ

BA

BB

CC

CD

CE

CF

CG

CH

CI

CJ

CK

CL

CM

CN

CO

CP

CQ

CR

CS

CT

CU

CV

Edited by Mat
Link to comment
Share on other sites

ok now why 28 is BB and not AB? it should go like aa, ab ac...az ... aaa,aab,aac....

Looks like i didnt express myself clearly enough at the beginning.

Yep, I misunderstood you!

Sorry,

UEZ

Please don't send me any personal message and ask for support! I will not reply!

Selection of finest graphical examples at Codepen.io

The own fart smells best!
Her 'sikim hıyar' diyene bir avuç tuz alıp koşma!
¯\_(ツ)_/¯  ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ

Link to comment
Share on other sites

  • Developers

Just 1 question. what is mod()? and is it possible to do what mod() does with out mod() ? like using /*-+ instead?

What part of the description in the helpfile for this function did you not understand? Edited by Jos

SciTE4AutoIt3 Full installer Download page   - Beta files       Read before posting     How to post scriptsource   Forum etiquette  Forum Rules 
 
Live for the present,
Dream of the future,
Learn from the past.
  :)

Link to comment
Share on other sites

I dont understand mod in general. it takes 2 args, but what it does with them? It's more math related question already.

But anyway, thanks for fast replies and what's most important for help.

Edited by E1M1

edited

Link to comment
Share on other sites

  • Developers

I dont understand mod in general. it takes 2 args, but what it does with them? It's more math related question already.

You didn't answer my question unless it means you didn't bother to read it because you thing it wont answer your question.

I think it does or at least gives you the keyword to research further.

Jos

SciTE4AutoIt3 Full installer Download page   - Beta files       Read before posting     How to post scriptsource   Forum etiquette  Forum Rules 
 
Live for the present,
Dream of the future,
Learn from the past.
  :)

Link to comment
Share on other sites

You simulate the behavior of Mod() quite easily. I wouldn't reccomend using these functions though. (untested, but they are likely to be allot slower than Mod().)

Func _NotMod($value1, $value2)
    Return $value1-($value2*Int($value1/$value2))
EndFunc

Func _NotMod2($value1, $value2)
    While $value1 >= $value2
        $value1 -= $value2
    WEnd
    Return $value1
EndFunc
Link to comment
Share on other sites

Think of your division when you were six. 9 divided by 4 is... 2 remainder 1. Mod returns the 1.

Mod(9, 4) = 1

In most languages it's '9 % 4 = 1' or something like that.

http://en.wikipedia.org/wiki/Modulo_operation

Not to be confused with moderators or people riding vespas.

Edited by Mat
Link to comment
Share on other sites

I've read your question, and answered it. As I said I dont understand mod in general. There's no specific part in help file that i dont understand. If you want specific part, i would say Parameters.

Thanks Mat.

Edited by E1M1

edited

Link to comment
Share on other sites

  • Developers

I've read your question, and answered it. As I said I dont understand mod in general. There's no specific part in help file that i dont understand. If you want specific part, i would say Parameters.

geezzz... I am referring to the Mod() function in the helpfile , not the whole damn helpfile.

It is properly explained and I have sometimes the impression you take the easy way out and simply ask the question.

You are here long enough to sort these trivial things out yourself.

Jos

SciTE4AutoIt3 Full installer Download page   - Beta files       Read before posting     How to post scriptsource   Forum etiquette  Forum Rules 
 
Live for the present,
Dream of the future,
Learn from the past.
  :)

Link to comment
Share on other sites

And I answered about mod. Maybe I wasn't clear. Instead of There's no specific part in help file that i dont understand. I should have said There's no specific part in mod() documentationthat I dont understand....I guess.

How should I express myself if I want to say you that I was reading mod function from help file and there wasn't any specific part in mod's documentation in help file that I didn't understand..

Edited by E1M1

edited

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...