拝啓、サカモトと申します。

Another Gahaku.Text Powered Blog

目次

ニュース

元○○

記事カテゴリ

書庫

Blog 利用状況

絵画はこっち。

C++++がぁ・・・C++++がぁぁぁ・・・。

VBのコードいじくりながらC#の仕事の為の勉強中・・・。

 

文法の脳内変換が大変・・・(泣)

中括弧に触れなかったツケが回ってきました・・・。

ケツが回っているわけではありません。

セクハラです。

 

サンプル借りた。

private void button1_Click(object sender, EventArgs e)
{
    if (openFileDialog1.ShowDialog() != DialogResult.OK) return;
    string fn=openFileDialog1.FileName;
    textBox1.Text = fn;
    if (File.Exists(fn))
    {
        XmlTextReader reader = null;
        try
        {
            reader = new XmlTextReader(fn);

            while (reader.Read())
            {
                if (reader.NodeType == XmlNodeType.Element)
                {
                    switch (reader.LocalName)
                    {
                        case "p":
                        textBox2.Text += reader.ReadString() + "\r\n";
                        break;
                    }
                }←★これはどこの括弧?とか
            }
        }←★これはどこの括弧閉じる?とか
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
        finally
        {
            reader.Close();
        }
    }
}←★括弧が一つ多いように思える病気とか・・・。

 

目で見るのではない、心で感じるのだ・・・。

ホースを信じろ・・・by JRA

投稿日時 : 2007年12月1日 10:30

Feedback

# re: C++++がぁ・・・C++++がぁぁぁ・・・。 2007/12/01 10:43 IIJIMAS

閉じる中カッコの<del>ケツ</del>後に一行コメント//で何の閉じるなのか書いとくとかどうですか。

# re: C++++がぁ・・・C++++がぁぁぁ・・・。 2007/12/01 10:50 とりこびと

インデントに対して縦線がほしい今日この頃・・・。

# re: C++++がぁ・・・C++++がぁぁぁ・・・。 2007/12/01 10:51 さかもと

>IIJIMASっち

// VB でいうところの END IF

// VB で言うところの END USING


// VB でいうところこの END SUB


// 心を閉ざす・・・。

# re: C++++がぁ・・・C++++がぁぁぁ・・・。 2007/12/01 10:52 さかもと

>とりこびっち

あっ、欲しいそれ(笑)

# re: C++++がぁ・・・C++++がぁぁぁ・・・。 2007/12/01 11:00 HiJun

最近MFCばっかなので、以外の{}で括ってくれたほうが
見やすいですね。
(昔は、VBばっかだったのに...)

すべては、第3の目で見てくださいw

# re: C++++がぁ・・・C++++がぁぁぁ・・・。 2007/12/01 11:05 さかもと

>HiJunさん

第3の目をクリスマスプレゼントに下さい。

お願い致します

# re: C++++がぁ・・・C++++がぁぁぁ・・・。 2007/12/01 11:21 ぽぴ王子

VisualStudioだったら、括弧の上にカーソルを
乗せて、Ctrl+]で対応する括弧に飛んだりしませんか。
まぁVisualStudioじゃなくてもそういう機能がついて
いるエディタがあったりするし、あと対応する括弧と
ともに色が変わる機能なんかもあったと思います。

実はVBがそんな好きじゃない理由の一つがコレだったり。
このEND IFってどこのIFと対応してるんだよ!って
イライラしたりするのです。

# re: C++++がぁ・・・C++++がぁぁぁ・・・。 2007/12/01 11:23 さかもと

>ぽぴ王子殿下
VSで書いているときは確かにそうなりますね、便利・・・。
いや、今サンプルを各所眺めているので、ホラ、つまりIDEを使っていない場合、これが問題(笑)

>>このEND IFってどこのIFと対応してるんだよ!って

心の目で・・・。

慣れの問題、慣れの・・・。

# re: C++++がぁ・・・C++++がぁぁぁ・・・。 2007/12/01 11:51 R・田中一郎

>インデントに対して縦線がほしい今日この頃・・・。

そういえば、こんな質問したの思い出しました。
http://forums.microsoft.com/MSDN-JA/ShowPost.aspx?PostID=1154948&SiteID=7

でも、サンプルコードはもう少しメソッドアウトした方が良いんじゃないかなぁ。

# re: C++++がぁ・・・C++++がぁぁぁ・・・。 2007/12/01 12:32 HiJun

いっそのこと、BASIC時代みたいに
行番号を表示させてみるとか?

# re: C++++がぁ・・・C++++がぁぁぁ・・・。 2007/12/01 12:34 HiJun

>第3の目をクリスマスプレゼントに下さい。
なお、私の第3の目は邪眼ですので呪われます。

# re: C++++がぁ・・・C++++がぁぁぁ・・・。 2007/12/01 14:46 さかもと

>R・田中一郎さん
で、使い心地はいかがだったでしょうか?
まねっ子してみたいかと。

>HiJunさん
いっそのことこのままVBでいくとか・・・。

じゃがんでつね。

