cwnicol programming

プログラミング関連の投稿をすこしだけ

エクセルで課題一覧

エクセルで課題一覧を作る場合には「サマリー・運用方法」シートを作成して、 以下があるといいかも。 ○運用方法 ・ステータス種別は、open, close, 保留。 open…課題を記入したらとりあえずこれにする。 close…課題が解決したらこれにする。 保留…とりあえ…

C言語で継承(オーバーロード(=多態性)なし)

↑ソース関連図 犬(dog)クラスで動物(Animal)クラスを継承している。 ポイントは以下。 ・サブクラス宣言では一番上のメンバにスーパークラスを宣言する(dog.c, 6行目) ・スーパークラスのヘッダをAnimal.h, AnimalP.hとしてカプセル性を保持する ・スーパー…

C言語でカプセル化

Cでは不完全なカプセル化になる(メンバにアクセスできてしまうという意味で)と思っていたけど、ソース側に構造体を定義すれば完全なカプセル化を実現できる模様 c capcel

大量の変更履歴がソース上にあるような資産を扱うとき

大量の変更履歴がソース上にあるような資産を扱うときには、 コメントの背景色をグレー等にしてみると、意外に見やすいかも。 (Visual Studio 2015なら[ツール]-[オプション]-[フォントおよび色]で [表示項目]で"コメント"を選んで、[背景色]を変更)

ブラウザで見る用語集をエクセルマクロで出力(その2)

VBA

cwnicol.hatenablog.com 上記で作成した用語集で、以下課題に対応した。 ・ソース汚い。要リファクタリング →適当に整理 ・ファイル文字コード問題。VBAで出力するとSHIFT-JISになってしまう。ADODBを使ってutf-8出力か →utf-8BOMありで出力するように。BOM…

ブラウザで見る用語集をエクセルマクロで出力

VBA

ブラウザで見られるキーワードリンクのある用語集がほしかった。 上記のような用語集をエクセルで作成しておいて、 マクロで作成したhtmlを下記のようにブラウザで見る。 エクセルファイル(html出力マクロあり):https://db.tt/5dTIiGXM フレームhtml:https…

pythonでwebsocketを使ったチャット

WebSocketsでチャットを作ってみる! — PythonMatrixJp ↑を参考に、自分の環境で試してみた。 自分の環境のlinuxではubuntuではなく、cent osなので、 aptitude install libevent-dev python-dev python-setuptools # for ubunutu というのは使えず、 CentOS…

HaskellでFizz Buzz書いてみた。

fizzbuzz ガード?を使えばもっときれいに書けるかもしれない。 検索して出てくるコードとは明らかに違うのでw 但し、単数は組み合わせれてるし、はじめてHaskellで動くものを 作れたので割と満足している(今は) putStrLnに文字列をひとつづつ渡して表示する…

空の要素を含むCSVファイルを読み込む

sscanf()とかstrtok()だと空の要素があると、その要素の読み込みが 飛ばされる。 そこで、元データに半角スペースを挿入した上でsscanfして、 データ読み込み後に半角スペースを削除している。 sscanf

qsortで複数キー(複数条件)でソート

qsortで複数キー(複数条件)でソートしたい時があるだろう。 例えば、↑のデータを [ソート条件] ・第1ソートキー:AAA列の昇順 ・第2ソートキー:BBB列の降順 で並び替えたいとしよう。 qsort()では一つのキーしか設定できないと思われがちだが、 qsort()の第4…

Cloud9でrake db:migrateエラー

Cloud9 - Your development environment, in the cloud で、 作ってわかるデータベース (小学生でもわかるRuby on Rails入門) | OpenBook をやっていたらハマったのでメモ。 rake db:migrateで rake aborted!StandardError: An error has occurred, this and…

仕様理解方法

※自分用メモ 構造 クラス図 関数ツリー 構造体定義+構造体実態存在場所、static →構造体名でgrep, その変数が使われている箇所をgrep シーケンス入出力デバッグ実行 ----○処理把握 ドキュメントから仕様を把握。 エントリーポイントを起点に必要な程度の関…

関数内で引数の値変更禁止

構造体を関数にポインタ渡し(参照渡し)して、関数内で 構造体の中を変更して欲しくない時は仮引数の型の前に constをつければよい。 ※構造体でなくても、整数等も同様。 #include <stdio.h>#include <stdlib.h> typedef struct _aaa { int a;}aaa; void func_a(const aaa* b) { </stdlib.h></stdio.h>…

10進数を2進数に変換するプログラム

自前で10進数→2進数変換アルゴリズムを実装しなくても、 標準ライブラリのitoa()の第3引数に2を設定すれば、 目標を達成できるのでは。 #include <stdio.h>#include <stdlib.h> int main() { int target = 255; char buf[256] = {0}; itoa(target, buf, 2); printf("%s\n", buf)</stdlib.h></stdio.h>…

ライブラリ

