書き置きです。

実行ログ書き置き

C:\Windows\system32>npm get proxy
null

C:\Windows\system32>npm get http-proxy
undefined

C:\Windows\system32>npm get https-proxy
null

C:\Windows\system32>npm config ls -l
; cli configs
long = true
metrics-registry = "https://registry.npmjs.org/"
scope = ""
user-agent = "npm/5.5.1 node/v9.2.0 win32 x64"

; builtin config undefined
prefix = "C:\\Users\\(user_name)\\AppData\\Roaming\\npm"

; default values
access = null
allow-same-version = false
also = null
always-auth = false
auth-type = "legacy"
bin-links = true
browser = null
ca = null
cache = "C:\\Users\\(user_name)\\AppData\\Roaming\\npm-cache"
cache-lock-retries = 10
cache-lock-stale = 60000
cache-lock-wait = 10000
cache-max = null
cache-min = 10
cafile = undefined
cert = null
cidr = null
color = true
commit-hooks = true
depth = null
description = true
dev = false
dry-run = false
editor = "notepad.exe"
engine-strict = false
fetch-retries = 2
fetch-retry-factor = 10
fetch-retry-maxtimeout = 60000
fetch-retry-mintimeout = 10000
force = false
git = "git"
git-tag-version = true
global = false
global-style = false
globalconfig = "C:\\Users\\(user_name)\\AppData\\Roaming\\npm\\etc\\npmrc"
globalignorefile = "C:\\Users\\(user_name)\\AppData\\Roaming\\npm\\etc\\npmignore"
group = 0
ham-it-up = false
heading = "npm"
https-proxy = null
if-present = false
ignore-prepublish = false
ignore-scripts = false
init-author-email = ""
init-author-name = ""
init-author-url = ""
init-license = "ISC"
init-module = "C:\\Users\\(user_name)\\.npm-init.js"
init-version = "1.0.0"
json = false
key = null
legacy-bundling = false
link = false
local-address = undefined
loglevel = "notice"
logs-max = 10
; long = false (overridden)
maxsockets = 50
message = "%s"
; metrics-registry = null (overridden)
node-version = "9.2.0"
offline = false
onload-script = null
only = null
optional = true
otp = 0
package-lock = true
parseable = false
prefer-offline = false
prefer-online = false
; prefix = "C:\\Program Files\\nodejs" (overridden)
production = false
progress = true
proxy = null
read-only = false
rebuild-bundle = true
registry = "https://registry.npmjs.org/"
rollback = true
save = true
save-bundle = false
save-dev = false
save-exact = false
save-optional = false
save-prefix = "^"
save-prod = false
scope = ""
script-shell = null
scripts-prepend-node-path = "warn-only"
searchexclude = null
searchlimit = 20
searchopts = ""
searchstaleness = 900
send-metrics = false
shell = "C:\\Windows\\system32\\cmd.exe"
shrinkwrap = true
sign-git-tag = false
sso-poll-frequency = 500
sso-type = "oauth"
strict-ssl = true
tag = "latest"
tag-version-prefix = "v"
timing = false
tmp = "C:\\Users\\(user_name)\\AppData\\Local\\Temp"
umask = 0
unicode = false
unsafe-perm = true
usage = false
user = 0
; user-agent = "npm/{npm-version} node/{node-version} {platform} {arch}" (overri
dden)
userconfig = "C:\\Users\\(user_name)\\.npmrc"
version = false
versions = false
viewer = "browser"

C:\Windows\system32>

jsインポート順序のエラーについて覚書

test.html

<html>
    <head>
        <meta charset="UTF-8">

        <script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
        <script type="text/javascript" src="js/before.js"></script>
        <script type="text/javascript" src="js/after.js"></script>

    </head>
    <body>

    </body>
</html>

before.js

var test = new Array();

function myDate(){
    var date = new Date();
    test[0] = date.getFullYear();
    test[1] = date.getMonth();
    test[2] = date.getDay();
}

function testStr(){
    myDate();
    return test[0]+test[1]+test[2];
}

function testAlert(){
    alert(testStr());
}

after.js

$(function(){
    testAlert();
    alert(test[0]);
});

jquery-3.2.1.min.js ・before.js ・after.js の並びで正常動作

・before.js ・after.js ・jquery-3.2.1.min.js の並びにすると

ReferenceError: $ is not defined

jqueryないです。エラー

jquery-3.2.1.min.js ・after.js ・before.js の並びでも正常動作

機能拡張作成サンプル

VBAの勉強をしたので覚書

