カテゴリー「パソコン・インターネット」の34件の投稿

2007年6月 7日 (木)

事務処理に最適化されたCOBOL 丸め誤差

 殆どの言語の数値計算は浮動小数点が一般的です。二進化十進数(BCD)を標準に使うのはCOBOLぐらいのものです。

 四捨五入はCOBOLではROUNDでカンタンに処理できますが他の言語では一工夫必要です。
 VB.NET(2002)からDecimal型が使えるようになりました。JAVAにはBigDecimal型がありますがこれはCPU負荷が大きく大量データの計算には不向きです。C++ではかなりの工夫が必要です。

浮動小数点での現象
http://go2vb.cocolog-nifty.com/blog/2007/04/post_3828.html

0.1を1000回加算しても100にならない。

1.1 - 0.1 - 1が0にならない。

 浮動小数点の0.1は内部では2進数で現すと循環小数となるためこのような現象が起こります。循環小数の場合、表示される値と内部の値が違うことが有るため、四捨五入した結果が違うということも度々起こります。

 BCD演算であればこのような誤差は発生しません。事務計算では金額計算で1円の誤差がでたらユーザから信用を失ってしまいます。

--- つづく ---

お役に立てましたか?
IT、プログラミングのランキングサイトはこちらです。

にほんブログ村 IT技術ブログへ 人気blogランキングへ FC2 Blog Rankingへ


最新記事の自動受信登録はこちらです。

はてなRSSに追加

livedoor Readerに追加
My Yahoo!に追加
Googleに追加
goo RSSリーダーに追加

| | コメント (0) | トラックバック (0)

2007年6月 3日 (日)

事務処理に最適化されたCOBOL 冗長化

wikipediaには

「COBOLの冗長さ」は有名で、時折ハッカージョークのネタにされる。例えばCOBOLのオブジェクト指向拡張案「ADD 1 TO COBOL GIVING COBOL」(C++のもじり)などである。

http://ja.wikipedia.org/wiki/COBOL

そこにはそれを裏付けるけるかのように、以下のようなコードが記載されています。これをアンチコボラーが見たら『ほーらね。COBOLはこんなに無駄だらけじゃない!』と思うでしょうね。或はCOBOLを知らない人はなるほどCOBOLは流行らないわけだと納得することでしょう。

000100 IDENTIFICATION DIVISION.
000200 PROGRAM-ID.     HELLOWORLD.
000300 DATE-WRITTEN.   02/05/96        21:04.
000400*       AUTHOR    BRIAN COLLINS
000500 ENVIRONMENT DIVISION.
000600 CONFIGURATION SECTION.
000700 SOURCE-COMPUTER. RM-COBOL.
000800 OBJECT-COMPUTER. RM-COBOL.
000900
001000 DATA DIVISION.
001100 FILE SECTION.
001200
100000 PROCEDURE DIVISION.
100100
100200 MAIN-LOGIC SECTION.
100300 BEGIN.
100400     DISPLAY " " LINE 1 POSITION 1 ERASE EOS.
100500     DISPLAY "HELLO, WORLD." LINE 15 POSITION 10.
100600     STOP RUN.
100700 MAIN-LOGIC-EXIT.
100800     EXIT.

アンチコボラー:『大体BEGINやMAIN-LOGIC-EXITなんて意味無いじゃん。』

コボラー:『これは定型句だから大して面倒じゃないよ。ずっと昔からこうやってるんだから他からコピーペーストしてくれば良いでしょ。』

てな感じでやり取りしそうです。

 いまどきのコボラーにHELLO,WORD.を画面表示するのにこんなコードを書く人はいないでしょう。

コボラー的にはHELLO, WORLD.は以下のようにコーディングします。

        PROCEDURE DIVISION.
           DISPLAY " " LINE 1 POSITION 1 ERASE EOS.
           DISPLAY "HELLO, WORLD." LINE 15 POSITION 10.
           STOP RUN.

たった4行で、前述と同じ様に画面をクリアし15行目の10桁目にHELLO, WORLDを表示できます。

単に画面に表示するなら

COBOLのHELLO, WORLD.表示ソース
        PROCEDURE DIVISION.
           DISPLAY "HELLO, WORLD."
           STOP RUN.

3行で済みます。更に、DIPLAY文の最後のピリオドも省略できます。

VB.NETでは5行必要です。
Module Module1
    Sub Main()
        Console.WriteLine("HELLO, WORLD.")
    End Sub
End Module

C++のHELLO, WORLD.表示ソース
#include <iostream>
int main()
{
    std::cout << "HELLO, WORLD.\n";
}

JAVAのHELLO, WORLD.表示ソース
public class HelloWorldApp {
  public static void main(String[] args) {
    System.out.println("HELLO, WORLD.");
  }
}

命令文が省略化されたC++は比較的文字数が少なくて済みますが、逆に可読性は低くなります。

--- つづく ---

お役に立てましたか?
IT、プログラミングのランキングサイトはこちらです。

にほんブログ村 IT技術ブログへ 人気blogランキングへ FC2 Blog Rankingへ


最新記事の自動受信登録はこちらです。

はてなRSSに追加

livedoor Readerに追加
My Yahoo!に追加
Googleに追加
goo RSSリーダーに追加

| | コメント (0) | トラックバック (0)

2007年5月27日 (日)

CSVファイルの読込み(TextFieldParser)

CSVファイルの定義は

RFC Editor
http://www.rfc-editor.org/rfc/rfc4180.txt

に記述されています。

また、Excelで保存時にCSVファイルに指定し読み書きしてみるとカンタンに確認できます。

概要

1.行の区切りはCRLFでファイルの終端はCRLFを含まなくても良い。
2.フィールドの区切りは原則,(カンマ)で、
フィールドに,(カンマ)"(ダブルクォーツ)'(クォーツ)、又は制御文字(CRLF,CR,LF)が含まれる場合、又は両端のどちらかにスペースかTABを含む場合、フィールドは"(ダブルクォーツ)で括る。
 但し、最初のフィールドの左端と最後のフィールドの右端には"(ダブルクォーツ)が無くても良い。
3.上記条件に該当しないフィールドは"(ダブルクォーツ)で括っても括らなくても良い。
  →早い話がCSVで書き込む場合、フィールドは"(ダブルクォーツ)で括れば問題ない。
4.フィールドに"(ダブルクォーツ)を含む場合、直後に"(ダブルクォーツ)を追加する。

CSVを読込みする時はTextFieldParser オブジェクトを使用すると上記の条件を意識しないでコーディングできます。

VB.NET2005
TextFieldParser オブジェクトを使用します。

テストデータ(実行するにはC:\TEST.TXTに下記7行を複写して下さい。)
1,AAA,カンマ区切り
2,"BBB",ダブルクォーツで括られている
3,"CC,C",フィールド内にカンマが有る
4,"D""DD",フィールド内にダブルクォーツが有る
5,"""EEE""",フィールドの両端がダブルクォーツ 
6,""FFF,フィールドの左端のダブルクォーツが解析不可
7,"GGG",a,b,フィールド構成が異なる

Imports Microsoft.VisualBasic.FileIO
Module Module1
    Sub Main()
        Using MyReader As New TextFieldParser("C:\test.txt" _
            , System.Text.Encoding.GetEncoding("Shift_JIS"))    '文字コードを指定する。
            MyReader.TextFieldType = FieldType.Delimited
            MyReader.SetDelimiters(",")
            Dim oRow As String()
            Dim i As Integer
            While Not MyReader.EndOfData
                Try
                    i += 1
                    Console.WriteLine("レコードNo." + i.ToString)
                    oRow = MyReader.ReadFields()
                    For Each oField As String In oRow
                        Console.WriteLine(oField)
                    Next
                    Console.Write(ControlChars.CrLf)
                Catch ex As MalformedLineException
                    Console.WriteLine("Line " & ex.Message _
                    & ControlChars.CrLf & "レコードはそのまま出力されます。")
                    Console.WriteLine(MyReader.ErrorLine & ControlChars.CrLf)
                End Try
            End While
        End Using
    End Sub
End Module

実行結果

レコードNo.1
1
AAA
カンマ区切り

レコードNo.2
2
BBB
ダブルクォーツで括られている

レコードNo.3
3
CC,C
フィールド内にカンマが有る

レコードNo.4
4
D"DD
フィールド内にダブルクォーツが有る

レコードNo.5
5
"EEE"
フィールドの両端がダブルクォーツ

レコードNo.6
Line 現在の区切り記号を使用して、行 6 を解析できません。
レコードはそのまま出力されます。
6,""FFF,フィールドの左端のダブルクォーツが解析不可

レコードNo.7
7
GGG
a
b
フィールド構成が異なる

お役に立てましたか?
IT、プログラミングのランキングサイトはこちらです。

にほんブログ村 IT技術ブログへ 人気blogランキングへ FC2 Blog Rankingへ


最新記事の自動受信登録はこちらです。

はてなRSSに追加

livedoor Readerに追加
My Yahoo!に追加
Googleに追加
goo RSSリーダーに追加

| | コメント (1) | トラックバック (0)

CSVファイルの保存(書き込み)

CSVファイルの定義は

RFC Editor
http://www.rfc-editor.org/rfc/rfc4180.txt

に定義されています。

Excelで保存時にCSVファイルに指定し読み書きしてみるとカンタンに確認できます。

要約

1.行の区切りはCRLFでファイルの終端はCRLFを含まなくても良い。
2.フィールドの区切りは原則,(カンマ)で、
フィールドに,(カンマ)"(ダブルクォーツ)'(クォーツ)、又は制御文字(CRLF,CR,LF)が含まれる場合、又は両端のどちらかにスペースかTABを含む場合、フィールドは"(ダブルクォーツ)で括る。
 但し、最初のフィールドの左端と最後のフィールドの右端には"(ダブルクォーツ)が無くても良い。
