c#

A collection of 12 posts

c#

MonoTouchでHelloWorld!! (InterfaceBuilderを使わないVer.)

今回はInterface Builderを使わずにHelloworldをやってみる。 Interface Builder有りのHelloWorldは前回参照のこと。 ソリューション名:Helloworld2_Sol プロジェクト名:Helloworld2 新しいプロジェクトが生成された構成。 InterfaceBuilderは使わないので、最初にMainWindow.xibを削除します。 この状態からとりあえずプロジェクト生成時の状態まで復元しましょう。 まずAppdeligateとの関連付けが切れたためUIApplication.Main関数でAppDelegateクラス名を関数の引数として渡します。 static void Main (string[] args) { UIApplication.Main( args, null, "AppDelegate" ); } 次にAppdelegateはpartialでは無くなったため、AppDelegateクラスのpartial宣言を削除。 これは元々MainWindow.xib.designer.csでpartial定義されていたためこのような記述になっていました。 そして、appdelegateクラスの定義の先頭に[Register("AppDelegate")を宣言しましょう。 次に削除したwindowコントロールの生成を行います。 Appdelegateクラスのメンバー変数としてUIWindowを宣言し、 FinishedLaunching関数内でコントロースの生成します。

  • kamiyam
    kamiyam
c#

MonoTouchでHelloWorld!!

MonoTouchを使ってC#でHelloWorldをやってみましょう。 MonoDevelopを起動して、ソリューションの作成。 ファイル→新規→ソリューションを選択すると、ソリューション作成ダイアログが表示されます。 ソリューション名:Helloworld_Sol プロジェクト名:Helloworld まぁ、このあたりは任意で指定してください。 次に『プロジェクトの機能』を聞かれますが、そのまま何も選択せずOK。 すると新しいプロジェクトが生成される。 構成はこんな感じ。 □Main.cs Applicationクラスにはmain関数がある。 今回、実行処理はAppdelegateクラスのFinishedLaunching関数内に記述します。 □MainWindow.xib これはアプリのGUI定義ファイルです。 MainWindow.xib をダブルクリックするとInterface BuilderというGUI設計ツールが起動します。 Interface Builder上でラベルとボタンを配置する。 Library(画面左)からラベルとボタンをドラッグしてWindow(画面中央上)に配置。 各コントロールのプロパティは画面右(名称が分からない)の項目で定義する。 ラベルとボタンのTextに適当な文字を入力。

  • kamiyam
    kamiyam
c#

DataTableの内容をcsv出力する(型付きでも可)

よくGridvuewなどにバインドしたデータテーブルをCSV(TSV)ダウンロードしたいということがあります。 以下そのコードです。 ポリモーフィズムを使いたかったので、オリジナルで持っていたコードとは別物になってしまいましたが・・・^^; なお、コードの内容については責任は持てません。使用者が最終的な判断をしてください。 使い方としては ページ内で適当なDatatableを生成 DownloadHandlerクラスのGetNewInstance関数でDataTableをセット 第2引数でTSVかどうかを選択 IsHeadrWrite プロパティ お好みでタイトル行出力要否をセット デフォルトは出力する Encode プロパティ デフォルトでの設定 CSVはASCII TSVはUNICODE(UTF-16)BOM付き Excelでの使用を前提にしていますので、このあたりは適当に・・・ DownLoad(Page page)関数 ダウンロード開始です。 ○ ダウンロード出力イベント protected void Page_Load(object sender, EventArgs e) { //ページ出力処理とか } protected void

  • kamiyam
    kamiyam
c#

IISでaspxへアクセスすると404エラーが発生する

IIS上に配置した拡張子.aspxにアクセスすると404エラーが発生する場合の確認を備忘録として。 ○ aspxに対するマッピングを確認 『IISマネージャ』で任意のサイトを右クリック→『プロパティ』→『構成』で拡張子aspxが記述されていることを確認する。 これは、IISより先に.netフレームワークをインストールしている場合などに発生する。 この場合、コマンドプロンプトから再マッピングを行うことで対応できる コマンド "%windir%Microsoft.NETFrameworkversionaspnet_regiis.exe" -i 参考ソースIIS を削除して再インストールした後、IIS マッピングを修復する方法 ○Webサービス拡張(IIS6.0) IISマネージャ『Webサービスの拡張』でASP.NETが許可されていることを確認する。 IIS6.0ではデフォルトでASP.NETの実行が禁止されています。 このため、状態を許可しないと表示できません。

  • kamiyam
    kamiyam
c#

iText.Netでの他言語PDF出力(C#)

PDFライブラリiTextを使ってフォントを流し込んだ場合、フォント字形を埋め込みできない為、フォント・エンコードに注意が必要。 (追記)iTextのサンプルを眺めていると、対応できそう??? iTextのベースフォントを以下の組み合わせで設定してみた。 (ここでは出力に必要なフォント設定しか記述していません。) ○日本語 BaseFont Font = BaseFont.createFont("HeiseiKakuGo-W5", "UniJIS-UCS2-H", BaseFont.NOT_EMBEDDED); ○中国語(簡体字) BaseFont Font = BaseFont.createFont("STSong-Light ", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED); BaseFont Font = BaseFont.createFont("STSongStd-Light&

  • kamiyam
    kamiyam
c#

Hashtableからの値取得

正直なところ『今時ハッシュテーブル?』とか言われそうなんですが、やっぱり開発で.net1.1なんかも未だにあったりするので書いておきます。 ポイント(?)としては、返値が『object』型なのでキャストが必要。 ArrayListなんかと一緒です。 .net2.0ならList<T> や Dictionary<T> を使用するんですが。。 そういえば、.net1.1での開発当時、簡単なListクラスもどきを実装してたような。 後日書いておきます。 ちなみに下記コード以外にもあったような気がするんですが、今のところこれだけ。 //ハッシュテーブル System.Collections.Hashtable hsTable = new System.Collections.Hashtable(); //値のセット hsTable.Add( "key1&

  • kamiyam
    kamiyam
c#

ダウンロードファイルの文字化け [.net 2.0]

.NET Framework Webアプリでダウンロードするファイル名を日本語にすると文字化けが発生する(IEのバグ)。 globalization 要素の responseHeaderEncoding 属性にHTTP ヘッダのエンコードが指定できる。これでASP.NET で Shift-JIS を使用して HTTP ヘッダを送信することが可能。  <system.web>     <globalization responseHeaderEncoding="Shift-Jis" /> </system.web>

  • kamiyam
    kamiyam
c#

ファイルダウンロード

ファイルのダウンロード時にはSystem.Web.UI.Pageオブジェクトに関連付けられているResponseオブジェクトの関数を用途によって以下の方法を使い分ける。 ①Response.WriteFile() サーバーメモリにファイルをバッファリングし、ダウンロード サーバーのメモリ上限によって変化する。 protected void Page_Load(object sender, EventArgs e) { //ファイル情報の取得 System.IO.FileInfo oDownLoadFile = new System.IO.FileInfo("FilePath"); Response.WriteFile( oDownLoadFile.FullName ); //バッファリングされている出力を送信 Response.Flush(); Response.End(); } ②Response.TransmitFile() サーバーメモリにファイルをバッファリングせず、直接ダウンロード メモリにバッファリングしないため、最大2GBまで可能。

  • kamiyam
    kamiyam
c#

ファイルアップロードの上限値 [.net]

ファイルアップロード時の上限値はデフォルトで4096 (4 MB)となっている。 web.configファイルのhttpRuntime のmaxRequestLength属性値を変えることで上限値を『0~2097151 KB 』の間で変更することが可能。  <system.web>     <!-- 設定値 0~2097151 KB デフォルトは4096 KB (4 MB) -->     <httpRuntime maxRequestLength="4096" /> </system.web>

  • kamiyam
    kamiyam
c#

ファイルアップロード [.net 1.1]

ファイルをアップロードするコンテンツを作るとき.net2.0なら サーバーコントロールのFileUploadコンポーネントを使用する。 しかしこれは.net2.0からの機能となる。 そこで.net1.1までは以下のように実装する。 <input type="file">をHTMLサーバーコントロールに変換して対応。 HTMLコード <div> <input runat="server" id="FileUpload" type="file" /> <br /> <asp:Button ID=

  • kamiyam
    kamiyam