Skip to content

Instantly share code, notes, and snippets.

@mizuneko
mizuneko / IFormattable.cs
Created March 2, 2013 11:14
データグリッドビューなどのコントロールは書式指定子を指定できるので、好きな値を表示できるという話
public class Company : IFormattable
{
// プロパティは省略。
public string ToString(string format, IFormatProvider formatProvider)
{
if (format == null || format == "G" || format == "f") {
return CompnayName;
}
if (format == "s") {
@mizuneko
mizuneko / culture.cs
Created March 2, 2013 11:25
書式とかのお話
var cultures = new[] { "ja-jp", "zh-cn", "en-us", "en-gb", "fr-fr", "de-de", "pt-br", "tr-tr", "he-il" };
var price = 9800;
foreach (var c in cultures)
{
var culture = new CultureInfo(c);
var plus = price.ToString("c", culture);
var minus = (-price).ToString("c", culture);
Console.WriteLine("{0,-11} / {1,-12} ({2})", plus, minus, culture.DisplayName);
}
@mizuneko
mizuneko / Async.cs
Last active December 14, 2015 10:18
Azure Tableに対して、複数指定したPartition Keyでデータを検索したい場合
public static Task<IEnumerable<T>> ExecuteAsync<T>(this DataServiceQuery<T> q)
{
return Task.Factory.FromAsync<IEnumerable<T>>(q.BeginExecute, q.EndExecute, null);
}
var tasks = Common.GetQueries(context, keys)
.Select(x => x.ExecuteAsync()
.ContinueWith(t => { lock (w) Common.Output(t.Result, w); })
).ToArray(); // ToArray を付けて、ここで全タスクを先に起動してしまう。
Task.WaitAll(tasks.ToArray());
@mizuneko
mizuneko / UrlMatch.cs
Created March 2, 2013 11:58
C#でURL抽出
var text = new WebClient().DownloadString(@"http://hogehoge.org");
var q =
from Match m in Regex.Matches(text, @"href=""(?<url>.*?)""")
where m.Success
select m.Groups["url"];
foreach (var x in q)
{
Console.WriteLine("URL: {0}", x);
@mizuneko
mizuneko / yield.cs
Created March 3, 2013 02:35
イベントハンドラを yield return
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Windows.Forms;
class MyForm : Form
{
static void Main()
{
Application.Run( new MyForm() );
@mizuneko
mizuneko / equals.java
Created March 3, 2013 02:45
equalsと==との違い(java編)
boolean isSame;
// (例1)
Integer value1 = new Integer(100);
Integer value2 = new Integer(100);
isSame = value1.equals(value2); // true
isSame = (value1 == value2); // false
@mizuneko
mizuneko / reader.java
Last active December 14, 2015 10:48
ファイルの読み込み
String path = "C:/dir/to/my/file/myfile.txt";
String encoding = "Windows-31j";
// 入力ストリームを開く
BufferedReader reader = new BufferedReader(
new InputStreamReader(new FileInputStream(path), encoding));
// 1行ずつ読み込んで、標準出力へ書き出す
String line;
try {
@mizuneko
mizuneko / writer.java
Created March 3, 2013 02:49
ファイルへの書き出し
String path = "C:/dir/to/my/file/myfile.txt";
String encoding = "Windows-31j";
// 出力ストリームを開く
PrintWriter writer = new PrintWriter(
new OutputStreamWriter(new FileOutputStream(path), encoding));
// ファイルへ文字列を書き出す
try {
writer.println("This is test.");
@mizuneko
mizuneko / select.java
Last active December 14, 2015 10:48
DBとの接続からselectまで
// ドライバクラスのロード
Class.forName("oracle.jdbc.OracleDriver");
// DBとの接続
String url = "jdbc:oracle:thin:@dbhost:1521:sid";
String user = "dbuser";
String password = "dbpassword";
Connection conn = DriverManager.getConnection(url, user, password);
String sql = "select ID, NAME from SHAIN";
@mizuneko
mizuneko / insert.java
Created March 3, 2013 02:54
DBの接続からinsertまで
// ドライバクラスのロード
Class.forName("oracle.jdbc.OracleDriver");
// DBとの接続
String url = "jdbc:oracle:thin:@dbhost:1521:sid";
String user = "dbuser";
String password = "dbpassword";
Connection conn = DriverManager.getConnection(url, user, password);
conn.setAutoCommit(false); // オートコミットをOFFにする