| Related: zaehlen discretionary letters zaehler [...]
Jörg Sellmeyer (23.10.11)
it has me no silence let what about me Have yet weitergetüftelt. now Have ich's out and its letztlich more simply as initially expects. CompileMarkSeparation'and inverse
'Jörg Selllmeyer 2011
'to disengaged usage
'here get one very well declared, How the converting of numbers in a others Base functions:
'https://www.arndt-bruenner.de/maths/scripts/Zahlensysteme.htm
'The problem hierbei, is the fehlende zero. any Nullstellen must abgefangen go, The
'actually place circa one verringert and the following place ditto circa one verringert go.
'The worth A000 becomes then means without nobodies To YYZ. C000 becomes BYYZ
Proc Nr2ABC
Parameters number!
Declare worth$,remainder%
While number! > 0
remainder% = number! Mod 26
number! = number! \ 26
If remainder% = 0
'here go The Nullstellen abgefangen and transformed
number! = number! -1
remainder% = 26
EndIf
Case remainder% > 0:worth$ = Chr$(remainder% + 64) + worth$
Wend
Return worth$
ENDPROC
Proc ABC2Nr
Parameters Text$
Declare number!,amount!,B$
Text$ = Upper $(Text$)
WhileLoop Len(Text$),1,-1
B$ = SubStr$(Text$,-&Loop)
number! = (Ord(B$)-64) * 26^(&Loop-1)
amount! = amount! + number!
Wend
Return Int(amount!)
ENDPROC
Cls
Window Title "Zahlen in letters transfiguring and umgekehrt"
Print "LQSVOFKGQM =", ABC2Nr("LQSVOFKGQM")
Print "AAAAAA =", ABC2Nr("AAAAAA")
Print "ABCDEFGH =", ABC2Nr("ABCDEFGH")
Print
Print "XPROFAN power joke =", ABC2Nr("XPROFAN"),ABC2Nr("macht"),ABC2Nr("Spass")
Print
Declare s$
Randomize
WhileLoop 10
s$ = Chr$(Rnd(26) + 65) + s$
Wend
Print s$ + " =",ABC2Nr(s$)
WaitInput
Cls
Randomize
WhileLoop 0,780,1
Print Nr2ABC(&Loop),
Wend
WaitInput
Cls
WhileLoop 00,480,1
Print Nr2ABC(&Loop + Rnd(345676)),
Wend
WaitInput
here's another small Program, with the one one little herumexperimentieren can: CompileMarkSeparation $H windows.ph
Def DelLast(2) Mid$(@$(1),1,(Len(@$(1)) - @&(2)))
'here can beautiful nachlesen, How so a Umrechnung functions:
'https://www.arndt-bruenner.de/maths/scripts/Zahlensysteme.htm
Proc Nr2ABC
Parameters number!
Declare worth$,remainder%
While number! > 0
remainder% = number! Mod 26
number! = number! \ 26
If remainder% = 0
number! = number! -1
remainder% = 26
EndIf
Case remainder% > 0:worth$ = Chr$(remainder% + 64) + worth$
Wend
Return worth$
ENDPROC
Proc ABC2Nr
Parameters Text$
Declare number!,amount!,B$
WhileLoop Len(Text$),1,-1
B$ = SubStr$(Text$,&Loop)
number! = Chr$(B$) * 26^(&Loop-1)
amount! = amount! + number!
Wend
Return amount!
ENDPROC
SubProc Create.TextR
Return @Control("STATIC",@$(2),$50000002,@%(3),@%(4), \
@%(5),@%(6),@%(1),101, %hInstance)
ENDPROC
Proc Text_setzen
Parameters cb&,txt&,txt1&
Declare Text$,Result!
Text$ = GetText$(txt&)
SetText txt1&,Str $((GetCurSel(cb&)) * Val(Text$))
Clear Text$
WhileLoop 0,to put%-1
Result! = Val(GetText$(txt1&[&Loop])) + Result!
Text$ = Text$ + GetText$(cb&[&Loop])
Wend
SetText txt_Ergebnis&,Str $(Result!)
SetText txt_Alphabet&,Text$
SetText txt_Nr2ABC&,Nr2ABC(Result!)
ENDPROC
Proc Button_Aktion
Parameters btn&
If GetText$(btn&) = "Null setzen"
SendMessage(cb&[focus%],$014E,0,0)
Text_setzen(cb&[focus%],txt&[focus%],txt1&[focus%])
SetText btn&,"Zufall"
Else
SendMessage(cb&[focus%],$014E,Rnd(26),0)
Text_setzen(cb&[focus%],txt&[focus%],txt1&[focus%])
SetText btn&,"Null setzen"
EndIf
ENDPROC
Proc Alle_Null
Parameters btn&
If GetText$(btn&) = "alle zero setzen"
WhileLoop 0,to put%-1
SendMessage(cb&[&Loop],$014E,0,0)
Text_setzen(cb&[&Loop],txt&[&Loop],txt1&[&Loop])
SetText btn&[&Loop],"Zufall"
Wend
SetText btn&,"alle Zufall"
Else
WhileLoop 0,to put%-1
SendMessage(cb&[&Loop],$014E,Rnd(26),0)
Text_setzen(cb&[&Loop],txt&[&Loop],txt1&[&Loop])
SetText btn&[&Loop],"Null setzen"
Wend
SetText btn&,"alle zero setzen"
EndIf
ENDPROC
Declare to put%
Stellen% = 10
Declare cb&[to put%],txt&[to put%],txt1&[to put%],A$,x%,b%,focushdl&,focus%,Ergebnis&
Declare btn&[to put% + 1]
b% = 118
x% = 120
Window Style 8 | 24 | 512
Window to put% * (b% + 24),300
SetDialogFont ~GetStockObject($11)
WhileLoop 26
a$ = a$ + Chr$(64 + &loop) + "|"
Wend
a$ = " |" + DelLast(a$,1)
MoveStrToList(a$,"|")
WhileLoop 0,to put%-1
cb&[&Loop] = Create("ChoiceBox",%hwnd,0,5 + &Loop * x%,40,b%,160)
Create("Tooltip",%hwnd,cb&[&Loop],"26^" + Str $(to put%-1 - &Loop))
MoveListToHandle(cb&[&Loop])
SendMessage(cb&[&Loop],$014E,0,0)
txt&[&Loop] = Create("TextR",%hwnd,"",5 + &Loop * x%,10,b%,20)
txt1&[&Loop] = Create("TextR",%hwnd,"",5 + &Loop * x%,80,b%,20)
btn&[&Loop] = Create("Button",%hwnd,"Zufall",5 + &Loop * x%,110,b%,20)
Case &Loop = to put% - 1:btn&[&Loop + 1] = Create("Button",%hwnd,"Zufall",5 + (&Loop + 1) * x%,110,b%,20)
Wend
Var txt_Alphabet& = Create("TextR",%hwnd,"",5 + to put% * x%,40,b% + to put%,20)
Var txt_Ergebnis& = Create("TextR",%hwnd,"",5 + to put% * x%,80,b%,20)
Var txt_Nr2ABC& = Create("TextR",%hwnd,"",5 + to put% * x%,140,b%,20)
Set("Decimals",0)
WhileLoop 0,to put%-1
SetText txt&[to put%-1 - &Loop],Str $(26^&Loop)
Wend
Randomize
While 1
WaitInput
focushdl& = %getfocus
WhileLoop 0,to put%-1
Case focushdl& = cb&[&Loop]:focus% = &Loop
If focushdl& = btn&[&Loop]
focus% = &Loop
EndIf
Wend
If %key = 2
Break
ElseIf GetFocus(cb&[focus%])
Case GetCurSel(cb&[focus%]) > -1:Text_setzen(cb&[focus%],txt&[focus%],txt1&[focus%])
ElseIf Clicked(btn&[focus%])
Button_Aktion(btn&[focus%])
ElseIf Clicked(btn&[to put%])
Alle_Null(btn&[to put%])
ElseIf %mousepressed = 2
CreateMenu
AppendMenu 100,"Summe kopieren"
AppendMenu 101,"Buchstaben kopieren"
TrackMenu %mousex,%mousey
If MenuItem(100)
ClearClip
PutClip GetText$(txt_Ergebnis&)
ElseIf MenuItem(101)
ClearClip
PutClip GetText$(txt_Alphabet&)
EndIf
EndIf
Wend
here's another List: CompileMarkSeparation
Proc Nr2ABC
Parameters number!
Declare worth$,remainder%
While number! > 0
remainder% = number! Mod 26
number! = number! \ 26
If remainder% = 0
number! = number! -1
remainder% = 26
EndIf
Case remainder% > 0:worth$ = Chr$(remainder% + 64) + worth$
Wend
Return worth$
ENDPROC
Cls
ShowMax
Declare to put%[6],worth$[6],n%,a$,b$,OrdNr&,Header$,s$
Clear to put%[]
OrdNr& = 1
Var b% = %maxx \ 27 -1
WhileLoop 26
s$ = s$ + Chr$(64 + &loop) + ";1;" + Str $(b%) + ";"
Wend
s$ = ";0;" + Str $(b%) + ";" + s$
Var l& = Create("GridBox",%hwnd,s$,0,2,2,Width(%hwnd)-4,Height(%hwnd)-4)
WhileLoop 26^2
WhileLoop 26
B$ = B$ + Nr2ABC(OrdNr&) + "|"
Inc OrdNr&
Wend
AddStrings(l&,Str $(OrdNr&-26) + "|" + b$)
Clear b$
Window Title Str $(OrdNr&) + " patience - It's all right To 26^3 (" + Str $(Int(26^3)) + ")"
Wend
Window Title Str $(OrdNr&) + " patience - It's all right To 26^3 (" + Str $(Int(26^3)) + ") ready!"
While 1
WaitInput
Wend
|
|