2014年12月28日日曜日

乗っ取られたかとマジでビビった!「WinSAT.exe」

先ほど、パソコンの画面が一瞬ブリンクした(Windows Aeroが無効になった)、症状は「リモードデスクトップ」系に入られた感じと同じ、1分後また勝手に戻った。
ちょっとビビリましたよ、誰かのハッカーにパソコン乗っ取られたかと思った。
早速タスクマネージャー立ち上がってプロセスチェック、一つ怪しいプロセス発見しました。

→「WinSAT.exe」

なんどこれと早速ググってみたら、はWindows評価機能らしいです。
なんだ、マイクロソフトかよ!!もうおどかせないでくれ!と早速無効にしました。

「コントロールパネル」→「管理ツール」→「タスクスケジューラ」ー→「タスクスケジューラライブラリ」→「Microsoft」→「Windows」→「Maintenance」→「WinSAT」→「右クリック」→「無効」
参照:http://d.hatena.ne.jp/trigger7/20101211/1292084975

2014年11月10日月曜日

Another MySQL daemon already running with the same unix socket.

mysqlを起動するとき、このエラーメッセージがでたら
Another MySQL daemon already running with the same unix socket.

service mysqld stop
mv /var/lib/mysql/mysql.sock /var/lib/mysql/mysql.sock.bak
service mysqld start

で解決できるらしい

2014年11月7日金曜日

エクセルで右クリックが効かないときの対策

エクセルで右クリックが効かないときの対策
①エクセルを開いて
②Alt + F11押してVBEを出します
③Ctrl+Gでイミディエイトを出します
④下記をコピペして、Enterを押す

Application.CommandBars("cell").Enabled = True

⑤Alt+Qでシートに戻る

シートタブの右クリックが無効になった場合の対策
方法はほぼ同じ、④番のコピペが下記に変更するだけ

Application.CommandBars("Ply").Enabled = True

2014年10月30日木曜日

VBAでクエリーが日本語を含めると結果が文字化ける件

Sub hh()
Dim sql As String
Dim rs As New ADODB.Recordset
Dim con As ADODB.Connection
Dim dbConnStr As String
dbConnStr = "Driver={MySQL ODBC 5.2 ANSI DRIVER}; SERVER=localhost; DATABASE=landscape; USER=root; PASSWORD=mypass;"
Set con = New ADODB.Connection
con.Open dbConnStr
sql = "SELECT '東京都' AS tokyou"
rs.Open sql, con
Debug.Print rs!tokyou
rs.Close
Set rs = Nothing
con.Close
Set con = Nothing
End Sub
結果表示

東・

ここでは「Driver={MySQL ODBC 5.2 ANSI DRIVER}」を「Driver={MySQL ODBC 5.2 UNICODE DRIVER}」に変更すればOK
また、「rs!tokyou」は「rs.Fields("tokyou")」で書いたほうがいいと思います。

2014年10月22日水曜日

モジュールを新規ブックにimportするマクロ

モジュールを新規ブックにimportするマクロ
gTempPath = IIf(Environ$("tmp") <> "", Environ$("tmp"), Environ$("temp"))
ThisWorkbook.VBProject.VBComponents("module1").Export (gTempPath & "\module1.bas")
Workbooks.Add
ActiveWorkbook.VBProject.VBComponents.Import (gTempPath & "\module1.bas")
CreateObject("Scripting.FileSystemObject").DeleteFile gTempPath & "\module1.bas"

SQLでbit演算,合計値格納項目のクエリー方法

DB定義書ではこのような項目がありました

my_field NULL → 1:ああああ 2:いいいい 4:うううう 8:ええええ 16:おおおお (合計値格納)

つまり複数選択可能な列です。
例えば「1:ああああ 2:いいいい」が選択されてDBに登録したらmy_fieldの値は1+2=「3」です。

そうするとクエリーの書き方は:
例えば「8:ええええ」に含まれるレコードを抽出したいときは:

......... where my_field & 8 = 8

でOKです。

エクセルの入力規則の数式を使って複雑な制限を実現する例

