投稿

10月, 2012の投稿を表示しています

.net の MemoryStream で失敗…

FTPからXMLデータを取得して、XDocumentで解析させるプログラムを作ってます。 で、MemoryStream クラスからデータを取得する箇所でへんな事が起きました。 エラーメッセージ:"'.' (16 進数値 0x00) は無効な文字です。"(最後の行の最後の文字の部分) ソースコード: String readXml = Encoding.GetEncoding(932).GetString(memoryStream.GetBuffer()); result = XDocument.Parse(readXml); 何だ!?と思ってファイルを開いても何も問題なし。普通に読み込めます。 ためしに、ファイルをローカルにコピーしてファイルを読み込ませても問題無し… えぇ!と思い、デバッグしてデータを虫眼鏡マークで表示させても問題があるようには見えない… ふとマウスカーソルでツールチップが表示されたので、最後の方にカーソルを移動させると… \0 のオンパレード…出るわ出るわ… ・・・ \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 コイツが原因かっ!!!! で、ネットをあさってみると、英語のサイトばかり(笑) 結果、下記のように修正しました。 String readXml = Encoding.GetEncoding(932).GetString(memoryStream.ToArray()); result = XDocument.Parse(readXml); ToArray() を使うことにより、\0 が付与される事が無くなりました。 こんなの.netのバグダロウッ!と言いたくなります。 味噌は、 ファイルの最後(改行コード)の部分でエラーが発生したとエラーメッセージが出る所 です。 MemoryStream クラスで、GetBufferメソッドは使っちゃダメですっ! ちなみに、必ずなるわけじゃなく、「なることがある」って事です。 ちなみに、こんなコード書かないでね♪ readXml.Replace("\0", string.Empty) 検索用:...

netsession_win.exe について

netsession_win.exe は、adobe からソフトウェアをダウンロードする時に、 強制的にインストールさせられるソフトウェアです。 (他のサイトはわかりません) ダウンロードのレジューム機能などが付いているそうです。 はっきり言って不要… 日本の最近のネット環境は早い。 ギガ単位のデータをDL中に中断することもほぼ無い。 ブラウザの機能で十分です。 でも、adobeからソフトをDLするときには必須のようです。 なので… 「プログラムの追加と削除」から"Akamai NetSession Interface"を削除しましょう。 adobeからダウンロードする時にまた入れれば良いのです。 ダウンロードが終わった後は不要です。邪魔です。メモリの無駄です。CPUの無駄です。 プロセス2つも使って何やってんだよ…この会社信用ならん… (「何やってんだよ…」については下記の追記をご覧ください) 参考URL: http://www.akamai.co.jp/enja/html/misc/akamai_client/dlmv3_faq.html 以下引用: NetSession はどのようにしてユーザーのコンピューターにインストールされますか? 多くのインターネット企業が、アカマイを活用してダウンロードやビデオストリームの品質を向上することにより、最高のパフォーマンスを顧客に提供しています。ユーザーは、最近自分がコンテンツをダウンロードしたアカマイのお客様企業を参照することができます。お使いのオペレーティングシステムでコントロールパネル(Windows OS)またはシステム環境設定(Mac OS X)を開きます。アプリケーションタブをクリックすると、最高のダウンロードパフォーマンスを提供する NetSession を使用しているアプリケーションやウェブサイトを確認することができます。 ここまで引用 だそうだ。 ***************************** 2013/10/10追記 ***************************** とても悲しい事実ですが、私のブログでこのページが一番サクセスが多いらしい…(笑) なので、少し情報を追加してみます。 上...

英語版Windows のメモ帳

Shift-JISで保存したインストール手順書が文字化け… そんな時にはこの設定っ! 1.コントロールパネルを開く 2.Regional and Language Options を開く 3.administrative タブを開く(一番右のタブ) 4.Language for non-Unicode programs の変更ボタンをクリック 5.出てきたウィンドウの内容を Japanese 変更 保存すると、勝手に再起動されました。(Windows2008R2の場合) Windows2008以前の場合は、単語とかちょっと違うかもしれませんが… 再起動後に、Shift-JISで書かれたテキストファイルを開くと、 文字化けが解消されていました。 この設定は、Unicode対応していないプログラムの言語を決定してるみたいですね。 検索用:英語 英語版 Windows メモ帳 Shift-JIS 文字化け ENCODE エンコード