まとめきれていない部分もあるかもしれないが、 とりあえず現時点でライブラリについて分かったことを記す。 名称 動的ライブラリ 静的ライブラリ 方式 レイトバインディング(遅延バインディング、実行時バインディングとも) アーリーバインディング(事前バ…

実行環境のexe デバッグ実行手順

1. Visual Studioでデバッグビルドする 2. 実行環境にexe, pdbファイルを移動する 3. exeを実行する(CUIの場合、getchar()等で止めておく) 4. (Visual Studio上でブレークポイントを設定する) 5. Visual Studioからexeにアタッチする 6. exeでアクション(ボ…

プロジェクトが遅れたときにどうするか?

プロジェクトが遅れたときにどうするか? まずは原因の特定。 解決策は以下3つ。 状況により複数の解決策を実施する。 1)リカバリ クリティカルパス上のタスクにリソースを投入し、 進捗の遅れを取り戻す。具体的な手法は以下の通り。 a)既存要員追加(クラッ…

ワークフォルダ作成スクリプト

■概要 手動で一時的な作業用フォルダを作成する手間を省く。■初期設定方法 スクリプト内のベースフォルダ(baseFolder)を設定する。■使用方法 ダブルクリック等でスクリプトを実行。 Windows7で動作確認済み。以下ソース。 makeNewWorkFolder.vbs '''''''''''…

PERT図

情報処理系の資格で学習したが、まるでこの図の存在意義を 理解できていなかったので調査した。 【読み方】 パート図 【概要】 タスクを洗い出し、その所要時間、前後関係を整理し、タスク間の 前後関係に基づいてタスクフロー図に相当するネットワーク図 (…

ポインタ 説明 解説 講座

ポインタ 説明 ざっくりと基本を。 ================◆使用用途====================== 関数内での変数の書き換え。 int main(){ int b; change(○○○); //この中でbの値を書き換えたい return 0; } ================================================ ========…

memo

Private Sub CommandButton1_Click() Dim wb As Workbook 'Dim wb As Object Dim path path = Application.GetOpenFilename("Microsoft Excelブック,*.*") Set wb = Workbooks.Open(path) 'wb.Worksheets("Sheet1").text1.Value = "1" 'wb.Worksheets("Sheet…

ダウンロードが完了したらサスペンドする

動作確認環境:Windows XP HOME 使用方法:下記ソースをエディターでxxx.jsと保存する。ダブルクリック。 普段はサスペンドしてるんだけど、何かダウンロードしていても サスペンドに移行してしまって、大きなファイルをダウンロードして いると中断されてし…

Q&A用フォーマット

[サンプルファイル] https://db.tt/62JRDnek[イメージ] 複数地点でメールでエクセルファイルを送りあって、Q&A形式でやり取りしたい時に、 使うフォーマットを考えてみた。フォーラム型掲示板の形式をマネした。 (現在はこんなwebサービスもたくさんあるだろ…

共有サーバのディレクトリ構成が自分好みではない場合(Windows)

共有サーバのディレクトリ構成が自分好みではない場合に、 ローカルPCに、共有サーバのディレクトリのショートカットを作成して、 そのショートカットの名前を自分好みにする。 階層化するには、新しいフォルダを作ってその中にショートカットを 入れるし…

#includeでcsv読み込み(C, C++)

環境:VSC++ 2008 http://twitter.com/tt_clown/status/22769039758 > C++ と言うか C で今までで一番「ああその発想はなかった」てのは, > int hoge[] = { #include "hoge.csv" }; こんなの見つけたから試してみた。 以下、テストプログラム、データファイ…

DllImport 属性

C#からCのDllを使用する際には、DllImport 属性を使う。 これは従来のリンクの用語でいう「明示的なリンク」の模様。 実行時の、さらに該当コード部に制御が移ると、メモリ上にロードされると。 Cの頃にやってたような明示的なリンク特有のめんどくさい手順…

linux 下位ディレクトリのソースをgrep

find . -name '*.c' | xargs grep -n hoge /dev/null・hoge:検索文字列 ・'*.c'を'*.h'にすれば検索対象をヘッダーファイルに。 ↑シングルクオート

Windows環境 ファイル分割

・あるWindows環境で、フリーソフトのインストールが禁止されている。 ・ファイルを分割したい。 ・開発環境は手元にある。 上記に当てはまる場合には、下記コードを自分の環境でコンパイルして、 ファイルを分割しては? (コマンドプロンプトでは、結合はで…

2重ループを抜ける

(1)フラグを用いる。 while(XXX){ /* ループ1 */ bool bFlg1 = false; bool bFlg2 = false; while(XXX){ /* ループ2 */ /* hogehoge */ if(ZZZ){ /* ループ1でcontinueしたい現象が ループ2内で発生 */ bFlg1 = true; break; } if(ZZZz){ /* ループ1でbreak…

windows コマンド

net view 自分が参加しているドメインで使用可能なサーバ一覧(?)net view /domain 自分が参加しているネットワーク内に存在する、ドメイン 及びワークグループ一覧 - netstat アクティブなTCPコネクション情報一覧netstat -b ローカルの該当ポートを使用…