エクセルの入力規則の数式を使って複雑な制限を実現する例です:
例えばA1セルで以下の入力を許可する:

①整数数字の入力(例)123
②整数数字-整数数字(例)123-456

以下やり方:
1.まず、「1-1」を入力すると「1月1日」とエクセルが余計のことをするので、まずセルを「文字列」にしましょう

2.数字を許す→データ→入力規則→ユーザー設定→数式:
  条件①整数数字の入力について、本来なら数式に「=ISNUMBER(A1)」で話は済んだが、こちら「文字列」にしたせいで、ISNUMBERは常にFALSE
  解決方法は「=NOT(ISERROR(INT(A1)))」を使います。

3.また、条件②整数数字-整数数字を追加すると、数式が一気に複雑になります
  「=OR(NOT(ISERROR(INT(A1))),AND(NOT(ISERROR(FIND("-",A1))),NOT(ISERROR(INT(MID(A1,1,FIND("-",A1)-1)))),NOT(ISERROR(INT(MID(A1,FIND("-",A1)+1,LEN(A1)))))))」

注意!!数式が複雑すぎで、長すぎで入れなくなってしまう可能性があります!! ↓↓↓
「A1」を自己参照の「INDIRECT(ADDRESS(ROW(),COLUMN()))」に変換しようとしたら、数式を長すぎで入れなくなってしまった…
  

2014年10月16日木曜日

VBA行・列ごとのResize

よくあるのはセルのResize
Debug.Print Range("A1").Resize(2,2).Address
    →$A$1:$B$2
そうします
Debug.Print Columns("A").Resize(1,2).EntireColumn.address
    →$A:$B

2014年8月25日月曜日

2014年8月21日木曜日

ampps "How to ..."

How to use AMPPS

  1. Default MySQL root password is "mysql".
  2. To access localhost, visit url http://localhostDocumentRoot is path/to/Ampps/www folder.
  3. To access AMPPS Enduser Panel, visit url http://localhost/ampps
  4. To access AMPPS Admin Panel, visit url, http://localhost/ampps-admin
  5. To access phpMyAdmin, visit url http://localhost/phpmyadmin
  6. To access SQLiteManager, visit url http://localhost/sqlite
  7. You can "Restore Default Configuration" files of Apache, PHP & MySQL from their respective Tabs in AMPPS Control Center. Note: Your previous configuration will be lost.
  8. You can change MySQL root password, visit url http://localhost/ampps/index.php?act=mysqlsettings. You can also refer this wiki.
  9. You can secure AMPPS Enduser/Admin Panel, visit url http://localhost/ampps/index.php?act=secure. You can also refer this wiki.
  10. Enable/Disable Python Environment (Right click on System Tray Icon of AMPPS Control Center -> Configuration -> AMPPS -> Python Environment)

どのプロセスがポートを占有しているのかを調べる

まずはポートの状況一覧を出力

netstat /aon

特定のポート(例えば443)を占有しているプロセスのPIDを取得
そして、タスクマネージャーで調べる。
以上。

2014年8月20日水曜日

JavascriptでWScriptを使ってクライアントのアプリケーションを起動させる

IEブラウザ限定、Javascriptを使ってWScriptでクライアントのアプリケーション(notepad.exeメモ帳)を起動させる
※IEの設定でActiveXを有効にすることは前提条件です。
<html>
<head>
<script language="javascript" type="text/javascript">
function OpenFile(){
var x = new ActiveXObject("WScript.Shell");
x.run('notepad.exe hello.txt');
}
</script>
</head>
<body>
<input type="button" value="メモ帳" href="#" onclick="javascript:OpenFile();"><br>
1.Internet Explorer の ActiveX コントロールの処理方法を変更するには、次の操作を実行します。<br>
2.[ツール]→[インターネット オプション]→[セキュリティ]→[レベルのカスタマイズ]。<br>
3.[ActiveX コントロールとプラグイン]。<br>
4.[ActiveX コントロールに対して自動的にダイアログを表示]で、[有効にする]。<br>
5.[署名された ActiveX コントロールのダウンロード]を[有効にする]または[ダイアログを表示する]にします。<br>
6.[ActiveX コントロールとプラグインの実行]を[有効にする]または[ダイアログを表示する]にします。<br>
7.[スクリプトを実行しても安全だとマークされている ActiveX コントロールのスクリプトの実行]を[有効にする]または[ダイアログを表示する]にします。<br>
8.[OK]をクリックして、もう一度[OK]をクリックします。
</body>
</html>

