かるく試したが Nugetでインストールして、有効にするのはGlobal.asaxのApplication_Startで GlobalConfiguration.Configure(Sub(config) config.EnableCors()) とかやればいけるっぽい 0663デフォルトの名無しさん2021/07/23(金) 11:04:39.77ID:MYFSNKEn プログラム経験ゼロの初心者の質問ですみません。 勉強も兼ねて個人用の簡単なアプリケーションを作って使ってたのですが、. .NET Framework 4.8で作ったのを試しに丸々.NET 5に移したところ1ループの処理が結構遅くなったんですがこれは仕様なんでしょうか? フォルダパス入力すると中のログファイルから特定の条件満たす行があるファィルがあればパスを列挙して1ループ終了というごく簡単なものです。 フォルダパス入力→結果表示が、移植前は一瞬で表示されてたのが移植後は少し時間かかるようになりました。 途中の処理はForEachにEnumerateFiles使用し、ReadAllLinesとAny(Function)と簡単な正規表現パターンで抽出の繰り返しになります。文字コードはShift JISです。 0664デフォルトの名無しさん2021/07/23(金) 14:28:50.90ID:xliiSqIt 5は起動が遅いとかよく聞くけど、それほんとに内部の処理が遅いのか? ちょっとコード曝してみ 0665デフォルトの名無しさん2021/07/23(金) 16:16:47.16ID:MYFSNKEn>>664 遅くなった部分のコードはこんな感じに書いてます。初心者なもので下手な書き方ですが。 For Each I As Integer In Enumerable.Range(1, 1) Console.WriteLine("フォルダのフルパスを入力してください") FolderPath = Console.ReadLine().Replace(""""c, "") If Not (System.IO.Directory.Exists(FolderPath) AndAlso System.IO.Directory.EnumerateFiles(FolderPath, "*.log").Any) Then Console.WriteLine("無効なフォルダが指定されました。処理を終了します。") Exit For End If Console.WriteLine("エラーありファイル") FileCounter = 0 For Each item As String In System.IO.Directory.EnumerateFiles(FolderPath, "*.log") If System.IO.File.ReadAllLines(item, System.Text.Encoding.GetEncoding("Shift_JIS")).Where(Function(r) r.Contains("hoge")).Any(Function(x) rx.IsMatch(x)) Then Console.WriteLine(System.IO.Path.GetFileName(item)) FileCounter += 1 End If Next Console.WriteLine(vbCrLf & "処理終了 " & If(FileCounter > 0, "エラー処理してください", "すべてOK")) Next これを変数宣言部分と終わった後最初に戻るか終了するかの分岐で挟んでループさせてますが、そっちは特に変わらないようです。 0666デフォルトの名無しさん2021/07/23(金) 17:18:43.28ID:xliiSqIt それで遅いならまあ.NET5が遅いんじゃね もうちょっとどこか遅いか細かく切り分けてみたら? 0667デフォルトの名無しさん2021/07/23(金) 19:54:34.59ID:MYFSNKEn>>666 ありがとうございます。 06686632021/07/25(日) 12:19:26.96ID:Vrkkrk3V>>666 DateTimeでループ1回ごとの処理時間を記録させて何回か回してみると、必ずアプリケーション起動時の初回だけ時間かかってる感じでした。 正規表現やエンコードを指定するのに時間かかるのかとも思いましたが時間測定する前にやってるので無関係っぽいです。 勉強がてらもう少し調べてみることにします。 0669デフォルトの名無しさん2021/08/09(月) 17:37:58.68ID:st5/4ZlG Excelの読み込みって古い形式に対応する場合はCOMを使うしかない? NPOIはBIFF5(Microsoft Excel 5.0/95 ブック)は対応してなかった
If a=1 Then 処理a If Not (a=1) Then 処理b と書いたほうが2行だし見やすいのでスマートに思える 皆さんはどう思いますか? 0707デフォルトの名無しさん2022/02/01(火) 18:08:36.76ID:6mdcUfy4 すきにしたらいいんじゃね? 0708デフォルトの名無しさん2022/02/02(水) 11:02:03.90ID:PFGno9cc 見やすいかどうかは主観と慣れだし、好きにすればいいけど わざわざ2回Ifの評価するのはないわ
2行だからとか意味不明だけど、行数が少ないほうが良いと思うなら If a=1 Then 処理a Else 処理b で良いんじゃねえか 0709デフォルトの名無しさん2022/02/02(水) 12:14:13.32ID:43zIf/SN>>707 ふむ