韌館-LearnHouse

Archive for the '程式&軟體' Category

[Android]無法透過模擬器上網??

我使用的SDK是android-sdk-windows-0.9_beta

但無法透過模擬器上網 ,都會出現下面的錯誤

而官方的文件也只提到可以更改不同型態的連線速率

後來利用command shell的模式去印出網路卡的設定

找出問題的所在,至於如何進入command shell[samlu_128]

1.首先模擬器先要啟動,再進入Windows命令提示字元

2.切換路徑到Android SDK資料夾裡的tools

3.輸入指令adb.exe shell進入Android系統的shell

4.再輸入netcfg把網路環境的參數印出來

# netcfg
netcfg
lo         UP    127.0.0.1         255.0.0.0          0x00000049
eth0     UP    10.0.2.15         255.255.255.0   0x00001043
tunl0    DOWN  0.0.0.0         0.0.0.0              0x00000080
gre0     DOWN  0.0.0.0         0.0.0.0              0x00000080

由於我有安裝VNN軟體,他抓到我的虛擬網卡

eth0是10.0.2.15因此無法上網 

posted by admin in 程式&軟體 and have Comments (2)

[C/C++]c語言中volatile關鍵字

資料來源:msdnC++心得分享

volatile 關鍵字表示同時執行的多執行緒可能修改了欄位。

宣告為 volatile 的欄位不遵從假設單一執行緒存取的編譯器最佳化。這確保最新的值會一直出現在欄位中。

volatile 為一關鍵字 加在變數的前面,被 volatile 宣告的變數 將不會使用最佳化編譯

有時一個變數的值改變了 compiler 並不會馬上將他寫入記憶體中

而會先把結果放在CPU暫存器中 等到處理結束之後 才寫入記憶體

說這個變數是多執行緒的flag 其他的執行緒要透過這個變數來反應

而這個值卻又沒有寫入記憶體 這時便會發生意想不到的結果

又或者是這變數為一個硬體的暫存器 會被硬體所改變,然而compiler 並沒有正確的將值從硬體暫存器取出來

而是將自己暫存的值拿來使用,種情況 就是要用volatile 來宣告變數 告訴compiler不要自己暫存變數來提升速度

如此這個變數有任何的改變 便會馬上反應出來 

posted by admin in 程式&軟體 and have Comments (2)

Visual Studio Just-In-Time Debugger

這兩天不知道為什麼,不管開SD卡的東西或者是開FrontPage都會出現下面的錯誤

原來這個錯誤訊息主要是因為系統的設定找VisualStudio.NET為預設的偵錯工具

但是我目前系統中VisualS.NET已經被我移除了,所以才會出現這個訊息。

解決的方法只要在開始->執行->輸入drwtsn32 -i

這樣就能把Dr.Watson設定成預設的Debugger工具

但這似乎對我沒啥幫助,因為啟動那兩個本來會出錯的程式

就算改回來還是一樣會出錯,一樣也不是能開啟 = =" 

posted by admin in 程式&軟體 and have Comments (2)

[PHP]]isset()與empty()的區別

資料來源:思想之地

  1<?php error_reporting(E_ALL);
  2echo '<B>未定義$var</b><Br>'
;
  3echo "isset測試:<Br>"
;
  4if (isset($var
))
  5
{
  6    echo '變量$var存在!<Br>'
 ;
  7
}
  8

  9

 

 10echo "empty測試:<Br>";
 11if (empty($var
)){
 12    echo '變量$var的值為空<Br>'
;
 13
}
 14else

 15{
 16    echo '變量$var的值不為空<Br>'
;
 17
}
 18

 19echo "變量直接測試:<Br>"
;
 20if ($var
){
 21    echo '變量$var存在!<Br>'
;
 22
}
 23else
{
 24    echo '變量$var不存在!<Br>'
;
 25
}
 26

 27echo '----------------------------------<br>'
;
 28echo '<B>$var = \'\'</b><Br>'
;
 29echo "isset測試:<Br>"
;
 30$var = ''
;
 31if (isset($var
))
 32
{
 33    echo '變量$var存在!<Br>'
 ;
 34
}
 35

 36

 37echo "empty測試:<Br>"