3.上記条件に該当しないフィールドは"(ダブルクォーツ)で括っても括らなくても良い。
  →早い話がCSVで書き込む場合、フィールドは"(ダブルクォーツ)で括れば問題ない。
4.フィールドに"(ダブルクォーツ)を含む場合、直後に"(ダブルクォーツ)を追加する。

CSVを読込みする時はTextFieldParser オブジェクトを使用すると上記の条件を意識しないでコーディングできます。

VB.NET2005
実行するにはC:\TEXT.FIXに下記5行を複写して下さい。
1AAA  カンマ区切り
2"BBB"ダブルクォーツで括られている
3CC,C フィールド内にカンマが有る
4D"DD フィールド内にダブルクォーツが有る
5"EEE"フィールドの両端がダブルクォーツ 

Module Module1
    Sub Main()
        Dim rd As String
        Dim sr As New System.IO.StreamReader("C:\TEST.FIX" _
            , System.Text.Encoding.GetEncoding("Shift_JIS"))        '入力フィアル
        Dim sw As New System.IO.StreamWriter("C:\TEST.CSV" _
            , False, System.Text.Encoding.GetEncoding("Shift_JIS")) '出力ファイル
        Do Until sr.EndOfStream
            rd = sr.ReadLine
            sw.WriteLine(Edit_CSV_Field(Mid(rd, 1, 1)) _
                   + "," + Edit_CSV_Field(Mid(rd, 2, 5)) _
                   + "," + Edit_CSV_Field(Mid(rd, 7)))
        Loop
        sw.Close()
        sr.Close()
    End Sub
    'フィールドは全て”で括る
    'フィールド内の”は””に置換
    Private Function Edit_CSV_Field(ByVal strItem As String) As String
        Return """" + strItem.Replace("""", """""") + """"
    End Function
End Module

実行結果(C:\TEST.CSVの内容)
"1","AAA  ","カンマ区切り"
"2","""BBB""","ダブルクォーツで括られている "
"3","CC,C ","フィールド内にカンマが有る"
"4","D""DD ","フィールド内にダブルクォーツが有る"
"5","""EEE""","フィールドの両端がダブルクォーツ  "

お役に立てましたか?
IT、プログラミングのランキングサイトはこちらです。

にほんブログ村 IT技術ブログへ 人気blogランキングへ FC2 Blog Rankingへ


最新記事の自動受信登録はこちらです。

はてなRSSに追加

livedoor Readerに追加
My Yahoo!に追加
Googleに追加
goo RSSリーダーに追加

| | コメント (0) | トラックバック (0)

2007年5月26日 (土)

COPY文

 COPY文を使うとレコード定義などを他のソースプログラムと共有する事で保守性を高めることができます。以下の例は2種類のレコードレイアウトを持つテキストファイルを読込んで項目を画面表示します。
ファイル内容(実行するには以下の6行をC:\TEST.TXTに書き込みます。)
R1=aaaaaaaaaA0005
R2=108-8558日本電気 株式会社           東京都 港区 芝浦 4丁目14-22大東田町ビル
R1=bbbbbbbbbB0005
R2=105-8001株式会社 東芝             東京都 港区 芝浦 1丁目1-1
R2=141-8514日本アイ・ビー・エム 株式会社     東京都 品川区 西五反田 8丁目1-5 
R1=cccccccccC0005

COBOL

親プログラムのソース
000011 ENVIRONMENT             DIVISION    .
000012 CONFIGURATION           SECTION     .
000013 INPUT-OUTPUT            SECTION.
000014 FILE-CONTROL.
000016     SELECT  TF
000017         ASSIGN                   "C:\TEST.TXT"
000019         ORGANIZATION    LINE SEQUENTIAL
000020     .
000093 DATA                    DIVISION.
000094 FILE                    SECTION.
000095*****************************************************************
000096 FD  TF      .
000097*****************************************************************
000098 01  TF-R        .
000100     03  RKEY            PIC  X(003).
000101     03  ITEMS           PIC  X(600).
       01  R1 REDEFINES TF-R.
       COPY "R1.CPY".
       01 R2 REDEFINES TF-R.
       COPY "R2.CPY".
       WORKING-STORAGE SECTION.
       01 I PIC 99.
       PROCEDURE DIVISION.
           OPEN INPUT TF.
           PERFORM UNTIL TF-R = HIGH-VALUE
             READ TF
               AT END
                   MOVE HIGH-VALUE TO TF-R
               NOT AT END
                 EVALUATE TRUE
                   WHEN RKEY OF TF-R = "R1="
                    DISPLAY "レコードレイアウトR1"
                    DISPLAY 品名
                    DISPLAY 数量
                   WHEN RKEY OF TF-R = "R2="
                    DISPLAY "レコードレイアウトR2"
                    DISPLAY 郵便番号
                    DISPLAY 会社名
                    DISPLAY 住所
                 END-EVALUATE
                 DISPLAY " "
           END-PERFORM.
           CLOSE TF.
           STOP RUN.

R1.CPYの内容
           03 RKEY             PIC  X(003).
           03 品名             PIC  X(010).
           03 数量             PIC  9(005).

R2.CPYの内容
           03 RKEY             PIC  X(003).
           03 郵便番号         PIC  X(008).
           03 会社名           PIC  N(020).
           03 住所             PIC  N(040).

VB.NET
 VB.NETにはCOPY文に該当する機能は有りません。Moduleを使ってCOBOL的にマネて見ましょう。
 Structureで定義したレコード部分を抜き出してModule2.vbに移動します。Module1からModule2を参照する形になり、Module2は他の親ソースプログラムからも同様に参照することがでるのでCOPY文と同じように保守性を高めた使い方が実現します。

親プログラム
Module Module1
    Sub Main()
        Dim sf As New System.IO.StreamReader("c:\test.txt", _
        System.Text.Encoding.GetEncoding(932))  'Shift JISを指定
        Dim i As Integer = 0
        Dim R1 As New R1
        Dim R2 As New R2

        Do Until sf.EndOfStream
            Dim sr As String
            sr = sf.ReadLine()
            i += 1
            R1.Redefines(sr)
            R2.Redefines(sr)
            Select Case Mid(sr, 1, 3)
                Case "R1="
                    Console.WriteLine(i.ToString + "レコードフォーマット R1")
                    Console.WriteLine(R1.品名)
                    Console.WriteLine(R1.数量)
                Case "R2="
                    Console.WriteLine(i.ToString + "レコードフォーマット R2")
                    Console.WriteLine(R2.郵便番号)
                    Console.WriteLine(R2.会社名)
                    Console.WriteLine(R2.住所)
            End Select
            Console.WriteLine(ControlChars.CrLf)    '改行
        Loop
        sf.Close()
    End Sub
End Module

Module2をプロジェクトに追加します。
Module Module2
    'レコードフォーマットR1
    Public Structure R1
        Public RKEY As String
        Public 品名 As String
        Public 数量 As String
        Public Sub Redefines(ByVal R0 As String)
            RKEY = Mid(R0, 1, 3)
            品名 = Mid(R0, 4, 10)
            数量 = Mid(R0, 14, 5)
        End Sub
    End Structure
    'レコードフォーマットR2
    Public Structure R2
        Dim RKEY As String
        Dim 郵便番号 As String
        Dim 会社名 As String
        Dim 住所 As String
        Public Sub Redefines(ByVal R0 As String)
            RKEY = Mid(R0, 1, 3)
            郵便番号 = Mid(R0, 4, 8)
            会社名 = Mid(R0, 12, 20)
            住所 = Mid(R0, 32, 40)
        End Sub
    End Structure
End Module

お役に立てましたか?
IT、プログラミングのランキングサイトはこちらです。

にほんブログ村 IT技術ブログへ 人気blogランキングへ FC2 Blog Rankingへ


最新記事の自動受信登録はこちらです。

はてなRSSに追加

livedoor Readerに追加
My Yahoo!に追加
Googleに追加
goo RSSリーダーに追加

| | コメント (0) | トラックバック (0)

2007年5月16日 (水)

ドロップダウン(ComboBox)をリードオンリー(ReadOnly)に

VB.NET
Photo_14

プロパティーDropDownStyleをDropDownListに変更します。

Dropdownlist

お役に立てましたか?
IT、プログラミングのランキングサイトはこちらです。

にほんブログ村 IT技術ブログへ 人気blogランキングへ FC2 Blog Rankingへ


最新記事の自動受信登録はこちらです。

はてなRSSに追加

livedoor Readerに追加
My Yahoo!に追加
Googleに追加
goo RSSリーダーに追加

| | コメント (0) | トラックバック (0)

2007年4月29日 (日)

数学関数