2014年7月28日月曜日

Cent OS6でresolv.confが勝手に書き換わる

Cent OS6でresolv.confが勝手に書き換わる
ここ、おおきに参考になりました、ありがとうございます。

要するに、おとなしく「ifcfg-ethX」の中にDNSを明記すればいいですね。※PEERDNS=noを入れないように。

2014年6月27日金曜日

SQLクエリー、リレーションテーブルの行を列にして、マトリックスを作る

こういうことをやりたい:


ダイナミックで縦列を作成するにはこのスレ
シンプルで手作業でいいんなら


まずサンプルデータを作る

create table user (id int , name varchar(10));
insert into user values
(1,'AA'),
(2,'BB'),
(3,'CC'),
(4,'DD'),
(5,'EE'),
(6,'FF'),
(7,'GG');

create table role (id int ,role varchar(10));
insert into role values
(1,'FW'),(2,'DF'),(3,'GK'),(4,'MF') ;

create table user_role (user_id int ,role_id int);
insert into user_role values
(1,1),(1,2),(2,1),(2,3),(3,4),(4,2),(5,1),(5,2),(6,2),(6,3),(7,1),(7,4);


そしてクエリーは

select
id,
name,
coalesce(max(t.FW),'No') as FW,
coalesce(max(t.DF),'No') as DF,
coalesce(max(t.GK),'No') as GK,
coalesce(max(t.MF),'No') as MF
from user u
left join (
select
case
when r.id = 1 AND ur.role_id is not null then 'Yes'
else null
end `FW`,

case
when r.id = 2 AND ur.role_id is not null then 'Yes'
else null
end `DF`,

case
when r.id = 3 AND ur.role_id is not null then 'Yes'
else null
end `GK`,

case
when r.id = 4 AND ur.role_id is not null then 'Yes'
else null
end `MF`,
user_id
from role r
left join user_role ur on ur.role_id = r.id
)t
on t.user_id = u.id
group by u.id


クエリー結果

ID NAME FW DF GK MF
1 AA Yes Yes No No
2 BB Yes No Yes No
3 CC No No No Yes
4 DD No Yes No No
5 EE Yes Yes No No
6 FF No Yes Yes No
7 GG Yes No No Yes

質問したURL
http://stackoverflow.com/questions/24425234/how-can-i-get-a-matrix-table-from-two-related-table-by-one-query-statement/24426021#24426021
Abhik Chakrabortyさん、ありがとうございました。

DEMO

クエリーシミュレーション、すげー使えるサイト
http://sqlfiddle.com

2014年6月6日金曜日

vbaで環境依存文字の扱い

VBEで環境依存文字をコピペすると「?」になってしまう。vbaで環境依存文字を扱いには

Range("A1") = ChrW(&H2611)

「2611」は"☑"の文字コードです。文字コードの調べ方は

MsgBox Hex(AscW(Range("A1").Value))

あるいは、直接「挿入」→「記号と特殊文字」で確認するなど

2014年4月25日金曜日

コマンドラインからインストールVMware Toolをインストール

まずはvSphere Clientから仮想マシンを右クリック→ゲスト→VMware Toolインストールを押します
そしてコンソールで

# mount /dev/cdrom /mnt
# cp /mnt/VMwareTools-9.0.5-1065307.tar.gz /usr/local/src
# cd /usr/local/src
# tar zxvf VMwareTools-9.0.5-1065307.tar.gz
# cd vmware-tools-distrib/
# perl ./vmware-install.pl

2014年4月12日土曜日

