C# Pluginもどき

このサンプルはScriptMakerMS BETA1.4が必要です。ダウンロード

C#のコンパイラcsc.exeとScriptMakerMSのiiil_DOScmdで「FileMakerプラグインもどき」を作る

サンプル「C#FileMakerプラグインもどき」は、

文字コード指定可能 URLエンコード・URLデコード と

Base64エンコード・Base64デコード

FileMakerのフィールドに記述したC#のコードを「フィールド内容のエクスポート」で書き出す。

C#のコンパイラcsc.exeでエクスポートしたファイル「・・・.cs」をコンパイル。

$CMD="C:\...\csc.exe" "/out:...\UrlEncode.exe" "...\UrlEncode.cs"

iiil_DOScmd( $CMD )

FMPの[Eventを送信]でも実行できるがコマンドプロンプトがでるので[iiil_DOScmd]で実行。

コンパイルしたEXEファイルを実行し戻り値を取得

$CMD="D:\!TEMP\UrlEncode.exe" "あいうえお カキクケコ"

iiil_DOScmd( $CMD )

サンプル「C_sharp.fp7」使用方法

1,

CSC_Pathフィールドに「csc.exe」のパスを設定して下さい。

例:

(下記にcsc.exeがあると思います?...。)

C:\WINDOWS\Microsoft.NET\Framework\v3.5\csc.exe

C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\csc.exe

2,

「D:\!TEMP\」フォルダを作成するか

EXE_Pathフィールド と CS_Pathフィールド に任意のフォルダパスを設定して下さい。

UrlEncodeの場合

[compile]ボタン(コンパイル)

「D:\!TEMP\」フォルダに「UrlEncode.cs」がエクスポートされ「UrlEncode.exe」が作成されます。

[Exe Test]ボタン(exeテスト)

[compile & Exe Test]ボタン

C#コードをコンパイルして実行することによりスクリプト言語のように使用できる!?

C#でコンソールアプリを作って「iiil_DOScmd」で実行して値を取得しているだけなので

コンソールアプリ作るのはVisualStudioでやったほうがカンタン?

コード例:

引数は args[0].ToString(); で設定。

引数2つ目は、args[1].ToString();

戻り値は

Console.WriteLine(result); の値が戻ってきます。

$CMD="D:\!TEMP\UrlEncode.exe" "あいうえお カキクケコ"

iiil_DOScmd( $CMD )

%a4%a2%a4%a4%a4%a6%a4%a8%a4%aa%a1%a1%a5%ab%a5%ad%a5%af%a5%b1%a5%b3

string encStr = "EUC-JP";を書き換えて他の文字コードでもエンコード出来ます。

using System;

using System.Collections.Generic;

using System.Text;

using System.Web;

class Program

    {

        static void Main(string[] args)

        {

            string encStr = "EUC-JP";

            Encoding enc = Encoding.GetEncoding(encStr);

            string str=args[0].ToString();

            string result = HttpUtility.UrlEncode(str,enc);

            //string result = HttpUtility.UrlDecode(str, enc);

            Console.WriteLine(result);

        }

    }