COBOL
最大値             MAX
最小値             MIN
平方根             SQRT
乱数                RANDOM
剰余                MEM
モジュロー値   MOD:引数-1 -(引数-2*FUNCTION INTEGER(引数-1/引数-2))
整数の最大値       INTEGER
整数部                INTEGER-PART
サイン                 SIN
コサイン              COS
タンジェント          TAN
アークサイン        ASIN
アークタンジェント ATAN
アークコサイン     ACOS
階乗                 FACTORIAL
自然対数           LOG
対数                 LOG10
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01 D1 PIC X(10) VALUE "0123456789".
       01 D REDEFINES D1 PIC 9 OCCURS 10.
       01 ANS1 PIC S9(5)V99.
       01 ANS2 PIC S9(5)V99.
       01 ANS3 PIC S9(5)V99.
       01 ANS4 PIC S9(5)V99.
       01 ANS5 PIC S9(5)V99.
       01 ANS6 PIC S9(5)V99.
       01 ANS7 PIC S9(5)V99.
       01 ANS8 PIC S9(5)V99.
       01 ANS9  COMP-2.
       01 ANS10 COMP-2.
       01 ANS11 COMP-2.
       01 ANS12 PIC S9(5)V99.
       01 ANS13 PIC S9(5)V99.
       01 ANS14 PIC S9(5)V99.
       01 ANS15 PIC S9(5)V99.
       01 ANS16 PIC S9(15)V99.
       01 ANS17 PIC S9(15)V99.
       01 ANS18 PIC S9(4)V99 OCCURS 3.
       01 ANS0  PIC ---,--9.99.
       01 ANS01 PIC --9.99.
       PROCEDURE DIVISION.
           COMPUTE ANS1 = FUNCTION ABS(-11.1)
           COMPUTE ANS2 = FUNCTION MAX (D(ALL))    .
           COMPUTE ANS3 = FUNCTION MIN (D(ALL))    .
           COMPUTE ANS4 = FUNCTION SQRT(2)         .
           COMPUTE ANS5 = FUNCTION REM (10,3)      .
           COMPUTE ANS6 = FUNCTION MOD (-10,3)     .
           COMPUTE ANS7 = FUNCTION INTEGER (-3 / 2).
           COMPUTE ANS8 = FUNCTION INTEGER-PART (-3 / 2)
           COMPUTE ANS9 = FUNCTION SIN(360 / 3.14)
           COMPUTE ANS10 = FUNCTION COS(360 /3.14)
           COMPUTE ANS11 = FUNCTION TAN(360 / 3.14)
           COMPUTE ANS12 = FUNCTION ASIN(ANS9)
           COMPUTE ANS13 = FUNCTION ACOS(ANS10)
           COMPUTE ANS14 = FUNCTION ATAN(ANS11)
           COMPUTE ANS15 = FUNCTION LOG(2.718281828459045)
           COMPUTE ANS16 = FUNCTION LOG10(10000)
           COMPUTE ANS17 = FUNCTION FACTORIAL(8)
           COMPUTE ANS18(1) = FUNCTION RANDOM()       .
           COMPUTE ANS18(2) = FUNCTION RANDOM()       .
           COMPUTE ANS18(3) = FUNCTION RANDOM()       .
           MOVE ANS1 TO ANS0
           DISPLAY "              絶対値 ABS(-11.1) =" ANS0
           MOVE ANS2 TO ANS0
           DISPLAY "最大値 MAX(0,1,2,3,4,5,6,7,8,9) =" ANS0
           MOVE ANS3 TO ANS0
           DISPLAY "最小値 MIN(0,1,2,3,4,5,6,7,8,9) =" ANS0
           MOVE ANS4 TO ANS0
           DISPLAY "                 平方根 SQRT(2) =" ANS0
           MOVE ANS5 TO ANS0
           DISPLAY "              剰余  REM(10 / 3) =" ANS0
           MOVE ANS6 TO ANS0
           DISPLAY "引数-1 -(引数-2*FUNCTION INTEGER(引数-1/引数-2))"
           DISPLAY "      モジュロー値 MOD(-10 / 3) =" ANS0
           MOVE ANS7 TO ANS0
           DISPLAY "     整数の最大値 INTEGER(-3/2) =" ANS0
           MOVE ANS8 TO ANS0
           DISPLAY "      整数部 INTEGER-PART(-3/2) =" ANS0.
           DISPLAY "           サイン SIN(360/3.14) =" ANS9.
           DISPLAY "         コサイン COS(360/3.14) =" ANS10.
           DISPLAY "     タンジェント TAN(360/3.14) =" ANS11.
           MOVE ANS12 TO ANS01
           DISPLAY "           アークサイン ASIN(" ANS9  ")=" ANS01.
           MOVE ANS13 TO ANS01
           DISPLAY "         アークコサイン ACOS(" ANS10 ")=" ANS01.
           MOVE ANS14 TO ANS01
           DISPLAY "     アークタンジェント ATAN(" ANS11 ")=" ANS01.
           MOVE ANS15 TO ANS0
           DISPLAY "自然対数 LOG(2.718281828459045) =" ANS0.
           MOVE ANS16 TO ANS0
           DISPLAY "              対数 LOG10(10000) =" ANS0.
           MOVE ANS17 TO ANS0
           DISPLAY "              階乗 FACTORIAL(8) =" ANS0.
           MOVE ANS18(1) TO ANS0
           DISPLAY "                   乱数 RANDOM() =" ANS0.
           MOVE ANS18(2) TO ANS0
           DISPLAY "                   乱数 RANDOM() =" ANS0.
           MOVE ANS18(3) TO ANS0
           DISPLAY "                   乱数 RANDOM() =" ANS0.
           STOP RUN.

              絶対値 ABS(-11.1) =     11.10
最大値 MAX(0,1,2,3,4,5,6,7,8,9) =      9.00
最小値 MIN(0,1,2,3,4,5,6,7,8,9) =      0.00
                 平方根 SQRT(2) =      1.41
              剰余  REM(10 / 3) =      1.00
引数-1 -(引数-2*FUNCTION INTEGER(引数-1/引数-2))
      モジュロー値 MOD(-10 / 3) =      2.00
     整数の最大値 INTEGER(-3/2) =     -2.00
      整数部 INTEGER-PART(-3/2) =     -1.00
           サイン SIN(360/3.14) = .999829797538426930E 00
         コサイン COS(360/3.14) = .184492805894424270E-01
     タンジェント TAN(360/3.14) = .541934300739389270E 02
           アークサイン ASIN( .999829797538426930E 00)=  1.55
         アークコサイン ACOS( .184492805894424270E-01)=  1.55
     アークタンジェント ATAN( .541934300739389270E 02)=  1.55
自然対数 LOG(2.718281828459045) =      1.00
              対数 LOG10(10000) =      4.00
              階乗 FACTORIAL(8) = 40,320.00
                 乱数 RANDOM() =      0.47
                 乱数 RANDOM() =      0.80
                 乱数 RANDOM() =      0.58