列の英語名を返す奴のサンプル

Sub Main()  
    Set c = ActiveWorkbook.Sheets("シート名").Cells(2, 60)
    CAd = c.Address  

    Debug.Print (CAd)
    Debug.Print (ERow(CStr(CAd)))
    
  
End Sub

'引数:セルアドレス
'戻り値:列名(英語)
Function ERow(CellAddress As String) As String
    Dim regex
    Set regex = CreateObject("VBScript.RegExp")
    regex.Pattern = "[A-Z]+"
    
    
    Dim result
    Set result = regex.Execute(CellAddress)
    
    'Debug.Print (result.Count)
    'Debug.Print (result(0).Value)
        
    Set regex = Nothing
    
    ERow = result(0).Value
End Function

シートのデータが入ってるであろう範囲を判定して 文字フォントと文字ポイントを読み取る奴のサンプル

Sub Main()

  Dim c As Range
  
  Set sheet0 = Workbooks("ブック名").Sheets("シート名")

  
  Row0 = sheet0.UsedRange.Rows.Count
  Col0 = sheet0.UsedRange.Columns.Count
  
  Debug.Print (Row0)
  Debug.Print (Col0)
  

  Set c = sheet0.Range(Cells(1, 1), Cells(Row0, Col0))
  c.Select
  

  For Each c In Selection
    Debug.Print _
      c.Address(False, False) & vbTab & _
      c.Font.Size & vbTab & c.Font.Name
  Next c

End Sub

本日のリベンジ分

複数ファイルに対して複数単語検索をかけるVBAのサンプルです。

 

 (ソース ここから)

Sub ボタン1_Click()

Dim myFile As Variant
Dim f As Variant

ChDir "C:\Users\Admin\Desktop"
myFile = Application.GetOpenFilename( _
FileFilter:="Excel ファイル (*.xls; *.xlsx),*.xls; *.xlsx", _
MultiSelect:=True)

'【ループ】ファイル選択ループ
If IsArray(myFile) Then
For Each f In myFile
Debug.Print f

Workbooks.Open f

'アクティブワークブックのシート数
Set aSheets = ActiveWorkbook.Worksheets
sCount = aSheets.Count
Debug.Print (sCount)

'検索単語数
Set sSheet = Workbooks("開発.xlsm").Worksheets("用語")


MaxRow = sSheet.UsedRange.Rows.Count
MaxCol = sSheet.UsedRange.Columns.Count

'使用最大行
Debug.Print (MaxRow)


'【ループ】シート
For i = 1 To sCount
Set nowSheet = Worksheets(i)


'【ループ】単語
For j = 1 To MaxRow - 1

keyWord = sSheet.Cells(j + 1, 1).Value
' Debug.Print (j)
Debug.Print (keyWord)

Dim beforelngYLine
Dim beforeintXLine

Dim lngYLine As Long
Dim intXLine As Integer
Dim objFind As Object
Dim strAddress As String

Set objFind = nowSheet.Cells.Find(keyWord)
Debug.Print (nowSheet.Name)
If Not objFind Is Nothing Then
strAddress = objFind.Address
Do While Not objFind Is Nothing
Debug.Print ("Loop")
lngYLine = objFind.Cells.Row
intXLine = objFind.Cells.Column
MsgBox keyWord + "、" + CStr(lngYLine) + "行目の" _
+ CStr(intXLine) + "列目にあります"
Debug.Print (CStr(lngYLine) + "行目 " + CStr(intXLine) + "列目にあります")

Set objFind = nowSheet.Cells.FindNext(objFind)

Debug.Print (strAddress + "---" + CStr(objFind.Address))
If strAddress = CStr(objFind.Address) Then
Exit Do
End If

Loop
Else
' MsgBox "見つかりませんでした"
End If

Next j

Next i

ActiveWorkbook.Close

'ファイル選択ループ(後ろ)
Next
Else
Debug.Print myFile
End If

End Sub

(ソース ここまで)

 

急いで書き残してるのでインデントは修正していない。

ファイルIOの話

