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のアカウントを適当に用意する。
次は
ここに作成したアカウントを登録しよう
細かく説明しようと思ったが、すまない ここを参考にしてくれ
丁寧・親切・直球に書いてくれててわかりやすいぞ
後はソースコードをラズパイに持っていって動かそう
おじさんはソースを実行する時コマンドライン引数としてツイート内容を与えるように変更しているよ(後、クラス名も変えてるよ)
jarと先程のソースを置いたところでコンパイルしよう
javac -cp twitter4j-core-4.0.4.jar Tweet.java
コンパイルできたら実行するぞ
java -cp .:twitter4j-core-4.0.4.jar Tweet test
こんな感じでツイートてきた ライブラリって有能
syussya.sh
#!bin/sh
cd /home/pi/~(ソースのあるディレクトリ)
java -cp .:twitter4j-core-4.0.4.jar Tweet 出社
cd
完成!!(同じファイルの退社版も作ってます。)
※お分かりいただけただろうか、実行ディレクトリのパスを試行錯誤したが
わからずにcdを連打した力技汚スクリプトだ(今後改善します。)
後は、定時にスクリプトを実行するようにcrontab設定するぞ
crontab -e で設定ファイルが開く(よく忘れる)
細かい書式はここに載ってるぞ! よくお世話になるサイトだ(覚書)
作りながらブログ書いたから結合動作チェックは 行えてない
初めて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文字の意味のある文章になる。