Centos6.5にOpenmeetings2.2.0をインストール


このスレhttp://blog.iandreev.com/?p=1255(evernote保存済み)


Hardware Requirements
Minimalistic requirement (without Document Converters, Recorder and Upload feature) 1GHz CPU 1 GB RAM ( server-side )
Recommended requirement 2x/4x 2GHz ++ CPU (32 or 64Bit) 4GB RAM. If you have a 64Bit Operating System check if there is a OpenOffice 64Bit Version available for your OS ( server-side )
Headset/Microphone recommendation: Logitech ClearChat PC Wireless, for example from Amazon or EBay Auctions ( cient-side ). See all recommendations for cameras, headsets and speakerphones.


OSインストール
Centos 6.5
インストールタイプ:ミニマム

setenforceとiptablesを止め
# vi /etc/sysconfig/selinux
-------------------------------------------------------------------
SELINUX=enforcing

SELINUX=disabled
-------------------------------------------------------------------
# getenforce
# setenforce 0
$ service iptables stop
$ chkconfig iptables off

eth0をセットアップ
(例)
# vi /etc/sysconfig/network-scripts/ifcfg-eth0
-------------------------------------------------------------------
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=192.168.25.108
NETMASK=255.255.255.0
GATEWAY=192.168.25.254
-------------------------------------------------------------------
# vi /etc/resolv.conf
-------------------------------------------------------------------
search localdomain
nameserver xx.xx.xx.xx
----------------------3---------------------------------------------
# ifdown eth0
# ifup eth0

ping google.com通ればOK

# yum -y install wget telnet gcc-c++ zlib-devel libjpeg-devel freetype-devel giflib-devel ghostscript ImageMagick unzip sox libreoffice mysql mysql-server
時間かかる

# chkconfig mysqld on
# service mysqld start
# mysql_secure_installation
ここはrootのパスワードを設定したり、TestDBを削除したり、いろいろセキュリティ強化をする。指示をよく読んで従えばいいです。

# mysql -uroot -p
> CREATE DATABASE openmeetings DEFAULT CHARACTER SET 'utf8';
> GRANT ALL PRIVILEGES ON openmeetings.* TO 'openmeetings'@'localhost' IDENTIFIED BY 'mypasswd' WITH GRANT OPTION;
> quit

# cd /tmp
# wget http://www.swftools.org/swftools-0.9.2.tar.gz
# tar xvf swftools-0.9.2.tar.gz
# cd swftools-0.9.2
# ./configure --libdir=/usr/lib --bindir=/usr/bin
# make
# vi swfs/Makefile
「rm」が入っている2行の“-o -L”を削除して保存
# make install
# cd ..
# wget http://jodconverter.googlecode.com/files/jodconverter-core-3.0-beta-4-dist.zip
# unzip jodconverter-core-3.0-beta-4-dist.zip
# wget http://downloads.sourceforge.net/project/lame/lame/3.99/lame-3.99.5.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Flame%2Ffiles%2Flame%2F3.99%2F&ts=1392491323&use_mirror=hivelocity
# mv lame-3.9* lame-3.99.5.tar.gz
# tar xvf lame-3.99.5.tar.gz
# cd lame-3.99.5
# ./configure --libdir=/usr/lib --bindir=/usr/bin
# make
# make install
# cd ..
# wget http://ffmpeg.org/releases/ffmpeg-1.1.1.tar.gz
# tar xvf ffmpeg-1.1.1.tar.gz
# cd ffmpeg-1.1.1
# ./configure --libdir=/usr/lib --bindir=/usr/bin --enable-libmp3lame --disable-yasm
# make
時間かかる
# make install
# cd ..

jdk-7u51-linux-x64.rpmをダウンロード
# rpm -ivh jdk-7u51-linux-x64.rpm
# vi /etc/profile.d/java.sh(新規)
-------------------------------------------------------------------
export JAVA_HOME=/usr/java/default
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar
export JRE_HOME=.:$JAVA_HOME/jre
-------------------------------------------------------------------