;
 38if (empty($var
)){
 39    echo '變量$var的值為空<Br>'
;
 40
}
 41else

 42{
 43    echo '變量$var的值不為空<Br>'
;
 44
}
 45

 46echo "變量直接測試:<Br>"
;
 47if ($var
){
 48    echo '變量$var存在!<Br>'
;
 49
}
 50else
{
 51    echo '變量$var不存在!<Br>'
;
 52
}
 53echo '----------------------------------<br>'
;
 54echo '<B>$var = 0</b><Br>'
;
 55echo 'isset測試:<Br>'
;
 56$var = 0
;
 57if (isset($var
))
 58
{
 59    echo '變量$var存在!<Br>'
 ;
 60
}
 61

 62

 63echo "empty測試:<Br>"
;
 64if (empty($var
)){
 65    echo '變量$var的值為空<Br>'
;
 66
}
 67else

 68{
 69    echo '變量$var的值不為空<Br>'
;
 70
}
 71

 72echo "變量直接測試:<Br>"
;
 73if ($var
){
 74    echo '變量$var存在!<Br>'
;
 75
}
 76else
{
 77    echo '變量$var不存在!<Br>'
;
 78
}
 79echo '----------------------------------<br>'
;
 80

 81echo '<B>$var = null</b><Br>'
;
 82echo 'isset測試:<Br>'
;
 83$var = null
;
 84if (isset($var
))
 85
{
 86    echo '變量$var存在!<Br>'
 ;
 87
}
 88

 89

 90echo "empty測試:<Br>"
;
 91if (empty($var
)){
 92    echo '變量$var的值為空<Br>'
;
 93
}
 94else

 95{
 96    echo '變量$var的值不為空<Br>'
;
 97
}
 98

 99echo "變量直接測試:<Br>"
;
100if ($var
){
101    echo '變量$var存在!<Br>'
;
102
}
103else
{
104    echo '變量$var不存在!<Br>'
;
105
}
106echo '----------------------------------<br>'
;
107

108

109echo '<B>$var = "php"</b><Br>'
;
110echo 'isset測試:<Br>'
;
111$var = "php"
;
112if (isset($var
))
113
{
114    echo '變量$var存在!<Br>'
 ;
115
}
116

117

118echo "empty測試:<Br>"
;
119if (empty($var
)){
120    echo '變量$var的值為空<Br>'
;
121
}
122else

123{
124    echo '變量$var的值不為空<Br>'
;
125
}
126

127echo "變量直接測試:<Br>"
;
128if ($var
){
129    echo '變量$var存在!<Br>'
;
130
}
131else
{
132    echo '變量$var不存在!<Br>'
;
133
}
134echo '----------------------------------<br>'
;
135

136?>

137
輸出:
未定義$var
isset測試:
empty測試:
變量$var的值為空
變量直接測試:
變量$var不存在!
----------------------------------
$var = ''
isset測試:
變量$var存在!
empty測試:
變量$var的值為空
變量直接測試:
變量$var不存在!
----------------------------------
$var = 0
isset測試:
變量$var存在!
empty測試:
變量$var的值為空
變量直接測試:
變量$var不存在!
----------------------------------
$var = null
isset測試:
empty測試:
變量$var的值為空
變量直接測試:
變量$var不存在!
----------------------------------
$var = "php"
isset測試:
變量$var存在!
empty測試:
變量$var的值不為空
變量直接測試:
變量$var存在!
----------------------------------
請注意20行會觸發一個Notice:
Undefined variable: var ;因為使用一個未初始化的變量不規範.

posted by admin in 程式&軟體 and have No Comments

[SQL]幾個好玩的SQL語法

一直以來程式一直是我的弱項,一直都很想學但卻又不得其門而入

每次都三分鐘熱度的玩味幾天,幾天後就放棄而丟在一旁 

剛好最近要幫學校寫一支統計資訊的程式,以及其他的一些功能,才漸漸的對程式有近一步的了解

但目前的我程式寫的是亂糟糟,純粹是為了想要某些功能而寫某些功能,都沒有什麼規劃

