C#

C# LiteDB でデータベースを作成してレコードをインサートするコード

https://usefuledge.com/how-to-use-portable-nosql-csharp.html
    public static void createLiteDB()
    {
        using (LiteDatabase litedb = new LiteDatabase(@"C:\jwork\@Programming\CoreConsole\DataBase\lite.db"))
        {
            var col = litedb.GetCollection<customer>("customers");

            customer cus = new customer
            {
                name = "John Doe123",
                phones = new string[] { "000-0000", "111-1111" },
                isActive = true,
                additional = "additional data"
            };

            col.Insert(cus);
        }
    }
HTML

iPhone Safari でinputタグフォーカス時にズームさせない

https://usefuledge.com/safarinotzoomin.html

<meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0">
SQL

Oracle PLSQLをWindowsバッチファイルから実行するソースコード

https://usefuledge.com/oraclesql-execplsqlbatch.html
SET SERVEROUTPUT ON

variable RETCODE number;
variable PSTR_PARAM           varchar2(300);

execute  :PSTR_PARAM  :=  'Param1';
execute  :RETCODE  :=  PlsqlBody.PlsqlFunction(:PSTR_PARAM);

COMMIT;

exit :num
Other

カラーパレットを表示して、選択した色でセルを塗りつぶすVBAコード

https://usefuledge.com/excelvba-show-color-dialog.html
Application.Dialogs(xlDialogEditColor).Show (1)
intresult = ActiveWorkbook.Colors(1)

With Selection.Interior
    .Pattern = xlSolid
    .PatternColorIndex = xlAutomatic
    .Color = intresult
    .TintAndShade = 0
    .PatternTintAndShade = 0
End With
Other

https://usefuledge.com/how-to-install-and-use-autogpt.html
> scoop install unzip
C#

.net6 で dotnet new console したときにProgram.csの中身を元に戻したいときのコード

https://docs.microsoft.com/ja-jp/dotnet/core/tutorials/top-level-templates
using System;

namespace MyApp // Note: actual namespace depends on the project name.
{
    internal class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");
        }
    }
}
C#

AWS S3にファイルをアップロードするc#コード

https://usefuledge.com/csharp-easy-to-upload-file-to-amazon-s3.html
using Amazon.S3;
using Amazon.S3.Model;
using Amazon.S3.Transfer;
using System;

namespace autocbk
{
    class FAmazonS3
    {
        private static readonly Amazon.RegionEndpoint bucketRegionEndPoint = Amazon.RegionEndpoint.APNortheast1;
        private static IAmazonS3 s3Client;

        public static int UploadFile(string bucketName, string filePath)
        {
            try
            {
                s3Client = new AmazonS3Client(bucketRegionEndPoint);

                TransferUtility fileTransferUtility = new TransferUtility(s3Client);
                fileTransferUtility.Upload(filePath, bucketName);

                return 0;
            }
            catch(Exception e)
            {
                return 9;
            }
        }

    }
}
Other

Windowsフォルダアクセス権情報を取得して「IdentityReference」のみ抽出するPowerShellコード

https://qiita.com/pakchi20/items/13dbc0608ce004b60ff2
PS E:\> (Get-Acl E:\test).Access | select IdentityReference
C#

c# AngleSharpでAタグのhref属性の値を取得するコード

https://usefuledge.com/anglesharp-get-attribute.html
using System;

using AngleSharp;
using AngleSharp.Html.Parser;
using System.Net;
using System.Threading.Tasks;


static void Main(string[] args)
{
    Console.WriteLine("Hello World!");
    Task t =  WebscrapingSample();
}


static async Task WebscrapingSample()
{

    var urlstring = "https://usefuledge.com";

    WebClient wc = new WebClient();
    try
    {
        string htmldocs = wc.DownloadString(urlstring);
        

        var config = Configuration.Default;
        var context = BrowsingContext.New(config);
        var document = await context.OpenAsync(req => req.Content(htmldocs));

        foreach ( var item in document.QuerySelectorAll("a"))
        {
            Console.WriteLine(item.TextContent.Trim() + " " + item.GetAttribute("href"));
        }


    }
    catch (System.Exception)
    {
        throw;
    }
}
Other

JavaScriptで現在の年月日を取得するコード

https://usefuledge.com/getyyyymmdd_hhmmss_js.html
    function getNowYMD(){
        var dt = new Date();
        var y = dt.getFullYear();
        var m = (00 + (dt.getMonth()+1)).slice(-2);
        var d = (00 + dt.getDate()).slice(-2);
        var result = y + m + d;
        return result;
      }

    var dt = new Date();
