goo blog サービス終了のお知らせ 

汎用機メモっとくか

しごと用の(学習メモ&お気に入り保存)。

わり算02

2023年03月30日 19時16分32秒 | WSH

0割対応は自分でいれてください

試験中

a="7586538575621427759";
lena=a.length;

b='123456789012345';
lenb=b.length;

c=0;
d='';

b01=b.substr(lenb-14,14);
b021="00000000000000" + b.substr(0,lenb-14);
lenb021 = b021.length;
b02= b021.substr(lenb021-14,14);
b05=b02+b01;


posa=0;
a00='';


a00=a00 + a.substr(posa,1);
lena00 = a00.length;
a051 = "0000000000000000000000000000" + a00;
lena051 = a051.length;
a05  = a051.substr(lena051-28,28);


while(posa    lena){
  c=0;
  while(a05 >= b05){
      c++;
      a01=a05.substr(14,14);
      
      if(lena00>14){
         a02=a05.substr(0,14);
      }else{
         a02=0;
      }
      if(a01*1.0     b01*1.0){
       
        a03n1 = 100000000000000 + (a01*1.0);
        a03n2 = (a02*1.0) - 1;       
      }else{
        a03n1 = a01 * 1.0;
        a03n2 = a02 * 1.0;
      }

      a03n1 = a03n1 - (b01 * 1.0);
      a03n2 = a03n2 - (b02 * 1.0);

      if(a03n2 = 0){
        a04 =  "00000000000000" + a03n1;
        lena04 = a04.length;
        a00 = a04.substr(lena04-14,14)
      }else{
        a00 = a03n2 + '';
        a04 = "00000000000000" + a03n1;
        lena04 = a04.length;
        a00 = a00 + a04.substr(lena04 - 14,14);
      }
      lena00 = a00.length;
      a051 = "0000000000000000000000000000" + a00;
      lena051 = a051.length;
      a05  = a051.substr(lena051-28,28);
  }
  posa++;
  a00 = a00 + a.substr(posa,1);
  lena00 = a00.length
  a051 = "0000000000000000000000000000" + a00;
  lena051 = a051.length;
  a05  = a051.substr(lena051-28,28)  


  d = d + '' + c;
}

 

alert(d);


わり算01

2023年03月27日 16時03分10秒 | WSH

0割対応は自分でいれてください

 

被除数は、整数

除数は、14桁整数まで

 

<javascript>

a=76543210987654321;
lena=(a+'').length;
b=87;
lenb=(b+'').length;
c=0;
d='';
posa=0;

a02='';
a02=(a+'').substr(posa,1);


c=0;
a03='';

 

while(posalena){
    c=0;
    if(a02 * 1.0 >= b){
      while(a02 * 1.0 >= b){
         c++;
         a02 = a02 * 1.0 - b;

      }
    }
    
    posa++;
    a02=a02+(a+'').substr(posa,1);
    
    d=d+''+c;
}
alert(d);

 

 

<vbscript>


   dim  data
   dim  data01
   
   dim jyo
   dim jyo_dbl(10)
   dim jyo_stra (10)
 
   
  data = "87654321"
  jyo   =  87

  len_data = Len(data)

 c = 0
 d = 0
 posa = 1
 
 a02 = ""
 a02 = Mid(data,posa,1)

 Do Until (posa > len_data)
    c = 0
    If Cdbl(a02) >= jyo Then
        Do While Cdbl(a02) >= jyo
            c = c + 1
            a02  = Cdbl(a02) - jyo
        Loop
    End If 
    posa = posa + 1
    a02  = Cstr(a02) & Mid(data, posa, 1)

    d = d & c
 Loop

 Msgbox d

 

 

<記事とは無関係>

1..10|&{begin{$a="abc";$c=0}process{$c=$c+$_;echo ($a+$_)}end{echo (" sum=" + $c)}}

 

<awk>

BEGIN{
a=76543210987654321;
lena=length(a);
b=87;
lenb=length(b);

posa=1;

a02="";
a02=substr(a, posa, 1);


c=0;
d="";
 

while(posa*1.0 < lena*1.0){
    c=0;
    if(a02 * 1.0 >= b*1.0){
      while(a02 * 1.0 >= b){
         c++;
         a02 = a02 * 1.0 - b;
         print a02

      }
    }
    
    posa++;
    a02=a02 substr(a, posa, 1);
    print a02
    d= d "" c;
}
print d;
}


JScript でInputBoxを使う2

2020年07月19日 22時48分59秒 | WSH

JScript でInputBoxを使う2

”Windows Script Programming”様より
バッチファイルからMsgBox()を使う。
http://scripting.cocolog-nifty.com/blog/2009/06/msgbox-c3bc.html