# re: C++++がぁ・・・C++++がぁぁぁ・・・。 2007/12/01 15:47

vi(もしくはそのクローン)エディターだったら括弧にカーソルを当てて%を押すと対応する括弧に飛びますよ。

って、vi使ってる人はいませんか?すいません・・・


# %押して遥かソースの下に吹っ飛ばされると
# 流石に萎えますね。。。

# re: C++++がぁ・・・C++++がぁぁぁ・・・。 2007/12/01 17:17 RUN

自分の場合C出身者であるので、逆に中括弧無しの違和感の方が面倒だったかな?

End IFとかEnd Subとかは全部脳内置換で}として考えていますけどね、今は。

慣れるまではIIJIMASさんがお勧めしてるように
}//End if
とかするといいかな?多分
あと、
}←★これはどこの括弧閉じる?とか
catch (Exception ex)
の部分はそのまま
}catch (Exception ex)
と記述する(Else句も同様)コーディングスタイルにするといいかも 

# re: C++++がぁ・・・C++++がぁぁぁ・・・。 2007/12/01 17:44 さかもと

>ふさん
もっすもすさんが反応します。たぶん。

>RUNさん
やってみようとしたら自動整形であれ?みたいな・・・(笑)
ちょっとオプションを色々と触ってみます。

# re: C++++がぁ・・・C++++がぁぁぁ・・・。 2007/12/01 19:43 επιστημη

C/C++屋的には:
#define Then {
#define EndIf }
#define Do {
#define Next {
...

お願いだからやめてください

# re: C++++がぁ・・・C++++がぁぁぁ・・・。 2007/12/01 22:34 渋木宏明(ひどり)

ちゅーか、カッコ云々の前に、こんなにネストの深いコード書いてる時点で駄目だと思う。

using 使えばちっとは減るとか、そういう問題でもなさそーだし。

# re: C++++がぁ・・・C++++がぁぁぁ・・・。 2007/12/02 3:25 Shutting down もしもし (abort)

May the forth be with you は何処で読んだ洒落だったろうか...。

vim じゃイカンと思う今日この頃。

# re: C++++がぁ・・・C++++がぁぁぁ・・・。 2007/12/02 8:24 さかもと

>επιστημηさん
どうでしょう。この際、ぶいびぃに乗り換えては?
「END IF」 ってみっしり書けます。

>ひどりさん
サンプル借りた先にこっそり言っておきます(笑)
「某ひどりさんがですね・・・」って(笑)
でもネストの深さってじゅーよーですよねー。
いかに浅く出来るか(分かりやすく)。
If Then
If Then
If Then
If Then
If Then
GO TO !!

>もしもしっち

NotePad2008はいかがですか?
コピー&ペーストもできます!

# re: C++++がぁ・・・C++++がぁぁぁ・・・。 2007/12/02 18:13 渋木宏明(ひどり)

>でもネストの深さってじゅーよーですよねー。
>いかに浅く出来るか(分かりやすく)。

重要なのは「分かりやすく」の方です。

内容の吟味もナシに、ネストを浅くすることだけに執着しても意味はありません。

ネストが浅いから分かりやすいのではなく、分かりやすいコードであればせいぜい2,3段程度のネストしかない、というのが本来の姿です。

# re: C++++がぁ・・・C++++がぁぁぁ・・・。 2007/12/03 7:48 さかもと

>ひどりさん

「分かりやすく」ですねー・・。
がんばろー・・・。

# re: C++++がぁ・・・C++++がぁぁぁ・・・。 2007/12/04 12:10 R・田中一郎

確かに、先頭の数行だけでも、いくつか気になるんですよね。

if (openFileDialog1.ShowDialog() != DialogResult.OK) return;

ここでガード句を使っているのに、

if (File.Exists(fn))

ここで使わない理由がわからないです。

ネストが深くなるのも、ボタンが押された時の振る舞いを書くべき場所に、ファイルを読むための振る舞いまで書いてしまっているから、という単純な理由ですね。

#まあ、分かっていてネタにしているのでしょうけど^^;

# re: C++++がぁ・・・C++++がぁぁぁ・・・。 2007/12/04 13:28 さかもと

>R・田中一郎さん

どうも、うざいさかもとです。

えぇと、このコードは本当に単にサンプルとして「どなたからか借りた」ものなので(笑)※「{」が分かりづらいサンプルとして・・・。

# re: C++++がぁ・・・C++++がぁぁぁ・・・。 2007/12/04 13:30 渋木宏明(ひどり)

>if (File.Exists(fn))

このチェック自体ほとんど意味ないし。

こことーったからつて、XmlReader() がそのファイルを開くまでにそのファイルが削除されない保証なんかないし、ファイルが存在しるからつって、必ず開ける保証もない。

ガード句云々は、もっと後方の Element かどうかをチェックしている箇所に捧げます。

この辺は、このコードが「何を目的としているか」で変わってくるところではありますが。

# re: C++++がぁ・・・C++++がぁぁぁ・・・。 2007/12/04 15:11 さかもと

>ひどりさん

厳重注意しておきます(笑)

タイトル
名前
Url
コメント