概 要
ASP.NET、ASP.NET MVC、ASP.NET AJAXの開発者すべてに贈る、jQueryの基礎と活用サンプル満載の実践解説書です。JavaScriptのライブラリ「jQuery」を使えば、わずか数行のコードを記述するだけでアニメーションなどのエフェクトを組み込むことができます。さらにユーザーインターフェースに特化したプラグイン「jQuery UI」なども用意されています。本書では、ASP.NETでWebアプリケーションを開発した経験のある開発者を対象に、jQueryの基礎知識と、ASP.NET/ASP.NET AJAXにjQueryのプラグインを組み込んだサンプルについて解説します。メニュー、スタイルシート、ListView、AJAXなどのカテゴリごとに役立つサンプルが満載です! サンプルプログラムとjQueryセレクタテストツールのダウンロードサービス付き。 (more…)
C言語についての質問です(汗
「Nを別途定義する記号定数として、1からNまでの階乗(1 * 2 *
… * N)の値を求めて表示するプログラムを int 型の変数と
for 分を用いて作成せよ」
お願いします。100枚出します。 (more…)
Python: 正規表現の基本 - 繰り返し「*」「+」「?」
# coding: Shift_JIS
import re # 正規表現を扱うモジュールのインポート
# 正規表現のチェックプリント用の関数
def PrintRegMatch(pat, txt):
# 書式: re.match(パターン, テキスト)
m = re.match(pat, txt) # パターンにマッチしなかった場合はNoneを返す
if m != None: print 'パターン"%s"はテキスト"%s"にマッチ「する」' % (pat, txt)
else: print 'パターン"%s"はテキスト"%s"にマッチ「しない」' % (pat, txt)
txt = 'ABCDEFGH' # 探索される文字列をテキスト
# 探索する 文字列をパターン
# 「*」: 直前の文字の0回以上の繰り返しにマッチ
PrintRegMatch('.*CDE', txt)
PrintRegMatch('A.*H', txt)
PrintRegMatch('A*BC', txt)
PrintRegMatch('A.*BC', txt)
PrintRegMatch('A*', '')
print
# 「+」: 直前の文字の1回以上の繰り返しにマッチ
PrintRegMatch('.+DEF', txt)
PrintRegMatch('A.+H', txt)
PrintRegMatch('A+BC', txt)
PrintRegMatch('A.+BC', txt)
PrintRegMatch('A+', '')
print
# 「?」: 直前の文字の0or1回の繰り返しにマッチ
PrintRegMatch('^A?.+$', txt)
PrintRegMatch('^B?$', '')
PrintRegMatch('^C?E', 'E')
PrintRegMatch('A.?H', txt)
PrintRegMatch('BBB?C', 'BBC')
実行結果
パターン".*CDE"はテキスト"ABCDEFGH"にマッチ「する」
パターン"A.*H"はテキスト"ABCDEFGH"にマッチ「する」
パターン"A*BC"はテキスト"ABCDEFGH"にマッチ「する」
パターン"A.*BC"はテキスト"ABCDEFGH"にマッチ「する」
パターン"A*"はテキスト""にマッチ「する」
パターン".+DEF"はテキスト"ABCDEFGH"にマッチ「する」
パターン"A.+H"はテキスト"ABCDEFGH"にマッチ「する」
パターン"A+BC"はテキスト"ABCDEFGH"にマッチ「する」
パターン"A.+BC"はテキスト"ABCDEFGH"にマッチ「しない」
パターン"A+"はテキスト""にマッチ「しない」
パターン"^A?.+$"はテキスト"ABCDEFGH"にマッチ「する」
パターン"^B?$"はテキスト""にマッチ「する」
パターン"^C?E"はテキスト"E"にマッチ「する」
パターン"A.?H"はテキスト"ABCDEFGH"にマッチ「しない」
パターン"BBB?C"はテキスト"BBC"にマッチ「する」
パソコンが1台しか無いので3種類のOSが共存する事になりました。
私的にはUbuntu9.04があれば特に不自由は感じないのですが、妻がXP環境でないと困ってしまいます。
それと先日公開のWindows7 RCも使ってみたいのでトリプルブートする事にしました。
正確には2段階のデュアルブートですね。
これはインストールするOSの順番さえ間違わなければ難しくはないです。
最初がXP、次にWin7rc、最後にUbuntuの順番です。
デュアルブートだけならWin7→Ubuntu9.04の順番。 (more…)
今回のネタは乱数でサンプルデータを生成したいときなどに使えますかね。
ソースコード
02. Randomize ' シードの設定(引数省略でシステムタイマーの値)
03. Const GYO_S As Integer = 1 ' 開始行
04. Const RETSU_S As Integer = 1 ' 開始列
05. Const GYO_E As Integer = 10 ' 終了行
06. Const RETSU_E As Integer = 5 ' 終了列
07. Const UPPER As Integer = 100 ' 乱数の最大値
08. Const LOWER As Integer = 0 ' 乱数の最小値
09.
10. ' 指定された行、列のテーブル内のセルに乱数を格納
11. For i = GYO_S To GYO_E
12. For j = RETSU_S To RETSU_E
13. ' Rndは[0, 1)の範囲の値を返す
14. Cells(i, j).Value = Int((UPPER - LOWER + 1) * Rnd + LOWER)
15. Next j
16. Next i
17.End Sub
実行結果は上図のように0~100の範囲の乱数(今回は整数)が格納されます。
上記のコードの要の式は
(upper - lower + 1) * Rnd + lower
です。簡単に意味を説明しますと括弧内の+1はRndの戻り値の範囲が1未満の為の補正で、式の最後の+lowerはRndの戻りが0の場合の補正、と捉えます。
Visual Studio標準のレポート機能であるReportViewer
Visual Studio上の帳票エディタで帳票フォーマットを作成しレポート生成するタイプ。
ActiveReports for .Net
ReportViewerと同様にVisual Studio上の帳票エディタで帳票フォーマットを作成し、
レポート生成するタイプ。ReportViewerより高機能。
iTextSharp
オリジナルはJavaオープンソースライブラリのiText。
DOMでドキュメントを生成するような感じで、ドキュメントを生成するタイプ。
Visual StudioでASP.Net MVC Web Applicationプロジェクトを作成する。
Modelクラス、Repositoryクラスを作成する。RepositoryクラスはModelクラスの取得、保存の操作を実装するクラス。Modelクラスにはビジネスロジックだけを実装する。
Controlクラスを作成するにはControllerフォルダで右クリックし、追加->Controllerをクリックする。
Controllerクラスが作成されるので、例えば下記のようなリストデータ出力用メソッドを作成する。
下記サンプルコードはNerdDinnerサンプルより引用。 (more…)
エンコーディングは一旦ASCIIのバイト列に変換し、System.ConvertクラスのToBase64Stringメソッドを使う。
string base64Str = Convert.ToBase64String(Encoding.ASCII.GetBytes(textData)));
デコーディングはSystem.ConvertクラスのFromBase64Stringメソッドを使ってASCIIテキストのバイト列を取り出し、stringに変換する。
string textData = Encoding.ASCII.GetString(Convert.FromBase64String(”dGVzdA==”));
Java を使うときは、google-collections が便利なので使っている。
久々に最新に入れ替えてみると、Maps.newConcurrentHashMap がなくなっていた。
どうやら0.9から書き方が変わったようだ。
// 0.9 以降
Map<String, String> map = new MapMaker().makeMap();
// それ以前
Map<String, String> map = Maps.newConcurrentHashMap();
OutputCacheディレクティブによってHTTPヘッダ出力がどのように変わるかを調べてみた。結果は下記の通り。なお、下記はProxyを通さずに調査した。
<%@ OutputCache Location=”Any” Duration=”60″VaryByParam=”none” %>
<%@ OutputCache Location=”Client” Duration=”60″VaryByParam=”none” %>
<%@ OutputCache Location=”Downstream” Duration=”60″VaryByParam=”none” %>
Cache-Control: private, max-age=60
Expires: 1分後の日時
LastModified: 現在日時
<%@ OutputCache Location=”ServerAndClient” Duration=”60″VaryByParam=”none” %>
Cache-Control: private, max-age=60
Expires: Sat, 05 Jul 2008 22:17:11 GMT
Last-Modified: Sat, 05 Jul 2008 22:16:11 GMT
Vary: *
<%@ OutputCache Location=”Server” Duration=”60″VaryByParam=”none” %>
<%@ OutputCache Location=”None”%>
Cache-Control: no-cache
Pragma: no-cache
Expires: -1