GoodReaderで一度に複数のファイルをUPする方法
一番簡単なのが、ZIPで転送
フォルダに入れてZIP圧縮→転送→GoodReaderで解凍だけでいける。
このやり方だと、ファイル名が文字化けするので英語と数字のみならこれでいける。
ファイル名に日本語使う場合は、WebDAVクライアントを使えばいける。
試したのは、dddavってやつ
http://www.vector.co.jp/soft/dl/winnt/net/se476343.html
ちなみにWebDAVクライアントってのは、簡単に言うとファイル転送するためのソフトです。
1. GoodReaderをWiFiでつなげるように準備
2. 起動して新規ホストの設定
こんな感じに設定
3. ホストに接続。
接続が成功すると左側がPC、右側がGoodReaderになってる。
4. 右側にDownloadsとMy Documents があるのでMyDocuments 以下の適当な場所に移動
5. あとは、ローカルのフォルダを選択して右クリック→アップロードでOK
DataContractを使って、XMLファイルをクラスに変換
XMLファイルの読み込み→クラスの作成を楽にできる方法があったのでメモ
1 XML定義ファイルを用意する
2 XML定義にあった形でクラスを宣言
3 XMLを読み込んでクラスへと変換
<?xml version="1.0" encoding="utf-8" ?>
<SiteList xmlns="http://schemas.datacontract.org/2004/07/XmlDataContractTest" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<WebSite>
<Name>ヤフージャパン</Name>
<URL>http://www.yahoo.co.jp
<UserID>yahooUser</UserID>
<Pass>hogehoge</Pass>
<Biko>yahoo</Biko>
</WebSite>
<WebSite>
<Name>Google</Name>
<URL>http://www.google.co.jp
<UserID>googleUser</UserID>
<Pass>hogehoge</Pass>
<Biko>Google</Biko>
</WebSite>
</SiteList>
XML定義用のクラス
[CollectionDataContract(Name = "SiteList")]
public class SiteList : List
{
}
[DataContract(Name = "WebSite")]
public class Site
{
[DataMember(Name = "Name", Order=1)]
public string Name;
[DataMember(Name = "URL", Order = 2)]
public string Url;
[DataMember(Name = "UserID", Order = 3)]
public string UserId;
[DataMember(Name = "Pass", Order = 4)]
public string Pass;
[DataMember(Name = "Biko", Order = 5)]
public string Biko;
}
XMLの読み込み→クラス化
using (System.Xml.XmlReader reader = System.Xml.XmlReader.Create("WebSite.xml"))
{DataContractSerializer ds = new DataContractSerializer(typeof(SiteList));
SiteList sites= (SiteList)ds.ReadObject(reader, true);
string outPut = "";
foreach (Site s in sites)
{
outPut += s.Name + System.Environment.NewLine;
outPut += s.Url + System.Environment.NewLine;
outPut += s.UserId + System.Environment.NewLine;
outPut += s.Pass + System.Environment.NewLine;
outPut += s.Biko + System.Environment.NewLine;outPut += System.Environment.NewLine;
}MessageBox.Show(outPut);
}
クラス→XML書き込みの場合
Site yahoo = new Site { Name = "yahoo!", Url = "http://www.yahoo.co.jp", UserId = "yahooUser", Pass = "hogehoge", Biko = "ヤフーです。" };
Site google = new Site { Name = "Google", Url = "http://www.google.co.jp", UserId = "googleUser", Pass = "hogehoge", Biko = "グーグルです。" };SiteList sites = new SiteList();
sites.Add(yahoo);
sites.Add(google);DataContractSerializer ds = new DataContractSerializer(typeof(SiteList));
using (Stream s = File.Create("WebSite.xml"))
{
ds.WriteObject(s, sites);
}MessageBox.Show("正常終了");
iPhoneがitunesで認識されない
状況としては、
1 iPhoneをWindows7のXPモードでitunesにつなぐとitunesが落ちる
2 マイコンピュータをみると認識自体はされているが、カメラ扱いされてる
3 デバイスドライバを見る限りドライバは、入っている
で、いろいろやっても結局だめだったので、最後にUSB挿す場所変えたらすんなり認識しやがった・・・○| ̄|_
違いは、最初に挿してた場所は、USB1.1。
変えた場所は、USB2.0。
iPhone4は、USB1.1が嫌いなのか?
ネットで見ると、USB1.1でも問題ないとでてくるのだが・・・・。
同じように困ってる人がいたら、一度USBポートを変えてみて。
もしかしたら動くかも。
JavaScriptからVBScript呼び出し
JavaScriptのメッセージボックスのアイコン変えてほしいんだけど?
こんな要求がやってきた・・・。
正直、JavaScriptあんまりやったことないのよ・・・。
ネットで調べる限り方法は、いくつかあるらしい。
1. jQueryを使う
jQuery Alert Dialogs
http://labs.abeautifulsite.net/projects/js/jquery/alerts/demo/
これは、かなりステキな感じだ。
個人的にも興味がある。
使うには、検証が必要なため一番時間がかかりそう。
後々のことを考えれば、スキルアップに役立つ。
2. VBScriptでやる。
VBScript のメッセージボックスは、かなりいろいろなボタンやアイコンが表示できる。
http://www.kanaya440.com/contents/script/vbs/function/others/msgbox.html
でも、IEでしか動かない・・・。
うまくJavaScriptと共存できれば簡単にできるかも?
3. メッセージ用にhtmlを一つ作ってshowModalDialogで呼び出す
IE以外でもFireFoxとSafariも大丈夫みたい。
参考↓
http://d.hatena.ne.jp/replication/20101201/1291134458
画面増えるのでいろいろと面倒。
でも、画面作るのは慣れてるのでjQuryよりは工数かからないと思う。
この3つから今回は、時間の都合で2番のVBScriptのメッセージを使おうということに決まった。
で、やってみたらVBScriptってJavaScriptから呼べるということが判明。
正直、こんなに簡単にできていいのか?と思ってしまった。
サンプル
<html>
<head>
<script type="text/javascript">
function callVbMsg()
{
var rc = msgVb();
if(rc == 6)
{
alert("はい");
}
else
{
alert("いいえ");
}
}
</script>
<script type="text/vbscript">
Function msgVb()
msgVb = MsgBox("めっせーじ", 68 , "タイトル")
End Function
</script>
</head>
<body>
<input type="Button" onClick="callVbMsg();" value="JavaScriptからVBScript のメッセージを呼ぶ" />
</body>
</html>
ペアプログラミングって面白い
先日、後輩とペアプログラミングしてみた。
やってみると意外とアイデアが浮かんできて面白かったのでメモ
やりたいこと
データテーブルの管理ナンバー列の値を使って in のリストを作成。
初期ソース
自分:このままだった管理ナンバー重複するから、重複を除いて。
private string getInListString(DataTable dt)
{
string inList = "";
foreach (DataRow row in dt.Rows)
{
string kanri_no = row["kanri_no"].ToString();
inList += "'" + kanri_no + "',";
}
if (inList.Length > 0)
{
inList = inList.Substring(0, inList.Length - 1);
}
return inList;
}
後輩:(`Д´)ゞラジャー!!
修正ソース
自分:OK。動きは問題ないけど、ちょっとカッコ悪くない?
private string getInListString(DataTable dt)
{
ListlstKanri = new List ();
string inList = "";
foreach (DataRow row in dt.Rows)
{
string kanri_no = row["kanri_no"].ToString();
if (!lstKanri.Contains(kanri_no))
{
inList += "'" + kanri_no + "',";
lstKanri.Add(kanri_no);
}
}
if (inList.Length > 0)
{
inList = inList.Substring(0, inList.Length - 1);
}
return inList;
}
後輩:う〜ん。Linqとか使えないですかね?
後輩:あ、そろそろ交代っす。先輩カッコよくたのんます。
自分:OK。ちょっとやってみる。
自分:こんな感じでどう?
private string getInListStringLinq(DataTable dt)
{
var query = from DataRow row in dt.Rows where row["kanri_no"] != DBNull.Value select "'" + row["kanri_no"].ToString() + "'" ;
return string.Join(",", query.ToArray());
}
後輩:かっこいいっす!でもこれって、また重複してますよ。
自分:(`Д´)ゞラジャー!!修正します。
自分:どう?
private string getInListStringLinq(DataTable dt)
{
var query = (from DataRow row in dt.Rows where row["kanri_no"] != DBNull.Value select "'" + row["kanri_no"].ToString() + "'").Distinct();
return string.Join(",", query.ToArray());
}
後輩:完璧っす!
って感じで、最初11行のメソッドが条件追加したのに逆に2行になりましたw
ペアプログラミングしてなかったら、こうはならなかったと思う。
普段と違うパターンの発想が出てくるのもペアプログラミングのメリットだと思う。逆にデメリットは、周りから遊んでると思われることかも(笑)
Windows で iPhoneアプリをつくりたい!2
前回の続き
Mac OSX のインストールに成功し、キーボードの問題もなくなった。
ということで、次はiPhoneアプリの環境を作ってみた。
iPhone SDKを落とせばいいらしい。
日本語サイトでは、有料に誘導するとこしか見つけれなかった○| ̄|_
英語の方であったのでメモ↓
http://developer.apple.com/devcenter/ios/index.action
ログイン後
Xcode 3 and iOS SDK 4.3 をダウンロード
見つけにくのでURL貼っとこ
https://developer.apple.com/devcenter/download.action?path=/Developer_Tools/xcode_3.2.6_and_ios_sdk_4.3__final/xcode_3.2.6_and_ios_sdk_4.3.dmg
でダウンロードが4.1Gと・・・・。
VMWare + 低速ADSLのせいで10時間Overでした・・・。
落とした後は、すんなりインストール成功。
インストール先は、/Developer/Applications/Xcode アプリケーションには入ってなくて探したよ・・・。
定番のHelloWorld!を作ってみた。
☆-(ノ゚Д゚)八(゚Д゚ )ノイエーイ
いろいろ面倒だけどなんとかWindowsでもiPhoneアプリ作れた!
MAC OS X 10.6.3 SNOW LEOPARD のキーボード配列を修正のメモ
WindowsでiPhoneアプリを作りたい!で出ていた問題の一つにキーボード配列がおかしいというのがあった。なんとかこれを解決したくていろいと調べてみた。
一番簡単な解決方法は、Windows用USBキーボードをMacで使うのサイトにあるUSB JIS Keyboard Layout 1.0.1を使うこと。
10.3.x用 らしいけど、10.6.3 SNOW LEOPARDでも問題なくキーボードが修正できるようだ。
使い方も簡単。
ことえりの環境設定を開いたら、「英字入力時のキーボード配列」に「USB JIS」を選ぶだけ。
素晴らしい!