使えるかどうかは、別にして、inputboxを実行してみる
MSHTA.EXE vbscript:Execute("Set oFS=CreateObject(""Scripting.FileSystemObject""):Set oTxt=oFS.CreateTextFile(""C:\Users\usr\Desktop\temp.inputbox.tmp""):oTxt.WriteLine(InputBox(""aaa"",""bbb"",""ccc"")):oTxt.Close:close")

動くので次。
<test02.js>
//test02.js

var oWshShell = new ActiveXObject("WScript.Shell");
var myParm = new String;

myParm   =  "MSHTA.EXE vbscript:Execute(" +
             "\"Set oFS=CreateObject(\"\"Scripting.FileSystemObject\"\"):" +
             "Set oTxt=oFS.CreateTextFile(\"\"C:\\Users\\usr\\Desktop\\temp.inputbox.tmp\"\"):" +
             "oTxt.WriteLine(InputBox(\"\"aaa\"\",\"\"bbb\"\",\"\"ccc\"\")):" +
             "oTxt.Close:close\"" +
             ")";
 
  res01 = "wait";
  res01 =  oWshShell.Run(myParm , 1,true);

  
    //res01 = 0;
    while(res01 == "wait"){
      WScript.Sleep(1000);
    }
    var pFS  = new ActiveXObject("Scripting.FileSystemObject");
    var pTxt = pFS.OpenTextFile("C:\\Users\\usr\\Desktop\\temp.inputbox.tmp");
    myText   = pTxt.ReadAll();

    WScript.Echo(myText);
    pTxt.Close();

 


JScript でInputBoxを使う(Excel有りの環境下にて)

2019年11月23日 08時44分52秒 | WSH

<sample01.js>
var oExcel = new ActiveXObject("Excel.Application");
var target_file = oExcel.GetOpenFilename("読み込み (*.*),*");
var a01 = oExcel.InputBox("prompt","Title","Default");
oExcel.Quit();
delete oExcel;
WScript.Echo(target_file);
WScript.Echo(a01);

 


その他のやり方1
<sample02.bat>.BATにして動かす
@if(0)==(0) ECHO OFF
C:\Windows\SysWOW64\WScript.exe //NoLogo //E:JScript "%~f0" %1
GOTO :EOF
@end
var nVBS = new ActiveXObject("ScriptControl");
    nVBS.Language = "VBScript";
    nVBS.AddCode("Function func_msgbox(a01) " + "\n" +
                 " func_msgbox = MsgBox(a01)" + "\n" +
                 "End Function " + "\n" +
        "Function func_inputbox(prompt,title,default) " + "\n" +
        " func_inputbox = inputBox(prompt,title,default)" + "\n" +
        "End Function");
var oVBS = nVBS.CodeObject;
WScript.Echo(oVBS.func_msgbox("aaaaa"));
WScript.Echo(oVBS.func_inputbox("Prompt","Title","Default"));


【下準備】VBScriptで2^32シフト。多桁計算のかけ算。

2018年05月08日 02時27分40秒 | WSH

VBAでDecimal型使えば、簡単です。

VBScriptで実行するには、どうするか?の、試行でございま~す。

<Sheet Setting マクロ>

Sub set_formula()
Range("A1").Formula = "=2^32-1"
Range("B1").Formula = "=DEC2HEX(A1,10)"
Range("C1").Formula = "=HEX2BIN(MID($B$1,3,2),8)"
Range("D1").Formula = "=HEX2BIN(MID($B$1,5,2),8)"
Range("E1").Formula = "=HEX2BIN(MID($B$1,7,2),8)"
Range("F1").Formula = "=HEX2BIN(MID($B$1,9,2),8)"

Range("C2").Formula = "=BIN2DEC(C1)"
Range("D2").Formula = "=BIN2DEC(D1)"
Range("E2").Formula = "=BIN2DEC(E1)"
Range("F2").Formula = "=BIN2DEC(F1)"

Range("C4").Formula = "=C2*2^24"
Range("D4").Formula = "=D2*2^16"
Range("E4").Formula = "=E2*2^8"
Range("F4").Formula = "=F2"
Range("G4").Formula = "=SUM(C4:F4)"

Range("C7").Formula = "=2^32"
Range("D7").Formula = "=RIGHT(REPT(0,14)&C7,14)"

Range("C8").Formula = "=LEN(C7)"

Range("C8").Formula = "=G4"
Range("D8").Formula = "=RIGHT(REPT(0,14)&C8,14)"

'2^32固定
Range("D11").Formula = "=LEFT(D7,7)"
Range("E11").Formula = "=RIGHT(D7,7)"

Range("D12").Formula = "=LEFT(D8,7)"
Range("E12").Formula = "=RIGHT(D8,7)"