Extjs4 でラベルの配置をいろいろ変更しよう!

こちらで紹介した物よりも良い感じになりましたので、再投稿です。 URL:http://blog.goo.ne.jp/pianyi/e/63ec1bcefa9bc41d4578c76531ecd02c コレを応用すれば、ラベル以外の何でも中央揃え出来るはずです。 Extjsのバージョン:4.1.1a 他のバージョンでも使えるかどうかは知りません。 一部しか動作確認してません。(コピペで作りました)動かなかったら教えてね♪ まずは、ラベルを左上に配置! Ext.create('Ext.container.Container', { layout: { align: 'stretch', // この行は 'left' でもOK pack: 'start', type: 'vbox' }, items: [ Ext.create('Ext.form.Label', { text: 'My Label', }) ] }); ラベルを中央上に配置! Ext.create('Ext.container.Container', { layout: { align: 'center', pack: 'start', type: 'vbox' }, items: [ Ext.create('Ext.form.Label', { text: 'My Label' }) ] }); ラベルを右上に配置! Ext.create('Ext.container.Container', { layout: { align: 'stretch', pack: 'start', ...

Extjs4 でラベルを左右の中央に置く

この記事は古いです。下記を見てね♪ URL:http://blog.goo.ne.jp/pianyi/e/7f4c4e32f95baec4f3d2ec00896af065 ************************************************************************** よくわからないが、Ext.form.Label クラスの左右中央揃えをやってみた。 不思議な結果だったからメモ。 ちなみに、 Extjs4.1.1a ?って奴 こんな感じでした。 Ext.create('Ext.form.Label', { // text: 'アップロード', html: ' アップロード ', style: 'text-align:center;display:block;' }) ここね。 style: 'text-align:center;display:block;' なぜか、「display:block;」を消すと中央に移動しません。 なぜでしょう… 不思議です。 親パネルはこんな感じ…(この上にボーダーがあります) Ext.create('Ext.container.Container', { region: 'north', border: false, layout: { type: 'fit' }, items: [Ext.create('Ext.form.FieldSet', { title: "追加", padding: '0 5 5 5', margin: '0 5 5 5', items:[ me.getUploadFileField(), Ext.create('Ext.form.Label', { // ...

Extjs4 のボーダーを消す!

Extjs4 で、画面を作る時、ボーダーを消したい時があるが、普通と違ったのでメモ。 Extjs4 で、ボーダーを消す場合は、 border: false または style: {border: '0'}, コレです。 border: 0 や border: '0' では無いです。 border: false または style: {border: '0'}, です。 はぁ…1日調べてしまった… 多分、何かの設定を消したい場合は、false を設定するのでしょう。 覚えておくと良いと思う。多分。 困ってる点: frame:true の場合の背景色の変更がわから無い… 参った… 実験結果の間違いを追記: style: {border: '0'}, を追加

Extjs4 で Extjs標準の言語を変更する

Extjsでは、Extjs標準で使用している言語を変更できます。 (デフォルトは英語ですよね) 日本語にするにはこんな感じ… <script type="text/javascript" src="../ext-4.0.7/locale/ext-lang-ja.js"></script> で!ext-lang-ja.js の中身を見れば解るのですが、カレンダーのフォーマット等も指定されています。 Extjsで調べていくと、わざわざカレンダーのフォーマットを指定している人が多々見られます。 固定で指定するんじゃなくて、日本語用ファイルを読み込むべきです。 ちなみに、Extjs4の公式サンプルに下記コードがありました。 便利だったので、メモ。 launch: function() { var me = this; var lang = "ja"; // ここは設定ファイルにするか、DBから取得した値にする。 Ext.Ajax.request({ url: Ext.util.Format.format(contextPath + "/js/extjs-4.1.1/locale/ext-lang-{0}.js", lang), success: me.onGetLangFileSuccess, failure: me.onGetLangFileFailure, scope: me }); }, onGetLangFileSuccess: function(response, opts) { eval(response.responseText); }, onGetLangFileFailure: function(response, opts) { Ext.Msg.alert('Error', '言語ファイルの取得に失敗'); } launchでやってますが...