C#

C#でクラスをJSONに変換するコード

https://usefuledge.com/csharp-json.html
    static void JsonSer()
    {
        Data data = new Data();

        data.id = 1;
        data.name = "john";
        data.dept = "Purchase";

        string jsonStr = JsonSerializer.Serialize(data);
        Console.WriteLine(jsonStr);

    }
C#

ClosedXMLを使ってxlsxファイル内の文字列を検索するc#コード

https://usefuledge.com/csharp-search-xlsx-closedxml.html

        /// <summary>
        /// 検索結果クラス
        /// </summary>
        public class SearchResult
        {
            /// <summary>
            /// ワークシート名
            /// </summary>
            public string workSheetName {get; set;}

            /// <summary>
            /// 行番号
            /// </summary>
            /// <value></value>
            public int rowNumber{get; set;}

            /// <summary>
            /// 列番号
            /// </summary>
            /// <value></value>
            public int colNumber{get; set;}

            /// <summary>
            /// セル値(文字列型)
            /// </summary>
            /// <value></value>
            public string cellStringValue{get; set;}
        }

        /// <summary>
        /// xlsxファイル内を文字列検索する
        /// </summary>
        /// <param name=searchTerms>検索文字列</param>
        /// <param name=xlsxFileFullPath>検索対象xlsxファイルパス</param>
        /// <returns>検索結果(SearchResultClass)</returns>
        public List<SearchResult> SearchTermsInXlsx(string searchTerms, string xlsxFileFullPath)
        {

            List<SearchResult> listSearchResult = new List<SearchResult>();

            using(var wb = new XLWorkbook(xlsxFileFullPath))
            {

                foreach(var ws in wb.Worksheets){

                    string wsName = ws.Name;

                    //終端行番号取得
                    int lastRowUsedNumber = ws.LastRowUsed().RowNumber();

                    //終端列番号取得
                    int lastColUsedNumber = ws.LastColumnUsed().ColumnNumber();

                    int wRow = 0;
                    int wCol = 0;

                    for(wRow = 1; wRow <= lastRowUsedNumber; wRow++)
                    {
                        for (wCol = 1; wCol <= lastColUsedNumber; wCol++)
                        {
                            // Console.WriteLine(${wRow}:{wCol} in {wsName} {ws.Cell(wRow, wCol).Value.ToString()});

                            SearchResult sr = new SearchResult();
                            sr.workSheetName = wsName;
                            sr.rowNumber = wRow;
                            sr.colNumber = wCol;
                            sr.cellStringValue = ws.Cell(wRow, wCol).Value.ToString();

                            // セル文字列の中に検索文字列が含まれている場合、リストオブジェクトへ追加する
                            if(sr.cellStringValue.Contains(searchTerms)){
                                listSearchResult.Add(sr);                            
                            }

                        }
                    }
                }
            }
            return listSearchResult;
        }
C#

Windowsの共有フォルダアクセス権を取得するc#コード

https://www.ipentec.com/document/csharp-get-directory-access-rights
private void button2_Click(object sender, EventArgs e)
{
  string folderPath = @"C:\Windows";

  System.Diagnostics.Debug.WriteLine("AreAccessRulesCanonical\tAreAccessRulesProtected");
  textBox1.Text += "AreAccessRulesCanonical\tAreAccessRulesProtected" + "\r\n";

  DirectorySecurity security = Directory.GetAccessControl(folderPath);
  textBox1.Text += security.AreAccessRulesCanonical + 
    "\t" + security.AreAccessRulesProtected + "\r\n";

  string ace = "AccessControlType\tAccountName\tFileSystemRights\tIsInherited"
    +"\tInheritanceFlags\tPropagationFlags";
  textBox1.Text += ace + "\r\n";

  AuthorizationRuleCollection rules = security.GetAccessRules(true, true, typeof(NTAccount));
  for (int i = 0; i < rules.Count; i++) {
    FileSystemAccessRule fsar = (FileSystemAccessRule)rules[i];
    ace = fsar.AccessControlType
        + "\t" + (fsar.IdentityReference as NTAccount).Value
        + "\t" + fsar.FileSystemRights.ToString()
        + "\t" + fsar.IsInherited.ToString()
        + "\t" + fsar.InheritanceFlags.ToString()
        + "\t" + fsar.PropagationFlags.ToString();
    textBox1.Text += ace + "\r\n";
  }
}
Other

https://usefuledge.com/pb-00021-ts-xlsx-create.html
npm i xlsx
An error has occurred. This application may no longer respond until reloaded. Reload 🗙