おじさんやで(´・ω・`)

 

システムというか個人(自分)で使う機能とかサービスでDB構築をするのって

結構面倒なので出力ファイルとかに擬似DBよく作るんだけど

 

その時とかによく使うファイルIOを書き留めておく。

  

package fileIO;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;

public class FileIO {


public static void main(String[] args) {

//ファイル取り込み
String inPath = "C:\\test_text\\test.txt";
String data = myFileReader(inPath);

 

//ファイル書き出し
String outPath = "C:\\test_text\\outtest.txt";
myFileAddWriter(data+"\r\n", outPath);
}

public static String myFileReader(String filePath){
StringBuilder retSB = new StringBuilder();
try {
File file = new File(filePath);
FileInputStream input = new FileInputStream(file);
InputStreamReader stream = new InputStreamReader(input,"SJIS");
BufferedReader bR = new BufferedReader(stream);

String hantei = bR.readLine();

while(hantei != null){
retSB.append(hantei + "\r\n");
hantei = bR.readLine();
}

bR.close();
} catch (Exception e) {
e.printStackTrace();
}

return retSB.toString();
}

public static void myFileWriter(String dataString,String outputPAth){
FileWriter fW;
try {
fW = new FileWriter(outputPAth);
fW.write(dataString);
fW.close();
} catch (IOException e) {
e.printStackTrace();
}

}

public static void myFileAddWriter(String dataString,String outputPAth){
FileWriter fW;
try {
fW = new FileWriter(outputPAth,true);
fW.write(dataString);
fW.close();
} catch (IOException e) {
e.printStackTrace();
}

}

}

 

これソースべた張りした時左に寄るのどうにかしたいなぁ…(´ε`;)ウーン…

 

またねノシ

出社・退社スクリプトの話

おじさんです(´・ω・`)

 

新社会人になってツイッターで出社と退社を呟くようになったんだが

 

とうとうめんどくさくなってきたので全自動化してみようと思う。

 

まずはtwitterのアカウントを適当に用意する。

 

次は

apps.twitter.com

ここに作成したアカウントを登録しよう

 

細かく説明しようと思ったが、すまない ここを参考にしてくれ

丁寧・親切・直球に書いてくれててわかりやすいぞ

gomyownway.hatenablog.com

 

後はソースコードをラズパイに持っていって動かそう

 

おじさんはソースを実行する時コマンドライン引数としてツイート内容を与えるように変更しているよ(後、クラス名も変えてるよ)

 

jarと先程のソースを置いたところでコンパイルしよう

 

javac -cp twitter4j-core-4.0.4.jar Tweet.java

 

コンパイルできたら実行するぞ

 

java -cp .:twitter4j-core-4.0.4.jar Tweet test

 

f:id:da-machi:20170724235629j:plain

 

こんな感じでツイートてきた ライブラリって有能

 

次はシェルスクリプト(出社スクリプト)を書くぞ

syussya.sh

 

#!bin/sh

cd /home/pi/~(ソースのあるディレクトリ)

java -cp .:twitter4j-core-4.0.4.jar Tweet 出社

cd

 

完成!!(同じファイルの退社版も作ってます。)

 ※お分かりいただけただろうか、実行ディレクトリのパスを試行錯誤したが

わからずにcdを連打した力技汚スクリプトだ(今後改善します。)

 

後は、定時にスクリプトを実行するようにcrontab設定するぞ

 

crontab -e で設定ファイルが開く(よく忘れる)

 

www.server-memo.net

細かい書式はここに載ってるぞ! よくお世話になるサイトだ(覚書)

 

作りながらブログ書いたから結合動作チェックは 行えてない

 

初めてBotっぽいものを作ったが案外簡単だったんでどんどん機能を載せて行きたいと思う おじさんであった(´・ω・`)

 

 

手遊び

友人と昼飯を食っていると (ワイ)ふざけたものを作った→(友人)解きたい 

の流れから問題を出すことになった。

 

文字数:64文字の文章を何らかの方法で暗号化した。

 

暗号化を行った時刻は以下のとおりである。
java.util.Date toString():Thu Jul 06 21:31:44 JST 2017
java.util.Date getTime():1499344304406

 

-----暗号化後-----
-39119-102-39120-126-39119-101-39120-126-39119-96-39120-127-39119-76-39119-76-39119-95-39118119-36-115-101-39119-123-39120127-39119-115-35-105-91-39119-95-39120118-39119-127-39119-88-39119-100-39118119-37-75121-39119-95-39119124-39119-102-39120-128-39120124-39119-123-39120126-39119-115-39119-96-39119-115-38-80-127-39120-120-39118119-39119-109-39119-119-39119-91-39119-127-39119-98-39119-96-39119-123-36-111-82-39119-125-39119-102-39119-123-39120-126-39119-90-39118119-39119120-39120122-39119-115-39119124-39119-119-39119-109-39120120-39119-92-39119-122-39120-127-39119-79-39119-115-39119-121-39120-126-39118120

補足:復号化すると64文字の意味のある文章になる。