2015年8月11日 星期二

Postgresql 多關鍵字 like

SELECT name FROM   表單名稱  WHERE  name LIKE 'B%' OR name LIKE 'D%'

WHERE  name ~ '^(B|D).*'

ps.B 與 D 為關鍵字

網路來源:http://dba.stackexchange.com/questions/10694/pattern-matching-with-like-similar-to-or-regular-expressions-in-postgresql

2015年6月22日 星期一

matlab 隨機打亂各行或各列

A=[ 2 2 2;3 3 3;4 4 4];
ans:
2 1 2
3 3 1
1 4 4

1.隨機打亂各行
rr=randperm( size(A,1) );   %隨機產生同行數的隨機序列
Brow=A(rr, :);  %照著序列重排
ans:
3 3 1
2 1 2
1 4 4

2.隨機打亂各列
rc=randperm( size(A,2) );   %隨機產生同列數的隨機序列
Bcol=A(:, rc);    %照著序列重排
ans:
2 2 1
3 1 3
1 4 4



2015年6月2日 星期二

android 檢查網路 和檢查定位是否有開啟

會使用到的權限
//--定位的
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
//--網路的
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />


import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.location.Criteria;
import android.location.Location;
import android.location.LocationManager;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.Bundle;
import android.provider.Settings;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Toast;

public class MainActivity extends Activity {



public boolean getService = false;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
testLocationProvider();
testnetwork();
}


@Override
protected void onRestart() {
// TODO Auto-generated method stub
super.onRestart();
testLocationProvider();
testnetwork();
}
}



private void testnetwork() {
try {

ConnectivityManager mConnectivityManager = (ConnectivityManager)( this.getSystemService(Context.CONNECTIVITY_SERVICE));

NetworkInfo mNetworkInfo = mConnectivityManager.getActiveNetworkInfo();

//如果未連線的話,mNetworkInfo會等於null
if(mNetworkInfo != null)
{
getService = true;

}
else {


AlertDialog.Builder ad = new AlertDialog.Builder(MainActivity.this);
    ad.setTitle("開網路啦 ");
    ad.setMessage("內容" );
    ad.setNeutralButton("開網路喔!!",
               new DialogInterface.OnClickListener() {
                  public void onClick(DialogInterface dialog, int which) {
                    //不做任何事情 直接關閉對話方塊  
                  
                  startActivity(new Intent(Settings.ACTION_WIFI_SETTINGS)); // 開啟設定頁面
                  
                  }
                });
     ad.show();
//網路是否已連線(true or false)
mNetworkInfo.isConnected();
//網路連線方式名稱(WIFI or mobile)
// mNetworkInfo.getTypeName();
// //網路連線狀態
// mNetworkInfo.getState();
// //網路是否可使用
// mNetworkInfo.isAvailable();
// //網路是否已連接or連線中
// mNetworkInfo.isConnectedOrConnecting();
// //網路是否故障有問題
// mNetworkInfo.isFailover();
// //網路是否在漫遊模式
// mNetworkInfo.isRoaming();
}

}catch(Exception e){

e.printStackTrace();
}

}


private void testLocationProvider() {
// TODO Auto-generated method stub
try {
LocationManager status = (LocationManager) (this.getSystemService(Context.LOCATION_SERVICE));
if (status.isProviderEnabled(LocationManager.GPS_PROVIDER)|| status.isProviderEnabled(LocationManager.NETWORK_PROVIDER)) {
// 如果GPS或網路定位開啟,呼叫locationServiceInitial()更新位置
getService = true; // 確認開啟定位服務

} else {
Toast.makeText(this, "請開啟定位服務", Toast.LENGTH_LONG).show();
AlertDialog.Builder ad = new AlertDialog.Builder(MainActivity.this);
    ad.setTitle("您好,請把'定位'打開喔!! ");
    ad.setMessage("內容喔" );
    ad.setNeutralButton("開啟定位服務!!",
               new DialogInterface.OnClickListener() {
                  public void onClick(DialogInterface dialog, int which) {
                    //不做任何事情 直接關閉對話方塊
                  startActivity(new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS)); // 開啟設定頁面
                  }
                });
     ad.show();

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


我有參考這些網站
http://dean-android.blogspot.tw/2013/08/android-connectivity-network-active.html
http://shovachu-coding.blogspot.tw/2013/09/androidby-connectivitymanager.html

ps.這個網誌我是用來方便筆記用的,裡面的code 應該都會在其他網站看到,如果原作者有注意到什麼....要我拿掉的話請mail跟我說一下謝謝> <

2015年5月27日 星期三

Xpath的ㄧ些筆記

What is XPath?
XPath is a syntax for defining parts of an XML document
XPath uses path expressions to navigate in XML documents
XPath contains a library of standard functions
XPath is a major element in XSLT
XPath is a W3C recommendation
出處: http://www.w3schools.com/xpath/

如果想學習網頁語法相關的程式可以到這個網站看看 :http://www.w3schools.com/

這個網站可以學習xpath的路徑,裡面有很多範例可以看。
http://zvon.org/xxl/XPathTutorial/General/examples.html

另外一個這個網址可以看關於css path的網站。
http://www.w3schools.com/cssref/css_selectors.asp

關於上面寫的這些都是在講網頁的樹狀架構呢。

css path 筆記
#main_outer  意思是div的ID=main_outer

2015年5月21日 星期四

Python Crawler 簡單範例 (在Qnap Python2.6版上

# coding=UTF-8
import lxml
import urllib
import urllib2
import psycopg2
from settings import *       #這是呼叫叫"settings"的副程式過來,但是在這個範例裡沒用到。
from lxml import etree
from pyquery import PyQuery as pq




def main(): #名叫 main 的副程式

#進入網站並接收回應
opener = urllib2.build_opener()
req = opener.open('http://www.tbn.org.tw/twd97/SpeciesDetail.asp?id=51&SDay=&LDay=&county=&town=&MapKind=')
 # req = opener.open('填入網址');
#預計要填進網頁原始碼
pagehtml = ''

#預計要把分頁的超連結填進list
links = [] 

#解析網頁原始碼的DOM Tree,並選取目標的tag
for line in req:
pagehtml += line
page = pq(pagehtml)

pagediv = page('.body>div:nth-child(3)')  #這邊就是放想要抓那個網頁樹狀結構下的目標
# print pagediv

#取得分頁的超連結加到list
for pageurl in pagediv:
linkObj = pq(lxml.html.tostring(pageurl))
#print (type(linkObj))
pagelink =  linkObj.text()  #取得字串
print pagelink
links.append(pagelink)
        


#主程式從這裡開始
if __name__ == '__main__':
main()