VB.NET
Abs   絶対値
Sqrt  平方根
Exp   階乗
Round   指定した値に最も近い整数(四捨五入ではありません
Floor   指定した数値以下の最大の整数
Ceiling  指定した数値以上の最小の整数
Sign   数値の符号
Asin   アークサイン
Acos   アークコサイン
Atan   アークタンジェント
Sin   サイン
Cos   コサイン
Tan   タンジェント
Log   自然対数
Log10   対数
Min    二つの数のうち小さい方
Max   二つの数のうち大きい方
Pow べき乗
IEEERemainder  剰余

Module Module1
    Sub Main()
        '.ToStringは文字列変換の関数
        Console.WriteLine("絶対値(-12.8)=" + Math.
Abs(-12.8).ToString)
        Console.WriteLine("平方根(2)=" + Math.
Sqrt(2).ToString)
        Console.WriteLine("階乗(2)=" + Math.
Exp(2).ToString)
        Console.WriteLine("階乗(2.7182818284590451^2)=" + (2.7182818284590451 ^ 2).ToString)
        Console.WriteLine("最も近い整数(-0.5)=" + Math.
Round(-0.5).ToString)
        Console.WriteLine("指定した数値以下の最大の整数(-0.5)=" + Math.
Floor(-0.5).ToString)
        Console.WriteLine("指定した数値以上の最小の整数(-0.5)=" + Math.
Ceiling(-0.5).ToString)
        Console.WriteLine("数値の符号(-9)=" + Math.
Sign(-9).ToString)
        Console.WriteLine("数値の符号(9)=" + Math.
Sign(9).ToString)
        Console.WriteLine("サイン(360 / 3.14)=" + Math.
Sin(360 / 3.14).ToString)
        Console.WriteLine("コサイン(360 / 3.14)=" + Math.
Cos(360 / 3.14).ToString)
        Console.WriteLine("タンジェント(360 / 3.14)=" + Math.
Tan(360 / 3.14).ToString)
        Console.WriteLine("アークサイン" + Math.Asin(Math.
Sin(360 / 3.14)).ToString)
        Console.WriteLine("アークコサイン" + Math.Acos(Math.
Cos(360 / 3.14)).ToString)
        Console.WriteLine("アークタンジェント" + Math.Atan(Math.
Tan(360 / 3.14)).ToString)
        Console.WriteLine("自然対数(2.7182818284590451)=" + Math.
Log(2.7182818284590451).ToString)
        Console.WriteLine("対数(10000)=" + Math.
Log10(10000).ToString)
        Console.WriteLine("2 つの数のうち小さい方(-12.1,7)=" + Math.
Min(-12.1, 7).ToString)
        Console.WriteLine("2 つの数のうち大きい方(-12.1,7)=" + Math.
Max(-12.1, 7).ToString)
        Console.WriteLine("べき乗(2,32)=" + Convert.ToDecimal(Math.
Pow(2, 32)).ToString)
        Console.WriteLine("剰余(10,3)=" + Math.
IEEERemainder(10, 3).ToString)
        Console.WriteLine("剰余(10mod3)=" + (10 Mod 3).ToString)
    End Sub

End Module

絶対値(-12.8)=12.8
平方根(2)=1.4142135623731
階乗(2)=7.38905609893065
階乗(2.7182818284590451^2)=7.38905609893065
最も近い整数(-0.5)=0
指定した数値以下の最大の整数(-0.5)=-1
指定した数値以上の最小の整数(-0.5)=0
数値の符号(-9)=-1
数値の符号(9)=1
サイン(360 / 3.14)=0.999829797538427
コサイン(360 / 3.14)=0.0184492805894511
タンジェント(360 / 3.14)=54.1934300739134
アークサイン1.55234599942986
アークコサイン1.55234599942986
アークタンジェント1.55234599942986
自然対数(2.7182818284590451)=1
対数(10000)=4
つの数のうち小さい方(-12.1,7)=-12.1
つの数のうち大きい方(-12.1,7)=7
べき乗(2,32)=4294967296
剰余(10,3)=1
剰余(10mod3)=1

お役に立てましたか?
IT、プログラミングのランキングサイトはこちらです。

にほんブログ村 IT技術ブログへ 人気blogランキングへ FC2 Blog Rankingへ


最新記事の自動受信登録はこちらです。

はてなRSSに追加

livedoor Readerに追加
My Yahoo!に追加
Googleに追加
goo RSSリーダーに追加

| | コメント (0) | トラックバック (0)

統計関数(標準偏差、分散...)

COBOL
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01 D1 PIC X(10) VALUE "0123456789".
       01 D REDEFINES D1 PIC 9 OCCURS 10.
       01 ANS0 PIC S9(5)V99.
       01 ANS1 PIC S9(5)V99.
       01 ANS2 PIC S9(5)V99.
       01 ANS3 PIC S9(5)V99.
       01 ANS4 PIC S9(5)V99.
       01 ANS5 PIC S9(5)V99.
       01 ANS6 PIC S9(5)V99.
       01 ANS  PIC ----.99.
       PROCEDURE DIVISION.
           COMPUTE ANS0 =
FUNCTION STANDARD-DEVIATION (D(ALL)).
           COMPUTE ANS1 =
FUNCTION VARIANCE (D(ALL)).
           COMPUTE ANS2 =
FUNCTION MEAN (D(ALL))        .
           COMPUTE ANS3 =
FUNCTION MEDIAN (D(ALL))      .
           COMPUTE ANS4 =
FUNCTION MIDRANGE (D(ALL))    .
           COMPUTE ANS5 =
FUNCTION SUM (D(ALL))         .
           COMPUTE ANS6 =
FUNCTION RANGE (D(ALL))       .
           MOVE ANS0 TO ANS.
           DISPLAY "標準偏差 STANDARD-DEVIATION =" ANS            .
           MOVE ANS1 TO ANS.
           DISPLAY "分散  VARIANCE=" ANS                .
           MOVE ANS2 TO ANS.
           DISPLAY "平均値 MEAN=" ANS                   .
           MOVE ANS3 TO ANS.
           DISPLAY "メジアン値 MEDIAN=" ANS            .
           MOVE ANS4 TO ANS.
           DISPLAY "最大最小の平均値  MIDRANGE=" ANS   .
           MOVE ANS5 TO ANS.
           DISPLAY "合計  SUM=" ANS                    .
           MOVE ANS6 TO ANS.
           DISPLAY "最小値と最大値の差  RANGE=" ANS    .
           STOP RUN.

標準偏差 STANDARD-DEVIATION =   2.87
分散  VARIANCE=   8.25
平均値 MEAN=   4.50
メジアン値 MEDIAN=   4.50
最大最小の平均値  MIDRANGE=   4.50
合計  SUM=  45.00
最小値と最大値の差  RANGE=   9.00

VB.NET
統計関数は有りません。
自作するかSQLServerの集計関数を使うか或は市販の拡張ツールを使うことになります。

SQLServer集計関数
AVG  平均値
SUM   合計
STDEV  標準偏差
COUNT   データ数
VAR   分散
MIN   最小
MAX   最大

お役に立てましたか?
IT、プログラミングのランキングサイトはこちらです。

にほんブログ村 IT技術ブログへ 人気blogランキングへ FC2 Blog Rankingへ


最新記事の自動受信登録はこちらです。

はてなRSSに追加

livedoor Readerに追加
My Yahoo!に追加
Googleに追加
goo RSSリーダーに追加

| | コメント (0) | トラックバック (0)

2007年4月16日 (月)

テキストファイル操作

COBOL

VB.NET
Module Module1
    Sub Main()
        WD()    'テキストファイル書き込み
        RD()    'テキストファイル読み込み
    End Sub
    Private Sub WD()
        Dim F As New System.IO.StreamWriter("C:\コボラー的VB.NET.txt")
        For i As Integer = 1 To 10
            F.WriteLine(Format(i, "###:" & "コボラー的VB.NET VB.NET2005"))
        Next
        F.Close()
    End Sub
    Private Sub RD()
        Dim F As New System.IO.StreamReader("C:\コボラー的VB.NET.txt")
        Dim R As String
        Do Until F.EndOfStream
            R = F.ReadLine
            Console.WriteLine(R)
        Loop
        F.Close()
    End Sub
End Module
Vb_3

文字コードを指定するにはファイル名の後に指定します。指定が無いとUTF-8で処理されます。
読込み
        Dim F As New System.IO.StreamReader("C:\コボラー的VB.NET.txt",
System.Text.Encoding.Default)
書き込み
        Dim F As New System.IO.StreamReader("C:\コボラー的VB.NET.txt",
False, System.Text.Encoding.Default)

Default部分はOSの規定値で以下のような指定ができます。
ASCII
BigEndianUnicode
Unicode
UTF32
UTF7
UTF8

System.Text.Encoding.Defaultの代わりに以下のような書き方もできます。
        Dim F As New System.IO.StreamReader("C:\コボラー的VB.NET.txt", System.Text.Encoding.
GetEncoding("Shift_JIS"))
またはコードページを指定する。
        Dim F As New System.IO.StreamReader("C:\コボラー的VB.NET.txt", System.Text.Encoding.
GetEncoding(932))

お役に立てましたか?
IT、プログラミングのランキングサイトはこちらです。

にほんブログ村 IT技術ブログへ 人気blogランキングへ FC2 Blog Rankingへ


最新記事の自動受信登録はこちらです。

はてなRSSに追加

livedoor Readerに追加
My Yahoo!に追加
Googleに追加
goo RSSリーダーに追加

| | コメント (0) | トラックバック (0)

2007年4月14日 (土)

データ編集(前ゼロ、前スペース、3桁区切り、日時、曜日)

数値を編集して画面に表示します。
マシン日時、曜日を取得し編集して画面に表示します。
COBOL
数値は仮想小数点のため、編集無しだと小数点は表示されません。
       WORKING-STORAGE SECTION.
       01 D       PIC 9(7)V99 VALUE 1234.5.
       01 D0-EDIT PIC 999999.99.
       01 D3-EDIT PIC ZZ,ZZZ.99.
       01 DS-EDIT PIC ZZZZZZ.99.
       01 Y       PIC X(6).
       01 Y-EDIT  PIC XX/XX/XX.
       01 T       PIC X(6).
       01 W       PIC 9.
       01 W-DATA  PIC N(7) VALUE '月火水木金土日'.
       PROCEDURE DIVISION.
           DISPLAY '編集無し         'D.
           MOVE D TO D0-EDIT.
           DISPLAY '前ゼロ           ' D0-EDIT.
           MOVE D TO DS-EDIT.
           DISPLAY '前スペ           ' DS-EDIT.
           MOVE D TO D3-EDIT.
           DISPLAY '前スペ3桁区切り ' D3-EDIT.
           ACCEPT Y FROM DATE.
           ACCEPT T FROM TIME.
           MOVE Y TO Y-EDIT.
           ACCEPT W FROM DAY-OF-WEEK.
           DISPLAY '日時 ' Y-EDIT
                   ' ' T(1:2) ':' T(3:2) ':' T(5:2)
                   ' ' W-DATA(W:1)
           .
           STOP RUN.
Cobol_2

VB.NET
日時の中の編集文字
"yy/MM/dd HH:mm:ss"月(MM)は大文字、分(mm)は小文字でなければなりません。
年(yy)が2桁の時はOSで設定されているスライディングウィンドウの値で19か2xが設定されます。

Module Module1
    Dim A As Decimal = 1234.5
    Sub Main()
        Console.WriteLine("     編集無し:" & A)
        Console.WriteLine("      前ゼロ:" & Format(A, "0000000.00"))
        Console.WriteLine("      前スペ:" & (Format(A, "#######.00")).PadLeft(10))
        Console.WriteLine("前スペ3桁区切り:" & (Format(A, "###,###.00")).PadLeft(10))
        Console.WriteLine("日時24時:" & Format(Date.Now, "yy/MM/dd HH:mm:ss dddd"))
        Console.WriteLine("日時12時:" & Format(Date.Now, "yy/MM/dd hh:mm:ss dddd"))
    End Sub
End Module

Vb_2

   

お役に立てましたか?
IT、プログラミングのランキングサイトはこちらです。

にほんブログ村 IT技術ブログへ 人気blogランキングへ FC2 Blog Rankingへ


最新記事の自動受信登録はこちらです。

はてなRSSに追加

livedoor Readerに追加
My Yahoo!に追加
Googleに追加
goo RSSリーダーに追加

| | コメント (0) | トラックバック (0)

IF文

マシン日付を取得し季節を判定し画面に表示します。
COBOL
       WORKING-STORAGE SECTION.
       01 YYMMDD PIC X(6).
       PROCEDURE DIVISION.
           ACCEPT YYMMDD FROM DATE.
           IF YYMMDD(3:2) =  '12'
                          OR '01'
                          OR '02'
               DISPLAY YYMMDD(3:2) '月 季節は冬'
           ELSE IF YYMMDD(3:2) = '03'
                              OR '04'
                              OR '05'
               DISPLAY YYMMDD(3:2) '月 季節は春'
           ELSE IF YYMMDD(3:2) = '06'
                              OR '07'
                              OR '08'
               DISPLAY YYMMDD(3:2) '月 季節は夏'
           ELSE IF YYMMDD(3:2) = '09'
                              OR '10'
                              OR '11'
               DISPLAY YYMMDD(3:2) '月 季節は秋'
           END-IF
           STOP RUN.
If_cobol_1 

VB.NET
楽をしようと思ってCOBOLのような条件式にしようとすると期待しない結果になってしまいます。
Module Module1
    Dim MM As Integer = Now.Month
    Sub Main()
        If MM = 12 _
        Or MM = 1 _
        Or MM = 2 _
        Then
            Console.WriteLine(MM & "月 季節は冬")
        ElseIf MM = 3 _
            Or MM = 4 _
            Or MM = 5 _
        Then
            Console.WriteLine(MM & "月 季節は春")
        ElseIf MM = 6 _
            Or MM = 7 _
            Or MM = 8 _
        Then
            Console.WriteLine(MM & "月 季節は夏")
        ElseIf MM = 9 _
            Or MM = 10 _
            Or MM = 11 _
        Then
            Console.WriteLine(MM & "月 季節は秋")
        End If
    End Sub
End Module
If_vb

お役に立てましたか?
IT、プログラミングのランキングサイトはこちらです。

にほんブログ村 IT技術ブログへ 人気blogランキングへ FC2 Blog Rankingへ


最新記事の自動受信登録はこちらです。

はてなRSSに追加

livedoor Readerに追加
My Yahoo!に追加
Googleに追加
goo RSSリーダーに追加

| | コメント (0)

ISAMファイル

COBOL
ISAM(索引付き順編成)ファイルはCOBOLのデータ処理に欠かせない機能です。

VB.NET
 ISAMファイルを操作する機能はVB.NETには有りません。SQLを使います。
下手にサードパーティーのツールを使ってISAM処理をしようものなら後で火がつきかねません。ここは潔く諦めてSQLを使って楽をしましょう。
 SQLを一度覚えてしまえばウソのようにカンタンにファイル操作が出来てしまいます。

お役に立てましたか?
IT、プログラミングのランキングサイトはこちらです。

にほんブログ村 IT技術ブログへ 人気blogランキングへ FC2 Blog Rankingへ


最新記事の自動受信登録はこちらです。

はてなRSSに追加

livedoor Readerに追加
My Yahoo!に追加
Googleに追加
goo RSSリーダーに追加

| | コメント (0)

2007年4月13日 (金)

RELATIVE FILE(固定長ファイル)の操作

COBOL

VB.NET
固定長ファイルはデータ項目を全て文字として扱います。
CRLFコードを末尾に付加しなければなりません。
構造体の複写は出来ません。

Module Module1
    Structure REC1
        <VBFixedString(40)> Public A As String
        <VBFixedString(11)> Public B As String
        <VBFixedString(1)> Public C As String
        <VBFixedString(2)> Public crlf As String
    End Structure

    Structure REC2
        <VBFixedString(40)> Public A As String
        <VBFixedString(11)> Public B As String
        <VBFixedString(1)> Public C As String
        <VBFixedString(19)> Public D As String
        <VBFixedString(2)> Public crlf As String
    End Structure
    Dim count As Integer = 0
    Sub Main()
        W() '5件のデータを作成
        N() 'レコード数を計数
        R() '書き込んだデータを画面表示
        U() '別のファイルに転記
    End Sub

    'レコードの作成
    Private Sub W()
        Dim FileNo As Integer = FileSystem.FreeFile
        FileSystem.FileOpen(FileNo, "c:\test.txt", OpenMode.Random, , , Len(New REC1()))

        Dim WR As New REC1
        For Rec_No As Integer = 1 To 5
            WR.A = "COBOL的VB.NET"
            WR.B = Format(Rec_No, "00000000000")
            WR.C = "x"
            WR.crlf = ControlChars.CrLf
            FileSystem.FilePut(FileNo, WR, Rec_No)
        Next

        FileSystem.FileClose(FileNo) 'ファイルを閉じる

    End Sub

    'レコードの読み込み
    Private Sub R()

        Dim FileNo As Integer = FileSystem.FreeFile
        FileSystem.FileOpen(FileNo, "c:\test.txt", OpenMode.Random, , , Len(New REC1()))

        Dim RR As New REC1
        Dim Rec_No As Integer = 1
        FileSystem.FileGet(FileNo, RR, Rec_No)
        Do Until EOF(FileNo)
            Console.WriteLine(Rec_No & ":")
            Console.WriteLine(RR.A)
            Console.WriteLine(RR.B)
            Console.WriteLine(RR.C)
            FileSystem.FileGet(FileNo, RR, Rec_No)
            Rec_No += 1
        Loop

        FileSystem.FileClose(FileNo) 'ファイルを閉じる

    End Sub

    'レコードの転記
    Private Sub U()
        Dim FileNoR As Integer = FileSystem.FreeFile
        FileSystem.FileOpen(FileNoR, "c:\test.txt", OpenMode.Random, , , Len(New REC1()))
        Dim FileNoU As Integer = FileSystem.FreeFile
        FileSystem.FileOpen(FileNoU, "c:\testU.txt", OpenMode.Random, , , Len(New REC2()))

        Dim R As New REC1
        Dim U As New REC2
        Dim R_No As Integer = 1
        FileSystem.FileGet(FileNoR, R, R_No)
        Do Until EOF(FileNoR)
            U.A = R.A
            U.B = R.B
            U.C = R.C
            U.D = Format(Now, "yyyy/MM/dd HH:mm:ss")
            U.crlf = ControlChars.CrLf
            FileSystem.FilePut(FileNoU, U, R_No)
            R_No += 1
            FileSystem.FileGet(FileNoR, R, R_No)
        Loop

        FileSystem.FileClose(FileNoR) 'ファイルを閉じる
        FileSystem.FileClose(FileNoU) 'ファイルを閉じる

    End Sub

    'レコードの総数を取得
    Private Sub N()
        If System.IO.File.Exists("c:\test.txt") Then
            count = FileLen("c:\test.txt") / Len(New REC1())
            Console.WriteLine(count.ToString)
        End If
    End Sub

End Module

お役に立てましたか?
IT、プログラミングのランキングサイトはこちらです。

にほんブログ村 IT技術ブログへ 人気blogランキングへ FC2 Blog Rankingへ


最新記事の自動受信登録はこちらです。

はてなRSSに追加

livedoor Readerに追加
My Yahoo!に追加
Googleに追加
goo RSSリーダーに追加

| | コメント (0)

2007年4月11日 (水)

PERFORM命令(繰り返し処理)

COBOL
       WORKING-STORAGE SECTION.
       01 I PIC 9.
       PROCEDURE DIVISION.
       PERFORM VARYING I FROM 1 BY 1 UNTIL I > 5
           DISPLAY "繰り返し:" I UPON CONSOLE
       END-PERFORM.
       STOP RUN.

VB.NET
Do...Loop
Module Module1
    Private j As Integer = 1
    Sub Main()
        Do Until j > 5
            Console.WriteLine("繰り返し:" & j)
            j += 1
        Loop
    End Sub
End Module

For...Next
Module Module1
    Private j As Integer
    Sub Main()
        For j = 1 To 5
            Console.WriteLine("繰り返し:" & j)
        Next
    End Sub
End Module

お役に立てましたか?
IT、プログラミングのランキングサイトはこちらです。

にほんブログ村 IT技術ブログへ 人気blogランキングへ FC2 Blog Rankingへ


最新記事の自動受信登録はこちらです。

はてなRSSに追加

livedoor Readerに追加
My Yahoo!に追加
Googleに追加
goo RSSリーダーに追加

| | コメント (0)

PERFORM命令(セクション実行)

COBOL
       WORKING-STORAGE SECTION.
       01 I PIC 9 VALUE 0.
       01 R PIC X(29).
       PROCEDURE DIVISION.
           PERFORM A.
           PERFORM B 3 TIMES.
           PERFORM C.
           DISPLAY R.
           STOP RUN.
       A SECTION.
           DISPLAY 'セクションAを実行しました。'.
       B SECTION.
           ADD 1 TO I.
           DISPLAY I ':セクションBを実行しました。'.
       C SECTION.
           MOVE 'セクションCの結果' TO R.

Perform

VB.NET
Aは単純にプロシジャを実行するだけです。
Bは引数をプロシジャに渡して実行します。
Cは結果を親プロシジャに返します。Console.WriteLineの引数の中に入れて一行で記述し楽をしています。
Module Module1
    Sub Main()
        A()
        B(3)
        Console.WriteLine(C())
    End Sub
    Private Sub A()
        Console.WriteLine("プロシジャAを実行しました。")
    End Sub
    Private Sub B(ByVal i As Integer)
        For j As Integer = 1 To i
            Console.WriteLine(j & ":プロシジャBを実行しました。")
        Next
    End Sub
    Private Function C() As String
        Return Format(Now, "yyyy/MM/dd HH:mm:ss dddd")
    End Function
End Module

Procedure_vb

お役に立てましたか?
IT、プログラミングのランキングサイトはこちらです。

にほんブログ村 IT技術ブログへ 人気blogランキングへ FC2 Blog Rankingへ


最新記事の自動受信登録はこちらです。

はてなRSSに追加

livedoor Readerに追加
My Yahoo!に追加
Googleに追加
goo RSSリーダーに追加

| | コメント (0)

日付時刻の計算

COBOL

COBOL組み込み関数を参照して下さい。

VB.NET
2006/12/31 から現在までの日数、時分秒mm秒を計算して画面に表示します。

Module Module1
    Private DATE1 As Date = "2006/12/31"
    Private DATE2 As Date = Now
    Private decDAY As Decimal
    Private TIME1 As DateTime = "2006/12/31 23:00:00"
    Private TIME2 As DateTime = Now
    Private TIME3 As DateTime
    Private objTIME1 As TimeSpan
    Private objTIME2 As TimeSpan
    Sub Main()
        Dim strDATE1 As String = Format(DATE1, "yyyy/MM/dd HH:mm:ss")
        Dim strDATE2 As String = Format(DATE2, "yyyy/MM/dd HH:mm:ss")
        '日付の減算
        Console.WriteLine("2つの日付から日数、時間を算出")
        decDAY =
DateDiff(DateInterval.Day, DATE1, DATE2)
        Console.WriteLine(strDATE2 & " - " & strDATE1 & " 日:" & decDAY)
        '日付、時分秒mm秒の減算
        objTIME1 = TIME2.Subtract(TIME1)
        '減算結果の表示
        Console.WriteLine(strDATE2 & " - " & strDATE1 & " 日:" & objTIME1.TotalDays)
        Console.WriteLine(strDATE2 & " - " & strDATE1 & " 時:" & objTIME1.TotalHours)
        Console.WriteLine(strDATE2 & " - " & strDATE1 & " 分:" & objTIME1.TotalMinutes)
        Console.WriteLine(strDATE2 & " - " & strDATE1 & " 秒:" & objTIME1.TotalSeconds)
        Console.WriteLine(strDATE2 & " - " & strDATE1 & " mm秒:" & objTIME1.TotalMilliseconds)

        Console.WriteLine("日付+日数の算出")
        Console.WriteLine(Now & " + " & 365 & " = " & Now.
AddDays(365))
        Console.WriteLine(Now & " - " & 365 & " = " & Now.
AddDays(-365))
    End Sub
End Module

2つの日付から日数、時間を算出
2007/04/30 00:28:07 - 2006/12/31 00:00:00 日:120
2007/04/30 00:28:07 - 2006/12/31 00:00:00 日:119.061196740778
2007/04/30 00:28:07 - 2006/12/31 00:00:00 時:2857.46872177867
2007/04/30 00:28:07 - 2006/12/31 00:00:00 分:171448.12330672
2007/04/30 00:28:07 - 2006/12/31 00:00:00 秒:10286887.3984032
2007/04/30 00:28:07 - 2006/12/31 00:00:00 mm秒:10286887398.4032
日付+日数の算出
2007/04/30 0:28:07 + 365 = 2008/04/29 0:28:07
2007/04/30 0:28:07 - 365 = 2006/04/30 0:28:07

お役に立てましたか?
IT、プログラミングのランキングサイトはこちらです。

にほんブログ村 IT技術ブログへ 人気blogランキングへ FC2 Blog Rankingへ


最新記事の自動受信登録はこちらです。

はてなRSSに追加

livedoor Readerに追加
My Yahoo!に追加
Googleに追加
goo RSSリーダーに追加

| | コメント (0)

EVALUATE命令

マシンから曜日を取得して画面に表示します。
COBOL
       WORKING-STORAGE SECTION.
       01 W       PIC 9.
       PROCEDURE DIVISION.
           ACCEPT W FROM DAY-OF-WEEK.
           EVALUATE TRUE
               WHEN W = 1
                   DISPLAY '月曜日' UPON CONSOLE
               WHEN W = 2
                   DISPLAY '火曜日' UPON CONSOLE
               WHEN W = 3
                   DISPLAY '水曜日' UPON CONSOLE
               WHEN W = 4
                   DISPLAY '木曜日' UPON CONSOLE
               WHEN W = 5
                   DISPLAY '金曜日' UPON CONSOLE
               WHEN W = 6
                   DISPLAY '土曜日' UPON CONSOLE
               WHEN OTHER
      *            7は日曜日です。
                   DISPLAY '日曜日' UPON CONSOLE
           END-EVALUATE.
           STOP RUN.

曜日を編集するには「:」を使って1行で書こう。

Evaluate_2

VB.NET
Module Module1
    Dim W As DayOfWeek
    Sub Main()
        Select Case W
            Case 0
                Console.WriteLine("日曜日")
            Case 1
                Console.WriteLine("月曜日")
            Case 2
                Console.WriteLine("火曜日")
            Case 3
                Console.WriteLine("水曜日")
            Case 4
                Console.WriteLine("木曜日")
            Case 5
                Console.WriteLine("金曜日")
            Case 6
                Console.WriteLine("土曜日")
        End Select
    End Sub
End Module

Select_case_vb

お役に立てましたか?
IT、プログラミングのランキングサイトはこちらです。

にほんブログ村 IT技術ブログへ 人気blogランキングへ FC2 Blog Rankingへ


最新記事の自動受信登録はこちらです。

はてなRSSに追加

livedoor Readerに追加
My Yahoo!に追加
Googleに追加
goo RSSリーダーに追加

| | コメント (0)

COMPUTE命令

COBOL
COMPUTE A = B + C
COMPUTE A = B - C
COMPUTE A = B * C
COMPUTE A = B / C
COMPUTE A = B ** 16
COMPUTE A = B ** 0.5

VB.NET
A = B + C
A = B - C
A = B * C
A = B / C
A = B ^ 16
A = B ^ 0.5  又は A = Math.Sqrt(B))

