上記のサイトを参考にさせいていただきました。
C#のGUIで、いろいろ試してみました。
F#側は
namespace Library1
open System
open System.Collections.Generic
open System.IO
open Microsoft.FSharp.Control.CommonExtensions
open System.Diagnostics
open System.Text.RegularExpressions
module FSLib =
let path = @"\\192.168.1.1\HomeICT\test"
let readFile filePath =
// open and read file
let fileStream = File.OpenText(filePath)
let text = fileStream.ReadToEnd()
// find all the "words" using a regex
let word = new Regex("\w+")
let matches = word.Matches(text)
let words = seq{ for m in matches -> m.Value }
// count unique words using a set
let uniqueWords = Set.ofSeq words
// print the results
let name = Path.GetFileNameWithoutExtension(filePath)
sprintf "%s - Words: %d Unique words: %d " name matches.Count uniqueWords.Count
let xt2 =
let filePaths = Directory.GetFiles(path)
[for filePath in filePaths -> readFile filePath]
C#側は
using System;
using System.Linq;
using System.Windows.Forms;
using Library1;
using System.Collections.Generic;
using Microsoft.FSharp.Collections;
途中省略
private void button2_Click(object sender, EventArgs e)
{
//FSharpList<string> xt2 = FSLib.xt2; 最初、この2行でやってみたけれど
//listBox2.Items.AddRange(xt2.ToArray()); めんどうなので、1行にまとめてみたらOKでした
listBox2.Items.AddRange(FSLib.xt2.ToArray());
}
0 件のコメント:
コメントを投稿