# ls -la /etc/alternatives/java*
# alternatives --install /usr/bin/java java /usr/java/default/bin/java 1
# alternatives --config java(2を選択)
# java -version



# mkdir /openmeetings
# cd /openmeetings
# wget http://archive.apache.org/dist/openmeetings/2.2.0/bin/apache-openmeetings-2.2.0.tar.gz
# tar xvf mysql-connector-java-5.0.8.tar.gz
# cp mysql-connector-java-5.0.8/mysql-connector-java-5.0.8-bin.jar /openmeetings/webapps/openmeetings/WEB-INF/lib
# cd /openmeetings/webapps/openmeetings/WEB-INF/classes/META-INF
# cp mysql_persistence.xml persistence.xml
# vi persistence.xml
mysql のusernameとpasswordを編集して保存 openmeetings / mypasswd
# cd /openmeetings/webapps/openmeetings
# cp -R /tmp/jodconverter-core-3.0-beta-4 .
# cd /openmeetings
# sh red5.sh
完了あとは待ちだけ

http://192.168.25.108:5080/openmeetings/install
最初のid/passは管理者だから、openmeetings / mypasswd
emailを管理者のメールで入力して、組織(domain)を入れて、適当でいいとおもう
それ以降は全部デフォルトにして、installボタンを押す。あとは画面が変わるまで待ち

以下任意
起動時自動実行するなら
vi /etc/init.d/red5
-----------------------------------------------------------------------------------------------
#
#!/bin/sh -e
#
# chkconfig: 2345 20 80
# description: Startup script for Red5/openmeetings

export RED5_HOME=/openmeetings/
start_red5="$RED5_HOME/red5.sh"
stop_red5="$RED5_HOME/red5-shutdown.sh"

start() {
echo -n "Starting Red5: "
${start_red5} &
echo "done."
}
stop() {
echo -n "Shutting down Red5: "
${stop_red5}
echo "done."
}

case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
sleep 10
start
;;
*)
echo "Usage: $0 {start|stop|restart}"
esac

exit 0
-----------------------------------------------------------------------------------------------
# chmod +x /etc/init.d/red5
# service red5 stop
# chkconfig red5 on
# service red5 start

2014年4月7日月曜日

create a super user can login from every where


GRANT ALL PRIVILEGES ON *.* TO myuser@'%' IDENTIFIED BY 'some_password' WITH GRANT OPTION;

2014年3月25日火曜日

mysqlの正規表現REGEXPと文字列抽出SUBSTRING,LOCATEで括弧の中の内容を抽出する

mysqlの正規表現と文字列抽出で括弧の中の内容を抽出する

共同住宅(45戸)

45戸

一般の正規表現では数字を表すのは'\d'で、非数字は'\D'で行けるはずだが、
mysqlでは'[0-9]'が数字みたい。本当?
また括弧'('を表示するのに、'\('ではなく、'[.(.]'と'[.).]'です。
http://dev.mysql.com/doc/refman/5.1-olh/ja/regexp.html
クエリーはこんな感じ

SELECT stringWithBracket,
TRIM(SUBSTRING(stringWithBracket, LOCATE('(',stringWithBracket)+1, LOCATE(')',stringWithBracket)- LOCATE('(',stringWithBracket)-1)) AS house
FROM myTable
WHERE t_gyoumu.shuyou_youto REGEXP '[.(.][0-9]+戸[.).]';

mysql、ユーザを作成して、そして同名データベースを作成して、すべての特権を付与する


CREATE USER 'lands'@'%' IDENTIFIED BY '***'; GRANT USAGE ON *.* TO 'lands'@'%' IDENTIFIED BY '***';
CREATE DATABASE IF NOT EXISTS `lands`; GRANT ALL PRIVILEGES ON `lands`.* TO 'lands'@'%';

centosディスク容量Usedが100%になりました!.xsession-errorsが肥大化しているせいだ

まず

# df -h

そして、どのフォルダーが一番容量を食っているかを調べる

# du -h --max-depth 1 /
# du -h --max-depth 1 /root

