2022年1月30日日曜日

C# テキストファイルからリスト作成をLINQで

 テキストボックスの改行入りデータをLINQでLIST作成できないか考えてみた。

こんなふうにしたら、うまくいった。LINQだと一行でまとめられるので、コードがすっきりしていい。

    string txate = textBoxAtagExclude.Text;

            atagExcludeL = new List<string>();

            atagExcludeL = ((IEnumerable<string>)txate.Split(new[] { "\r\n", "\n", "\r" }, StringSplitOptions.None)).Select(st => st.Trim()).Where(st => !String.IsNullOrEmpty(st)).ToList<string>();


C# 抽象クラスの活用

 ファイルの読み込みに抽象クラスを活用してみた。ジェネリック(T)使えば、クラスが違うごとに、毎回似たようなコーディングを書かなくてよくなり、効率的かも。listToListTの実装だけ、クラスごとに実装することになります。

 public abstract class Afilerw<T> : Ifilerw<T>
    {
        public List<T> load(string path)
        {
            List<T> lst = new List<T>();
            StreamReader sr = new StreamReader(@path, System.Text.Encoding.GetEncoding("shift_jis"));
            {
                while (!sr.EndOfStream)
                {
                    string line = sr.ReadLine();
                    string[] values = line.Split(',');
                    List<string> lists = new List<string>();
                    lists.AddRange(values);        
                    T sh = listToListT(lists);
                    lst.Add(sh);
                }
            }
            sr.Close();  
            return lst;
        }

        protected abstract T  listToListT(List<string> lstt);

c#で正規表現

 リンク抽出のための正規表現を考えてみた。あらためて、正規表現の使い方を確認。

こちらのサイトが詳しかったです。これを参考にリンクのURLとその他の属性取得を考えてみました。いろいろ試行錯誤が必要でした。最短マッチについても、今回初めて知りました。

      public ISet<string> GetNewLinks2(string content)
        {           
          var regexAtag2 = @"<a\s+[^>]*href\s*=\s*[""'](?<href>[^""']*?)(?<rel>[""'].*?</a>)";
           ISet<string> newLinks = new HashSet<string>();
          var r = new Regex(regexAtag2, RegexOptions.IgnoreCase);
          var collection = r.Matches(content);
          string matchrel;
          foreach (Match m in collection)
          {
              string matchx = m.Groups["href"].Value.Trim();
               matchrel = m.Groups["rel"].Value;
                //filter//////////////属性に指定文字あるとパスするフィルタ
              if (atagExcludeL.Select(stt => matchrel.Contains(stt)).Any(bl => bl == true))
              {
                  continue;
              }
              if (!newLinks.Contains(matchx))
              {            
         newLinks.Add(matchx);
              }
          }
            return newLinks;
        }

リンクチェックには以下のサイトが参考になりました。

https://dobon.net/vb/dotnet/internet/httpstatuscode.html

2022年1月22日土曜日

async/await

 c#の非同期処理について 基本を知るため、サイトをいろいろみてみた。

https://zenn.dev/vatscy/articles/ba2263bdfadfeb805379

こちらのサイトが、すっきりまとまっていてわかりやすかったです。

必ずしもメソッドの実行時にawaitを使う必要はなく、待機のタイミングを遅らせることもできるとのこと。

2022年1月12日水曜日

kiwiSDRについて

 http://rx.linkfanel.net/

SDRのHF受信をWebで利用させてもらえるサイトがあって、驚いた。自分のように、コンディションの確認をしてから、アンテナ設置をしている弱小局にとっては、ありがたい。国内でも、自分の電波がどのように届いているかなど、これを利用させていただければ、確認できそう。

2022年1月10日月曜日

和文モールス受信練習

 Javascriptで参考になるサイトがあったので、参考にさせていただき

それをもとに、受信練習ソフトをつくってみた。

https://rasp.cld9.work/py/MLearn.html

文字数が多くなると、フリーズしてしまうようだったので、適当なところに以下の処理を入れたところ、連続して再生できるようになった。

openc=()=>{ audioContext.close(); audioContext = new window.AudioContext();}

2022年1月9日日曜日

hfの伝播状況を調べられるサイト

 https://hfstart.nict.go.jp/jp/index.html

2点間の緯度、経度、周波数、打ち上げ角などを設定すると、その間の電離層反射の状況を教えてくれるようだ。HFの運用に役立ちそう。

2022年1月8日土曜日

7MHzSSB移動運用

 近くの公園で、釣り竿アンテナ8m+AH705、ICー705 5WSSBで運用してみた。ノイズが少なく、受信は自宅よりいい感じだ。が、2エリアの方と、ぎりぎりショートでQSO、かなりきつかった。試しに、地上高5m程度の逆Vのダイポールを試してみたが、相手に届かず。送信出力を上げるか、アンテナをもう少し工夫するか、対策が必要なようだ。

2022年1月3日月曜日

釣り竿アンテナの解析

 MMANAで、アンテナの張り方(金属外壁をラジアルとして使う場合)を変えて、シミュレーションしてみた。(シミュレーションの設定がこれでいいのかどうか、あまり自信はないけれど)

どうやら、金属外壁に平行な(地面に垂直)は、利得が下がるらしい。どおりで、こういった形は、あまり目にすることがないと思っていたが。ちなみに、釣り竿を横に(金属外壁に垂直に)すれば、多少改善するようだ。ということで、現状のアンテナは、FT8ぐらいならなんとかなっても、SSB等での運用は厳しい。スペースの制限を勘案しながら、もう少し工夫が必要なようだ。

追記:シミュレーション段階だが、給電部を外壁の上端ちかくまであげた計算でも、利得は改善されるようだった。実際にやってみて、どうか確認が必要かもしれないが。MMANAを使ってみると、ほんのちょっとしたワイヤーの移動だけでも、利得がだいぶ違ったりすることがわかる。