お役に立てましたか?
IT、プログラミングのランキングサイトはこちらです。

にほんブログ村 IT技術ブログへ 人気blogランキングへ FC2 Blog Rankingへ


最新記事の自動受信登録はこちらです。

はてなRSSに追加

livedoor Readerに追加
My Yahoo!に追加
Googleに追加
goo RSSリーダーに追加

| | コメント (0)

STRING命令(文字列の結合)

COBOL
01 HH PIC X(3) VALUE '24'.
01 MM PIC X(3) VALUE '59'.
01 A  PIC X(7).

STRING HH ': ' MM DELIMITED BY SIZE INTO A
結果:A='24 :59' 入力文字列の末尾空白はそのまま
STRING HH ':' MM DELIMITED BY SPACE INTO A
結果:A='24:59  ' 入力文字列の末尾空白を削除
注)文字列データの末尾には空白が充填されます。

VB.NET
Dim HH As String = "24"
Dim MM As String = "59"
Dim A  As String

A = HH & ":" & MM
結果:A="24:59"

注)文字列データは可変長です。
末尾空白の削除
Dim A As String = "24 "
Dim B As String

B = Rtrim(A)
または
B = A.Rtrim
両方ともBには"24"が入ります。

お役に立てましたか?
IT、プログラミングのランキングサイトはこちらです。