/root/.xsession-errorsが肥大化していること発見

全部削除して、そして全部「無」につなげてしまえ!

# rm -r ${HOME}/.xsession-errors
# ln -s /dev/null ${HOME}/.xsession-errors

以上、再起動(再起動しないと何故かdfで確認しでも更新されない)

# shutdown -r now

再起動したら、dfで確認したら、usedが100%→39%になりました

2014年3月23日日曜日

エクセル、シートをPDFファイルに保存するメソッド

Sub savePdf(ByRef st As Worksheet, saveTo As String)
    st.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        saveTo, Quality:= _
        xlQualityStandard, IncludeDocProperties:=True, _
        IgnorePrintAreas:=False, _
        OpenAfterPublish:=False
End Sub
使い方:

Call savePdf(ActiveSheet, "c:\abc.pdf")

2014年3月15日土曜日

5GHzと2.4GHzで同じネットワーク名(SSID)

5GHzと2.4GHzで同じネットワーク名(SSID)で違う暗号化キーを設定した場合、接続できなくなる場合があります。
ネットワーク名(SSID)を同じにする場合は、必ず暗号化キーも同じにしてください。

2014年3月14日金曜日

非表示の行をスキップし、可視行(列)までにOffsetする関数を作りました

非表示の行をスキップし、可視行(列)までにOffsetする関数を作りました
Function offsetVisible(ByRef baseCl As Range, offsetX As Long, offsetY As Long) As Range
    Dim targetCl As Range
    Set targetCl = baseCl.Offset(offsetX, offsetY)
    Do Until targetCl.EntireRow.Hidden = False
        If offsetX > 0 Then
            Set targetCl = targetCl.Offset(1, 0)
        ElseIf offsetX < 0 Then
            Set targetCl = targetCl.Offset(-1, 0)
        End If
        If offsetY > 0 Then
            Set targetCl = targetCl.Offset(0, 1)
        ElseIf offsetY < 0 Then
            Set targetCl = targetCl.Offset(0, -1)
        End If
    Loop
    Set offsetVisible = targetCl
End Function

PHP、HTML埋め込みif文とfor...each文

HTML埋め込みif文(PHP)

<?php if ($hoge == 'あ'): ?>
    <span>あです</span>
<?php elseif($hoge == 'い'): ?>
    <span>いです</span>
<?php else: ?>
    <span>あでもいでもない</span>
<?php endif; ?>


HTML埋め込みforeach文(PHP)

<?php foreach ( $data as $rec) : ?>
    <li>
        <?php echo $rec; ?>
    </li>
<?php endforeach; ?>

2014年3月6日木曜日

エクセル数式で自分自身のセルを参照する方法


=OFFSET(INDIRECT(ADDRESS(ROW(),COLUMN())), 0, 1)

該当セルの右隣りのセルを返す

R1C1参照形式ならもっと簡単

=OFFSET(RC,0,1)
または
=RC[1]


R1C1参照形式に変更するには


条件書式の条件指定で他のセルの値を参照するときにとても便利
例えば累計計算時、値がなければ累計を表示したくないときは、条件書式で下記のような設定して、条件に満たす場合、文字色を白くすることで見えなくするなど。

mysqlの日付の比較メソッド,datediffとperiod_diff


select abs(datediff('2013-01-01','2014-01-01'));
#365
select period_diff(date_format('2014-03-06', '%Y%m'), date_format('2012-03-06', '%Y%m')) as month;
#24

mysqldump コマンド常用パターン

引用元(LAYER8):
mysqldumpで複数テーブルもしくは特定のテーブルなど条件指定でレコードを出力する方法



特定のテーブル(複数可)のレコードのみをdumpする場合(テーブル作成情報を書き込まない)
$ mysqldump -u ユーザ名 -p -t データベース名 テーブル1 テーブル2...> ファイル名

データベース全体のレコードのみをdumpする場合(テーブル作成情報を書き込まない)
$ mysqldump -u ユーザ名 -p -t データベース名 > ファイル名