Range("E14").Formula = "=RIGHT(REPT(""0"",14)&(E11*E12),14)"

Range("D15").Formula = "=LEFT(E14,7)"
Range("E15").Formula = "=RIGHT(E14,7)"

Range("D16").Formula = "=RIGHT(REPT(""0"",14)&(D11*E12),14)"

Range("C17").Formula = "=LEFT(D16,7)"
Range("D17").Formula = "=RIGHT(D16,7)"

Range("D19").Formula = "=RIGHT(REPT(""0"",14)&(E11*D12),14)"

Range("C20").Formula = "=LEFT(D19,7)"
Range("D20").Formula = "=RIGHT(D19,7)"

Range("C22").Formula = "=RIGHT(REPT(""0"",14)&(D11*D12),14)"

Range("B23").Formula = "=LEFT(C22,7)"
Range("C23").Formula = "=RIGHT(C22,7)"

Range("D25").Formula = "=RIGHT(REPT(""0"",14)&(D15+D17+D20),14)"

Range("C26").Formula = "=LEFT(D25,7)"
Range("D26").Formula = "=RIGHT(D25,7)"

Range("C28").Formula = "=RIGHT(REPT(""0"",14)&(C17+C20+C23+C26),14)"

Range("B29").Formula = "=LEFT(C28,7)"
Range("C29").Formula = "=RIGHT(C28,7)"

Range("E30").Formula = "=C29&D26&E15"

Range("C7:D7").Interior.ColorIndex = 33
Range("D11:E11").Interior.ColorIndex = 33

Range("G4").Interior.ColorIndex = 43
Range("C8:D8").Interior.ColorIndex = 43
Range("D12:E12").Interior.ColorIndex = 43

Range("E14:F14").Interior.ColorIndex = 4
Range("D16").Interior.ColorIndex = 4
Range("D19").Interior.ColorIndex = 4
Range("C22").Interior.ColorIndex = 4

Range("D15:E15").Interior.ColorIndex = 6
Range("C17:D17").Interior.ColorIndex = 6
Range("C20:D20").Interior.ColorIndex = 6
Range("B23:C23").Interior.ColorIndex = 6

Range("D25").Interior.ColorIndex = 8
Range("C28").Interior.ColorIndex = 8

Range("C26:D26").Interior.ColorIndex = 39
Range("B29:C29").Interior.ColorIndex = 39

Range("E30:G30").Interior.ColorIndex = 40

End Sub


打ち込み用

 

A1 =2^32-1
B1 =DEC2HEX(A1,10)
C1 =HEX2BIN(MID($B$1,3,2),8)
D1 =HEX2BIN(MID($B$1,5,2),8)
E1 =HEX2BIN(MID($B$1,7,2),8)
F1 =HEX2BIN(MID($B$1,9,2),8)

C2 =BIN2DEC(C1)

D2 =BIN2DEC(D1)
E2 =BIN2DEC(E1)
F2 =BIN2DEC(F1)

C4 =C2*2^24

D4 =D2*2^16
E4 =E2*2^8
F4 =F2
G4 =SUM(C4:F4)

C7 =2^32

D7 =RIGHT(REPT(0,14)&C7,14)

C8 =LEN(C7)

C8 =G4

D8 =RIGHT(REPT(0,14)&C9,14)

 

2^32固定
D11 =LEFT(D7,7)
E11 =RIGHT(D7,7)

 

D12 =LEFT(D9,7)
E12 =RIGHT(D9,7)

 

E14 =RIGHT(REPT("0",14)&(E11*E12),14)

 

D15 =LEFT(E14,7)
E15 =RIGHT(E14,7)

 

D16 =RIGHT(REPT("0",14)&(D11*E12),14)

 

C17 =LEFT(D16,7)
D17 =RIGHT(D16,7)

 

D19 =RIGHT(REPT("0",14)&(E11*D12),14)

 

C20 =LEFT(D19,7)
D20 =RIGHT(D19,7)

 

C22 =RIGHT(REPT("0",14)&(D11*D12),14)

 

B23 =LEFT(C22,7)
C23 =RIGHT(C22,7)

 

D25 =RIGHT(REPT("0",14)&(D15+D17+D20),14)

 

C26 =LEFT(D25,7)
D26 =RIGHT(D25,7)

 

C28 =RIGHT(REPT("0",14)&(C17+C20+C23+C26),14)

 

B29 =LEFT(C28,7)
C29 =RIGHT(C28,7)

 

E30 =C29&D26&E15


 

Sub a001()
  Dim a01 As Variant
  Dim a02 As Variant
  Dim a03 As Variant

  a01 = CDec(2 ^ 32 - 1)
  a02 = CDec(2 ^ 32)
  a03 = a02 * a01
  Debug.Print CStr(a03)
End Sub