にほんブログ村 IT技術ブログへ 人気blogランキングへ FC2 Blog Rankingへ


最新記事の自動受信登録はこちらです。

はてなRSSに追加

livedoor Readerに追加
My Yahoo!に追加
Googleに追加
goo RSSリーダーに追加

| | コメント (0)

INITIALIZE命令

COBOL
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01 A.
          02 A1 PIC X(10) .
          02 A2 PIC S9(12).
       PROCEDURE DIVISION.
           INITIALIZE A.
           STOP RUN.

VB.NET
Module Module1
    Public Structure A
        Public A1 As String
        Public A2 As Decimal
        Public Sub Clear()
            A1 = Space(10)
            A2 = 0
        End Sub
    End Structure

    Sub Main()
        Dim A0 As A
        A0.Clear()
    End Sub
End Module

お役に立てましたか?
IT、プログラミングのランキングサイトはこちらです。

にほんブログ村 IT技術ブログへ 人気blogランキングへ FC2 Blog Rankingへ


最新記事の自動受信登録はこちらです。

はてなRSSに追加

livedoor Readerに追加
My Yahoo!に追加
Googleに追加
goo RSSリーダーに追加

| | コメント (0)

環境変数の取得

COBOL(Micro Fous COBOL特有)
       WORKING-STORAGE SECTION.
       01 OS-NAME PIC X(40).
       PROCEDURE DIVISION.
           DISPLAY "OS"     UPON ENVIRONMENT-NAME.
           ACCEPT OS-NAME FROM ENVIRONMENT-VALUE.
           DISPLAY OS-NAME UPON CONSOLE.
           STOP RUN.

VB.NET
Module Module1
    Sub Main()
        '環境変数名OSを取得
        Dim A As String = Environ("OS")
        Console.WriteLine(A)
    End Sub
End Module

お役に立てましたか?
IT、プログラミングのランキングサイトはこちらです。

にほんブログ村 IT技術ブログへ 人気blogランキングへ FC2 Blog Rankingへ


最新記事の自動受信登録はこちらです。

はてなRSSに追加

livedoor Readerに追加
My Yahoo!に追加
Googleに追加
goo RSSリーダーに追加

| | コメント (0)

ON SIZE ERROR

COBOL
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01 A PIC 9(5)V9.
       01 B PIC 9(5)V9 VALUE 100.
       PROCEDURE DIVISION.
           COMPUTE A = B / 0
               ON SIZE ERROR
                   MOVE 0 TO A
           .
           DISPLAY A UPON CONSOLE.
           STOP RUN.

VB.NET
Module Module1
    Sub Main()
        Dim A As Decimal
        Dim B As Decimal = 100
        Try
            A = B / 0
        Catch ex As Exception
            A = 0
        End Try
        Console.WriteLine(A)
    End Sub
End Module

| | コメント (0)

UNSTRING命令(文字列の分割)