データベース全体のテーブル構造のみをダンプする場合(レコード情報を一切書き込まない)
$ mysqldump -u ユーザ名 -p -d データベース名 > ファイル名

一定の条件を満たすレコードのみdumpする
$ mysqldump -u ユーザ名 -p -t "--where=カラム名='文字列'" データベース名 テーブル名 > ファイル名
$ mysqldump -u ユーザ名 -p -t "-wカラム名>数値" データベース名 テーブル名 > ファイル名

2014年2月24日月曜日

Excel数値の書式について


"*"(#,###);[赤]#,###;#,###

  11000 → *(11,000)
 -11000 → -11,000
         0 →


プラスのとき;マイナスの時;ゼロの時

ゼロの時は「#,##」でも何も表示されないので結構です。
そんな感じ

端末や地域によって、google playでは普通にインストールできないアプリのインストール方法

google playで端末や地域によって、検索しでも出てこないアプリがあります。出てきでもインストールできないことがあります。
実は、まず、一台root済みでそのアプリをインストール可能な端末を用意して、ファイルマネージャーなどで下記の場所をアクセス

/data/app/

インストール済みのapkがそこにあるはず。それをインストール不可の端末にコピーすれば、大きな可能性でインストールができてしまう
ということが分かった。



2014年2月23日日曜日

エクスプローラーのドライブに変なアイコンがあったら、その直し方法

Explorerのなかのドライブのアイコンがおかしくなったら
regeditで
キー:HKEY_CURRENT_USER\Software\Classes\Applications\Explorer.exe\Drives
で該当ドライブに怪しい物があったら、削除すれば直る

正規表現のパターンにヒットするファイルをmv

結論から

普通の正規表現
先頭不一致は「^」と「?!」で行けるはずが、egrepはなぜか癖がある?
例えば「先頭DELが付いていない」の正規表現は'^(?!DEL).*'ですが、egrepだと
'^[^(!DEL)].*'になります。

ls /home/from/ | egrep '^[^(DEL)][0-9]{6}.*(US)$' | xargs -I{} mv {} /home/to/

意味は"/home/from"の下のファイルやフォルダを対象に、先頭が"DEL"以外、数字6桁の次に
任意の長さの文字列が続き、最後"US"で終わるモノを全て"/home/to"に移動する

勉強:
ファイル名のみ縦表示する
#ls -1

すごくお世話になった正規表現チェッカー
http://regexpal.com/

egrepで先頭不一致(パターン)の正規表現
サンプルでは先頭が"DEL"以外すべてヒットする書き方
egrep '^[^(DEL)].*'
egrep
構文
egrep [オプション] [正規表現パターン] ファイル名

-i 検索する際、大文字小文字を区別しない
-n マッチした行の行番号も表示する。
-c マッチした行数を出力する。
-v マッチしない行を出力する。
-[数値] マッチした行の前後[数値]行も出力する。
-A [数値] マッチした行の後[数値]行も出力する。
-B [数値] マッチした行の前[数値]行も出力する。

以下正規表現
※「」は正規表現ではなく、パターン文字列を囲む記号です。
「.」→ 任意の一文字
「*」→ 0回以上の繰り返し

「.*」→ 任意文字列、空文字列もOK

「^」→ 行頭マッチ
「$」→ 行末マッチ

「^#.*t$」→ #から始め、tで終わる任意の長さの文字列
"#this is a comment" → ◯
"#this is a title" → ×
"this is not a comment" → ×

「[ABC]」→ A,B,Cのいずれか
「[A-Z]」→ A~Zの範囲いずれか

^[A~Za-z0-9]*$ → 文字列がすべて大文字と小文字と数字のモノがヒット
「\w」→ 英数字
「\W」→ 英数字以外
「\d」→ 数字
「\D」→ 数字以外
「\s」→ スペース
「\S」→ スペース以外

ですから
「^[A~Za-z0-9]*$」 と 「\w*$」 は同じ効果

"abcdefg1234" → ◯
"abc defg1234" → ×

「(abc)」→ "ABC"というフレーズがヒットする
「[^(ABC)]」→ "ABC"フレーズを含まない
「[^ABC]」→ ABCいずれでもない
「[^A-Z]」→ A~Zの範囲いずれでもない

"^(DEL).*" → 先頭が"DEL"なっている文字列
"^(?!DEL).*" → 先頭が"DEL"なっていない文字列

「{n}」→ n回の繰り返し

「^\d{8}.*」→ 8桁数字から始める文字列すべて
"20140102ABCDEFG123" → ◯


「{n},」→ n回以上の繰り返し
「{n,m}」→ n回以上m回以下の繰り返し
「p1|p2」→ 正規表現p1かp2のいずれか

「^(FR|CN).*(US)$」→ "FR"または"CN"で始め、"US"で終わる全ての文字列

2014年2月10日月曜日

INDEXとMATCHとOFFSETの数式で実現する一覧カード化

複数セルで構成された「名前」のなかの個別セルを参照する方法
例えば:A1:G1に名前をつけて「レコード」と呼びます。
そうすると、数式でA1を参照するには
=INDEX(レコード,0,1)で「A1」を参照できます。
同様B1は
=INDEX(レコード,0,2)
それでID列をMATCHして、行番号を返す。
※Vlookupは値しか返せない、MATCHはrow番号を返す
更にOFFSETを使えば、例えば1ページ4レコードのページ分け
ビューを数式だけで作成出来ます。ページ送り戻りもこの方法で
実現できる、工夫次第、vlookupも同じ効果で実現できると思う

=INDEX(OFFSET(レコード,MATCH($O$5,$A:$A)-1,0),0,4)

サンプルダウンロード
ここからダウンロード

INDIRECTって便利だね

書式 :INDIRECT(参照文字列 , 参照形式)
機能 :指定される文字列への参照を返します
解説 :参照するセル範囲を変更します。文章で書くとわかりにくいですが、実はすごく便利な関数です

引用元:Office TANAKA

2014年1月23日木曜日

行頭から特定の文字までを置換する正規表現

下記、行頭から「#」までを削除したい場合。

例えば:
t_gyoumu.toshi_keikakukuiki IS NULL OR #都市計画区域
t_gyoumu.bouka_chiiki IS NULL OR #防火地域
t_gyoumu.shikichi_menseki_goukei IS NULL OR #敷地面積合計
t_gyoumu.youto_chiiki1 IS NULL OR #用途地域1
t_gyoumu.shuyou_youto IS NULL OR #主要用途
t_gyoumu.kouji_shubetsu IS NULL OR #工事種別
t_gyoumu.kounchiku_menseki_gk IS NULL OR #建築面積合計
t_gyoumu.zentai_nobe_menseki_ss IS NULL OR #全体延べ面積申請部分
t_gyoumu.zentai_nobe_menseki_gk IS NULL OR #全体延べ面積合計
t_gyoumu.yousekitiasho_nobe_menseki IS NULL #容積対象延べ面積

検索(正規表現):
^.+\#

置換(空文字列)

結果:
都市計画区域
防火地域
敷地面積合計
用途地域1
主要用途
工事種別
建築面積合計
全体延べ面積申請部分
全体延べ面積合計
容積対象延べ面積

おまけ:
online 正規表現ツール

2014年1月21日火曜日

「データ入力規則」についてExcel2010と2007の互換性

現象:
「データ入力規則」が消えた!?
  1. Excel2010で作ったシートに、「データ入力規則」で別シートのセルを参照した
  2. Excel2003又はExcel2007で開いたら、ドロップダウンリストが消えました
  3. しかも「データ入力規則」で別シートのセルを参照し直そうとすると、電子レンジが「チン~!」
  4. 「え?!これもしかして互換性?2010と2007にそんな差があったとは思わなかった」


解決方法:

  1. 別シート参照したいセル(範囲)に名前を付けて
  2. 「データ入力規則」で「リスト」を選択して、「元の値」で「F3」
  3. 定義済みの名前を選択


MSって馬鹿だね...