不過也因為這次的機會,讓我對程式也越來越感興趣不再害怕 

一、 

資料表(部份資料)

 

執行 

SELECT DISTINCT course , Count(course) AS C FROM mdl_resource GROUP BY course

結果(部分) 

 

說明 

透過上面語法即能計算出不同的course重複的次數:DISTINCT course代表不同的course欄位,Count(course) AS C 計算相同course值的次數並把計算結果的欄位改成C。


二、 

資料表(部份資料)

mdl_user_teachers

 

mdl_user

執行 

select mdl_user_teachers.course from mdl_user_teachers,mdl_user where (((mdl_user.id)=31231) and ((mdl_user_teachers.userid)=31231))

結果 

 

說明 

下這語法主要是為了找該使用者的course,而且他要為老師mdl_user_teachers也要為使用者mdl_user

 


三、 

資料表(部份資料)

 

執行 

SELECT * FROM mdl_course WHERE (fullname like '%專題%'or fullname like '%論文%') and (school_year = '96一'or school_year = '95二' or school_year = '96二')

結果

 

說明 

這個方法可以同時選擇欄位fullname字串裡包含專題或論文的或者是school_year是95二、96一、96二的資料


四、 

資料表(部份資料)

執行 

UPDATE mdl_course SET school_year = 96二 WHERE id IN (9870, 9871, 9872, 9873, 9874, 9875, 9876, 9877) 

結果

說明

不用說應該知道這段SQL的功用吧!! 

 

備註: 雖然說SQL語法會用很好用,可以減少很多Coding的工夫,但我有一次為了查詢某資料,做了太複雜的資料表交叉比對運算,結果使得效能變的很低,也就是說開啟網頁的速度會變很慢,而用程式Coding來做篩選判斷,不到一秒鐘的時間網頁就顯示出來!!

 

 

posted by admin in 程式&軟體 and have No Comments

[PHP]在HTML中顯示JpGraph

以下是Document文件說的以圖片的html tag <IMG>方式顯示

4.2 How to generate images with PHP

As a general rule each PHP script which generates an image must be specified in a separate file which is then called in an HTML <IMG> tag. For example, the following HTML excerpt includes the image generated by the PHP script in "fig1.php".

 <img src="fig1.php"  border=0 align=center width =300 height=200>

Strictly speaking the "align", "width" and "height" are not necessary but helps the browser position the image correctly before the image has been fully sent back to the browser.

The library will automatically generate the necessary headers to be sent back to the browser so that it correctly recognize the data stream received as an image of either PNG/GIF/JPEG format. The browser can then correctly decode the image

Observe that you can't return anything else than an image from the image script. By definition each HTML page (or more correctly each HTTP stream) can only consist of one mime type which is determined by the header for that particular stream.

A common mistake is to have a space in the beginning of the image script which the HTTP server will send back to the browser. The browser now assumes that the data coming back from this script is text since it hasn't received an explicit header. When then the image headers get sent back to the browser to forewarn the browser of the forthcoming image the browser will not like that as it has already assumed the data stream was a text stream. The browser will then give the infamous "Headers already sent error".

To include several images together with text on a page you need to have a parent page with several <IMG> tags which each refers to an image script (or the same image script with GET/POST data).

按照doc的作法,每要在html繪製一張圖表,就用一個<IMG>標籤指定該程式

但我試了幾個一樣也無法顯示,因此就修改了一下,改讓他先輸出png的圖片檔,再用<IMG>

首先先修改之前編寫的PHP script:

將原本的$graph->StrokeCSIM();  //從HTML中直接輸出圖片

改成
$graph_name = "路徑/檔名.png";
$graph->Stroke($graph_name);

再到要顯示的html頁面中加入<IMG>:

再加入<IMG>前要先把支前編寫的PHP script先include進來

<img src="images/test.png" width="600" height="850" /> 

寬度與高度要跟你在繪製圖表的PHP script指定的大小一樣 

Tips: 在開始html之前要先把寫好的繪圖的PHP script先include進來,而且最好用require_once("XXXX.php")的方式,避免重複include

posted by admin in 程式&軟體 and have No Comments