COBOL
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01 A PIC X(20) VALUE 'ABC DEF 12 zy'.
       01 B PIC X(3) OCCURS 5.
       01 I PIC 9(2).
       PROCEDURE DIVISION.
           UNSTRING A DELIMITED BY SPACE INTO
                    B(1)
                    B(2)
                    B(3)
                    B(4)
           .
           PERFORM VARYING I FROM 1 BY 1 UNTIL I > 4
               DISPLAY B(I) UPON CONSOLE
           END-PERFORM.
           STOP RUN.

VB.NET
Module Module1
    Dim A As String = "ABC DEF 12 zy"
    Dim B() As String
    Sub Main()
        B = Split(A, " ")
        For Each C As String In B
            Console.WriteLine(C)
        Next
    End Sub
End Module

結果表示

ABC
DEF
12
zy

お役に立てましたか?
IT、プログラミングのランキングサイトはこちらです。

にほんブログ村 IT技術ブログへ 人気blogランキングへ FC2 Blog Rankingへ


最新記事の自動受信登録はこちらです。

はてなRSSに追加

livedoor Readerに追加
My Yahoo!に追加
Googleに追加
goo RSSリーダーに追加

| | コメント (0)

数値判定 NUMERIC

COBOL
IF A NUMERIC THEN
 数値
ELSE
 非数値
END-IF

VB.NET
IF IsNumeric(A) THEN
 数値
ELSE
 非数値
END IF

Module Module1
    Dim A1 As String = "1234567890"
    Dim A2 As String = "1234567.890"
    Dim A3 As String = "-1234567890"
    Dim A4 As String = ".1234567890-"
    Dim B1 As String = "1234567.890+"
    Dim B2 As String = "一二三四五六七八九十"
    Dim B3 As String = "壱"
    Dim B4 As String = "①"
    Dim B5 As String = "ⅠⅡ"
    Sub Main()
        A(A1)
        A(A2)
        A(A3)
        A(A4)
        A(B1)
        A(B2)
        A(B3)
        A(B4)
        A(B5)
    End Sub
    Private Sub A(ByVal StrA As String)
        If IsNumeric(StrA) Then
            Console.WriteLine(StrA & "は数値です。")
        Else
            Console.WriteLine(StrA & "は非数値です。")
        End If
    End Sub
End Module

Numeric_vb

お役に立てましたか?
IT、プログラミングのランキングサイトはこちらです。

にほんブログ村 IT技術ブログへ 人気blogランキングへ FC2 Blog Rankingへ


最新記事の自動受信登録はこちらです。

はてなRSSに追加

livedoor Readerに追加
My Yahoo!に追加
Googleに追加
goo RSSリーダーに追加

| | コメント (0)

四捨五入

定数7を2で割った値の小数点以下第一位を四捨五入する。3.5→4

COBOL
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01 A PIC 9(2) VALUE 7.
       01 B PIC 9(2).
       PROCEDURE DIVISION.
           COMPUTE B ROUNDED = A / 2.
           DISPLAY B UPON CONSOLE.
           STOP RUN.
#結果 B=4

VB.NET
COBOLと同じROUND命令がありますが四捨五入の機能は有りません。
Format関数で文字編集後Decimalデータに変換しています。
Module Module1
    Sub Main()
        Dim A As Decimal = 7
        Dim B As Decimal
        B = Convert.ToDecimal(Format(A / 2, "#0"))
        Console.WriteLine(B)
    End Sub
End Module

お役に立てましたか?
IT、プログラミングのランキングサイトはこちらです。

にほんブログ村 IT技術ブログへ 人気blogランキングへ FC2 Blog Rankingへ


最新記事の自動受信登録はこちらです。

はてなRSSに追加

livedoor Readerに追加
My Yahoo!に追加
Googleに追加
goo RSSリーダーに追加

| | コメント (0)

Iniファイル(アプリケーション構成ファイル)

COBOL
在りません。必要に応じてコードを自作します。

VB.NET
.NETからIniファイルに代わり『アプリケーション構成フィアル』が推奨されています。これを使えば読み込みコードを書く必要が有りません。

手順
1.『System.Configuration』を参照設定に加えます。
2.新しい項目の追加で『アプリケーション構成フィアル』を追加します。

参照設定の追加

Appconfig_3

ソリューションエクスプローラから参照の設定(R)を選択

Appconfig2

Appconfig_5 

アプリケーション構成フィアルの追加

Appconfig_2

.app.configの内容
1:<?xml version="1.0" encoding="utf-8" ?>
2:<configuration>
3:  <appSettings>
4:    <add key="FoldName"   value="d:\FldName.txt" />
5:  </appSettings>
6:</configuration>

VB.NETのソースコード
Imports System.Configuration.ConfigurationManager
Module Module1
    Sub Main()
        Dim strFOLDER As String = AppSettings("FoldName")
    End Sub
End Module

実行するとstrFOLDERに"d:\FldName.txt"が入ります。

お役に立てましたか?
IT、プログラミングのランキングサイトはこちらです。

にほんブログ村 IT技術ブログへ 人気blogランキングへ FC2 Blog Rankingへ


最新記事の自動受信登録はこちらです。

はてなRSSに追加

livedoor Readerに追加
My Yahoo!に追加
Googleに追加
goo RSSリーダーに追加

| | コメント (0)

SEARCH命令

プログラム中にデータを組み込み表引き(テーブルサーチ)を実行します。

COBOL
        DATA DIVISION.
        WORKING-STORAGE SECTION.
        01 DATA1.
         02  PIC X(5) VALUE '01 冬'.
         02  PIC X(5) VALUE '02 冬'.
         02  PIC X(5) VALUE '03 春'.
         02  PIC X(5) VALUE '04 春'.
         02  PIC X(5) VALUE '05 春'.
         02  PIC X(5) VALUE '06 夏'.
         02  PIC X(5) VALUE '07 夏'.
         02  PIC X(5) VALUE '08 夏'.
         02  PIC X(5) VALUE '09 秋'.
         02  PIC X(5) VALUE '10 秋'.
         02  PIC X(5) VALUE '11 秋'.
         02  PIC X(5) VALUE '12 冬'.
        01 REDEFINES DATA1 .
         02 A OCCURS 12 INDEXED I.
          03 A1 PIC 99.
          03    PIC X.
          03 A2 PIC XX.
        PROCEDURE DIVISION.
           SET I TO 1.
           SEARCH A
               WHEN A1(I) = '09'
                   DISPLAY A2(I) UPON CONSOLE
           END-SEARCH.
           STOP RUN.

VB.NET
Hashtableにデータを組み込み表引きを実行します。

Module Module1
    Public A As New Hashtable
    Public Sub InitializeA()
        A.Add(1, "冬")
        A.Add(2, "冬")
        A.Add(3, "春")
        A.Add(4, "春")
        A.Add(5, "春")
        A.Add(6, "夏")
        A.Add(7, "夏")
        A.Add(8, "夏")
        A.Add(9, "秋")
        A.Add(10, "秋")
        A.Add(11, "秋")
        A.Add(12, "冬")
    End Sub
    Sub Main()
        InitializeA()
        Console.WriteLine(A(9))
    End Sub
End Module

お役に立てましたか?
IT、プログラミングのランキングサイトはこちらです。

にほんブログ村 IT技術ブログへ 人気blogランキングへ FC2 Blog Rankingへ


最新記事の自動受信登録はこちらです。

はてなRSSに追加

livedoor Readerに追加
My Yahoo!に追加
Googleに追加
goo RSSリーダーに追加

| | コメント (0)

コマンドライン引数の取得

COBOL
データ名Aに引数が入ります。
   
   DATA DIVISION.
        WORKING-STORAGE SECTION.
        01 A PIC X(80).
        PROCEDURE DIVISION.
           ACCEPT A FROM COMMAND-LINE.
           DISPLAY A UPON CONSOLE.
           STOP RUN.

実行例
プログラムC:\MyProg.exeを実行
C:\>MyProg.exe Arg↓
C:\>Arg

VB.NET
取得した引数は空白文字を区切りにして配列に充填されます。配列(0)には実行プログラム名が入ります。
Module Module1
    Sub Main()
        'コマンドラインを配列で取得する
        Dim aryA() As String = System.Environment.GetCommandLineArgs()
        For Each strA As String In aryA
            Console.WriteLine(strA)
        Next
    End Sub
End Module
実行例
プログラムC:\MyProg.exeを実行
C:\>MyProg.exe Arg
C:\>C:\MyProg.exe↓
C:\>MyProg.exe Arg

お役に立てましたか?
IT、プログラミングのランキングサイトはこちらです。

にほんブログ村 IT技術ブログへ 人気blogランキングへ FC2 Blog Rankingへ


最新記事の自動受信登録はこちらです。

はてなRSSに追加

livedoor Readerに追加
My Yahoo!に追加
Googleに追加
goo RSSリーダーに追加

| | コメント (0)

2007年4月10日 (火)

ネットワークドライブ上の.NETプログラム実行

 VB.NETで作成したexe,dllはネットワークドライブに置くとそのままでは実行が出来ません。実行するPC上に.Net Frame Work 2.0をインストールし、更にMicrosoft .NET Framework 2.0 Configrationをインストールしてイントラ上のセキュリティレベルを緩くしなければなりません。

 既定値ではイントラ(LAN)上の.Net Frame Work 2.0の実行プログラム(exe)はセキュリティ制限があり実行できません。実行できるのは自身のPC上のプログラムのみです。

イントラ上のプログラムを実行する方法。
.NETのプログラムを実行するPC上で以下の二つのプログラムをインストールしセキュリティを設定する。
1.ランタイムのインストール
.NET Framework Version 2.0 再頒布可能パッケージ のインストール
ダウンロード元
http://www.microsoft.com/downloads/details.aspx?familyid=0856EACB-4362-4B0D-8EDD-AAB15C5E04F5&displaylang=ja

