文字コードとおもわれるコンパイルエラー
PS3にインストールしてあるYellow Dog LinuxでSIMD演算のサンプルプログラムをコンパイルしようとしました
おおよそこんな感じのエラー
test.c:22: error: `B' undeclared (first use in this function)
test.c:22: error: (Each undeclared identifier is reported only once
test.c:22: error: for each function it appears in.)
test.c:25: error: stray '\33' in program
プログラム中の
printf("\n");
が原因らしい。
もっと言うと n" が B と認識されてるような・・・
その場しのぎで
printf("\n ");
で実行はできました
ExcelやAccessのVBAでWebのHTMLを取得して処理をする
Web情報を得る段階
Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) 'Sleepの定義 Sub gethtml() Dim objIE As Object 'IEオブジェクト参照用 'IEのオブジェクトを作る Set objIE = CreateObject("InternetExplorer.application") ' objIE.Visible = True 'エクスプローラで表示する objIE.Navigate URL Do Until objIE.Busy = False '読み込みが終わるまで待つ Sleep 1000 Loop Debug.Print objIE.Document.Body.InnerHtml 'イミディエトにHTMLを表示する 'IEを閉じる objIE.Quit Set objIE = Nothing
htmlを解析し必要情報を取得する
Dim objTAG As Object '1つ1つ タグのオブジェクトを入れる For Each objTAG In objIE.Document.all 'odjTAGにタグが順に代入される If objTAG.tagName = "IMG" Then If objTAG.src = "http://〜〜/point.gif" Then Title = objTAG.nextSibling.innertext End If ElseIf objTAG.tagName = "SPAN" And objTAG.className = "class21" Then tmp = objTAG.innertext End If Next
InternetExplorer.application.Documentのプロパティ
objTAG.tagName
タグ名が大文字で入っている
objTAG.src
srcメンバはtagNameがIMGの時のみ存在するのでIf文の内側で判断する
絶対URLが入っている
objTAG.innertext
そのタグの内側にある文字列
objTAG.nextSibling.innertext
そのタグの次のタグの内側にある文字列
objTAG.className
そのタグのクラス名
objTAG.ID
そのタグのidの値
便利な関数
InStr(objTAG.innertext, "シアター")
シアター文字列の出現する位置を返す
存在しない場合には0を返す
文字コードの問題
Tomcatを用いてユーザからデータを取った場合
問題となるのが文字コードである
Tomcat上では文字コードはShift-JISだが javaの文字コードはUnicodeだからである
そのためjavaで処理した文字をTomcat上で表示をすると大抵文字化けが起こる
JSPファイル上部
<%@ page contentType="text/html; charset=Windows-31J"%>JSPファイル内
<meta http-equiv="Content-Type" content="text/html; charset=Windows-31J" />
受けとった値をjava内で扱えるようにする
String WantMovie = new String(name.getBytes("iso-8859-1"), "Shift_JIS");
nameはString型の変数で ユーザーが入力した値が格納されている
これにより WantMovie にjavaで扱える文字列が格納される
JSP間 もしくはHTML→JSP への値の受け渡し
送信元のHTMLもしくはJSP
<form method=POST action=result.jsp> 映画名<input type=text name=MovieName> <input type=submit value="検索"> </form>
method=
POST
ユーザに見えない状態でデータが渡される
キャッシュを保存させない(ブラウザの「戻る」が使えない)
「お気に入り」に保存できない
get
URLの後ろに「?MovieName=映画名」が付加されて送信される
送信量に制限あり
キャッシュが保存される(ブラウザの「戻る」が使える)
「お気に入り」に保存できる
action = 値を渡すJSP名
type = インプットボックスの種類
name = 変数名 これを使って値を受け取る
受け取り側のJSP
String Name = request.getParameter("MovieName");
これでNameに受け取った値が代入される