dotnetfx.exe (22.4 MB)←実行

2.ツールのインストール
Microsoft .NET Framework 2.0 SDKのインストール
ダウンロード元
http://www.microsoft.com/downloads/details.aspx?familyid=FE6F2099-B7B4-4F47-A244-C96D69C35DEC&displaylang=ja

setup.exe (482.6 MB) ←実行しToolのみをインストール

Netcconfigration20

 管理ツールにMicrosoft .NET Framework 2.0 Configrationが追加されている。これを起動して[ランタイムセキュリティポリシー]を右クリックし [セキュリティの変更]を選択 [このコンピュータへの変更を行う] [次へ] 

[信頼済みサイト][信頼されないサイト]は既定値それ以外は全て[セキュリティレベルの変更]を完全な信頼にする。Net_apl_on_intra_1

3.インターネットエクスプローラのセキュリティ強化の構成

コントロールパネル-プログラムの追加と削除でInternet Explorerセキュリティ強化の構成のチェックを外す。

Ie

以上でイントラネット上のクライアントからこの実行プログラムが起動できます。

お役に立てましたか?
IT、プログラミングのランキングサイトはこちらです。

にほんブログ村 IT技術ブログへ 人気blogランキングへ FC2 Blog Rankingへ

最新記事の自動受信登録はこちらです。

はてなRSSに追加

livedoor Readerに追加
My Yahoo!に追加
Googleに追加
goo RSSリーダーに追加

| | コメント (0)

2007年4月 7日 (土)

Microsoft Visual Studio 2005のインストール

 Visual Basic 2005 Express Edition 日本語版をマイクロソフトからダウンロードしてインストールしましょう。もちろん使用料は無料です。

インストール後、カスタマイズが必要かも知れません。
http://go2vb.cocolog-nifty.com/blog/2007/04/microsoft_visua_75c8.html

 データベースの処理をするなら以下の二つのアプリケーションがおススメです。こちらも使用料は無料です。
SQL Server 2005 Express Edition
Microsoft SQL Server Management Studio Express

制限が幾つか有りますがテストするには十分な機能を持っています。

Visual Basic 2005 Express Edition
ネットワーク上のデータベースにアクセスできません。実行プログラムとVisual Basic 2005 Express Editionは同一マシン上に導入する必要が有ります。

SQL Server 2005 Express Edition
1CPUのみ対応、最大メインメモリ1G、最大データベース容量4Gなどの制限が有ります。

お役に立てましたか?
IT、プログラミングのランキングサイトはこちらです。

にほんブログ村 IT技術ブログへ 人気blogランキングへ FC2 Blog Rankingへ


最新記事の自動受信登録はこちらです。

はてなRSSに追加

livedoor Readerに追加
My Yahoo!に追加
Googleに追加
goo RSSリーダーに追加

| | コメント (0)

Microsoft Visual Studio 2005 のカスタマイズ

Microsoft Visual Studio 2005 はインストール直後の設定ではデバッグや編集が使い辛い点があります。
以下のコマンドボタンをツールバーに追加すると格段に使いやすくなります。 Vs2005toolbar_3

.................

..................

1.デバッグ(ステップ実行ボタンを追加する)
デバッグモード中に
[表示]-[ツールバー]-[ユーザ設定]-[コマンドタブ]-[コマンド配置の変更]-[ツールバー]-
[デバッグ]-[追加ボタン]-[デバッグ]-[ステップイン]-[アイコンを選択]-[OK]

2.画面表示(『戻る』と『次に進む』ボタンを追加する)
ソース編集中に
[表示]-[ツールバー]-[ユーザ設定]-[コマンドタブ]-[コマンド配置の変更]-[ツールバー]-
[標準]-[追加ボタン]-[表示]-[戻る]-[[次に進む(F)]アイコンを選択]-OK

『戻る』と『次に進む』ボタンはよく似たアイコンがありますので注意が必要です。 Photo_5Photo_6

お役に立てましたか?
IT、プログラミングのランキングサイトはこちらです。

にほんブログ村 IT技術ブログへ 人気blogランキングへ FC2 Blog Rankingへ


最新記事の自動受信登録はこちらです。

はてなRSSに追加

livedoor Readerに追加
My Yahoo!に追加
Googleに追加
goo RSSリーダーに追加

| | コメント (0)

文字列データの切り出し(抜き出し)

文字列の指定範囲の文字列を抽出し判定や編集に使います。
COBOLでこの方法を使うとDATA DIVISIONの文字定義を細切れにする手間が減ります。
VB.NETではEXCELなどと同様のMid関数が使用できます。
同様の機能にSubstringが有りますが開始文字位置が0になります。
例)
 設定した文字列から25番目の文字を判定し
 指定した3つの文字を結合して
 画面に表示しています。

COBOL
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01 A PIC X(26) VALUE 'ABCDEFGHIJKLMNOPORSTUVWXYZ'.
       01 B PIC X(3).
       PROCEDURE DIVISION.
           IF A(25:1) = 'Y' THEN
               STRING A(25:1) A(5:1) A(19:1) DELIMITED BY SIZE INTO B
               DISPLAY B UPON CONSOLE
               MOVE A(4:3) TO B
               DISPLAY B UPON CONSOLE
           END-IF
           .
           STOP RUN.

VB.NET(Mid関数)
Module Module1
    Dim A As String = "ABCDEFGHIJKLMNOPORSTUVWXYZ"
    Dim B As String
    Sub Main()
        If Mid(A, 25, 1) = "Y" Then
            B = Mid(A, 25, 1) & Mid(A, 5, 1) & Mid(A, 19, 1)
            Console.WriteLine(B)
            Console.WriteLine(Mid(A, 4, 3))
        End If
    End Sub
End Module

VB.NET(Substringメソッド)

Module Module1
    Sub Main()
        Dim A As String = "ABCDEFGHIJKLMNOPORSTUVWXYZ"
        Dim B As String
        If A.Substring(24, 1) = "Y" Then
            B = A.Substring(24, 1) & A.Substring(4, 1) & A.Substring(18, 1)
            Console.WriteLine(B)
            Console.WriteLine(A.Substring(3, 3))
        End If
    End Sub
End Module

お役に立てましたか?
IT、プログラミングのランキングサイトはこちらです。

にほんブログ村 IT技術ブログへ 人気blogランキングへ FC2 Blog Rankingへ


最新記事の自動受信登録はこちらです。

はてなRSSに追加

livedoor Readerに追加
My Yahoo!に追加
Googleに追加
goo RSSリーダーに追加

| | コメント (0) | トラックバック (0)

2007年3月11日 (日)

COBOLとVB.NET基本機能

COBOL VB.NETの類似機能
ソース  
COPY Module 
* Rem '
プログラム構造  
DATA DIVISION  
PROCEDURE DIVISION  
   
データ定義  
文字  String
ゾーン数値    Decimal
パックドデシマル    Decimal
浮動小数点 Single,Double 
集団項目 構造体など 
OCCURS ArryList
REDEFINES  
   
数値・文字列の処理  
ADD    +=
SUBTRACT    -=
MULTIPLY    *=
DIVIDE    /=
COMPUTE    A = (B + 1) * C
INITIALIZE  
MOVE    =
INSPECT    String.Replace(),String.IndexOf()
EXAMINE  
STRING    &,+
UNSTRING    Split
SEARCH Hashtable
NUMERIC    Numiric
ROUND Format(A,"###.#")
:(文字列切出し)    Mid(A,n1,n2)
日付時刻の編集 Now.Tostring("yyyy/MM/dd HH:mm:ss")
   
制御文  
IF … THEN … END-IF    If … Then … End If
EVALUATE    Select Case
PERFORM    プロシジャ名(引数)
PERFORM UNTIL    Do Until ….Loop,For ... Next
STOP RUN End
GO TO    Goto
CALL DLL参照設定
   
画面  
DISPLAY Console.Writeline
ACCEPT Console.ReadLine
   
ファイル操作  
ファイル定義 構造体など 
SEQUENTIAL FILE Text File
OPEN,CLOSE Dim sf As New System.IO.Stream... 
READ .ReadLine(...) 
WRITE .WriteLine(...) 
   

ISAM File

該当無し(SQLで置き換え) 
OPEN,CLOSE  
READ SELECT 
WRITE INSERT 
REWRITE UPDATE 
DELETE DELETE 
START  
   
印刷  
   
その他  
エラー処理  
  On Error Goto
ON SIZE ERROR Try … Catch … Try end
App.config  
コマンドライン引数  
環境変数  
文字列パターンマッチング  
乱数発生  
外部プログラム(exe)の実行  Shell
パス文字分解    System.Io.Path

お役に立てましたか?
IT、プログラミングのランキングサイトはこちらです。

にほんブログ村 IT技術ブログへ 人気blogランキングへ FC2 Blog Rankingへ


最新記事の自動受信登録はこちらです。

はてなRSSに追加

livedoor Readerに追加
My Yahoo!に追加
Googleに追加
goo RSSリーダーに追加

| | コメント (7) | トラックバック (0)

2007年3月11日 (日)

MOVE命令

COBOL
MOVE A TO B.
MOVE A(3:2) TO B.
MOVE 'abcd1234' TO B.

VB.NET
B = A
B = Mid(A,3,2)
B = 'abcd1234'

お役に立てましたか?
IT、プログラミングのランキングサイトはこちらです。

にほんブログ村 IT技術ブログへ 人気blogランキングへ FC2 Blog Rankingへ


最新記事の自動受信登録はこちらです。

はてなRSSに追加

livedoor Readerに追加
My Yahoo!に追加
Googleに追加
goo RSSリーダーに追加

| | コメント (0)